Datenübergabe mit Listbox und grid

Fragen zu Tkinter.
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Vergleiche es mal mit meinem Code:
http://www.python-forum.de/pastebin.php?mode=view&s=307

:wink:
yipyip
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

OK Nobuddy

Habe dein Skrip ein wenig bereinigt und ausfürbar gemacht. Als nächstes muss du ein Frame welches die Eingabezeilen (Entries) enthält auf die Canvas bringen. Ein Tip ist:

Code: Alles auswählen

 canvas.create_window(0, 0, window=entry_frame, anchor='nw')
Hier noch die scrollable Canvas Skript:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
try:
    #~~ For Python 2.x
    import Tkinter as tk
except ImportError:
    #~~ For Python 3.x
    import tkinter as tk

CONFIG = {
    'back_ground' : 'orange',
    'canvas_width' : 300,
    'canvas_height' : 300,
    }
    
class SrollableCanvas(tk.Canvas):

    def __init__(self, parent, conf):
        self.parent = parent
        self.conf = conf
 
        tk.Canvas.__init__(self, self.parent,
            scrollregion=(0, 0, 300, 1500),
            bg=self.conf['back_ground'],
            width=self.conf['canvas_width'],
            height=self.conf['canvas_height'],
            bd=0,
            highlightthickness=0)
        self.grid(column=0, row=0)
            
        self.yscrollbar = tk.Scrollbar(self.parent, width=12,
            troughcolor='gray')

        self.yscrollbar.grid(column=1, row=0, sticky='ns')
        self.yscrollbar.config(command=self.yview)
        
        self.config(yscrollcommand=self.yscrollbar.set)
        
        
        self.create_line(0, 0, 300, 1500, width=4, fill='red')    
   
app_win = tk.Tk()
app_win.title('Scrollable canvas')
app_win.geometry('+20+20')

main_frame = tk.Frame(app_win)
main_frame.pack()

SrollableCanvas(main_frame, CONFIG)
        
app_win.mainloop()
Gruß wuf :wink:
Take it easy Mates!
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hallo zusammen :wink:

Als erstes habe ich die Variante von yipyip in den bestehenden Code integriert.
yipyip, Danke dafür! :wink:
Dabei habe ich noch in einem Thread von wuf, das ermitteln des Fullscreen entdeckt, was ich auch eingebaut habe.
Das ist sinnvoll, wenn die Fenstergrößen ein Maximum benötigen und der Benutzer nicht die Fenstergröße seines Fullscreen kennt.
Manchmal wird die Größe des Fullscreen auch nicht benötigt, da wäre es dann geschickt die Größe des aktuellen Bedarfs zu verwenden. Nur wie man das auf die Reihe bekommt, beide Optionen miteinander zu vereinen, da bin ich noch nichts dahinter gekommen.
Ist so etwas möglich?

Hier jetzt mal yipyipś Variante: https://gist.github.com/3972548

wuf, als nächstes werde ich mich mit Deiner Variante beschäftigen.
Melde mich dann wieder! :wink:

Grüße Nobuddy

Nachtrag:
Habe in der Ausgabe von gist.gihub in CONFIG, ''width' : 100' entfernt und dafür in der self.conf ein Update durchgeführt.

Code: Alles auswählen

CONFIG = {'title' : "Anlage Neukunden",
        'font': ('NimbusSansL', 14, 'bold'),
        'font_color': 'black',
        'back_ground' : 'orange',
        'select_mode': 'single'}

DEFAULT_LABELS = ['Kundenkreis', 'Namen', 'Zusatz', 'Straße, Nr.', 'PLZ', 
        'Ort', 'USt-Ident-Nr.', 'Ansprechpartner', 'Telefon', 'Handy',
        'Fax', 'Mail','Internetseite']

LISTBOX_ITEMS = {'0' : 'Privatkunde',
        '1' : 'Kleinbetrieb, bis 1000 € Jahresumsatz',
        '2' : 'Mittelständischer Betrieb, bis 10.000 € Jahresumsatz',
        '3' : 'Großbetrieb, bis 25.000 € Jahresumsatz',
        '4' : 'Konzern, ab 25.000 € Jahresumsatz',
        '5' : 'Komunaler Träger'}

class ListGui(object):

    def __init__(self, controller, items, conf):
 
        self.root = tk.Tk()
        xpos = 0
        ypos = 0
        screenx = self.root.winfo_screenwidth()
        screeny =  self.root.winfo_screenheight()
        self.root.geometry("%dx%d+%d+%d" % (screenx, screeny, xpos, ypos))
        self.root.title(conf['title'])
        self.controller = controller
        self.conf = conf
        self.conf.update({'width' : screenx})
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Moeglich ist bei der Konfiguration (fast) alles. :wink:
Simple Logik: Sind in der Konfiguration gueltige Werte, werde diese genommen, ansonsten Fullscreen.
Beispiel: Steht in der Config z.B. width=0, dann wird auf Fullscreen gesetzt, stehen
dort Werte > 0 fuer width und height, werden diese uebernommen.
:wink:
yipyip
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Danke für die Info yipyip!
Habe im Bereich der Fensterhöhe, das Ganze noch etwas optimiert.

https://gist.github.com/3975466

Hoffe, daß es von der Umsetzung so ok ist.

An dieser Stelle, einen Herzlichen Dank an wuf und yipyip! :wink:

Grüße Nobuddy
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

geo_check: Der Controller sollte nichts ueber die Innereien von Tkinter wissen. Mach die ganzen geo-Sachen im View, also in der ListGui Klasse. (Eventuell gesteuert von den Config Daten)
Das mit dem 'global geoxy' gehoert besser geloest. (also ohne global)
Statt:

Code: Alles auswählen

return (sum([i for i in geoxy]))
reicht auch ein

Code: Alles auswählen

return sum(geoxy)
:wink:
yipyip
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hast ja völlig Recht, das geht wirklich wesentlich einfacher.
Habe alles bereinigt, auch in der Class Controller.

Hier die aktuelle gist.github: https://gist.github.com/3979267

Danke für die Info! :wink:

Grüße Nobuddy
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Eine Frage hätte ich doch noch. :wink:

Gibt es eine Möglichkeit, daß man mit der Maus den Scrollbalken bewegt, den auch mit dem Scrollrad der Maus bedienen kann?
Wenn ja, wo muß ich da ansetzen?

Grüße Nobuddy
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Nobuddy

No problem. Du musst folgende Ergänzungen durchführen:

Code: Alles auswählen

        canvas.config(yscrollcommand=yscroll.set)
        scroll_frame.grid_rowconfigure(0, weight=1)
        # Hier neu hinzufügen
        self.canvas = canvas
        self.bind_scroll(yscroll, self.y_scroll)
Diese Methoden nach der Methode 'run' in Klasse 'ListGui' einfügen:

Code: Alles auswählen

    def bind_scroll(self, widget, mode):
        #~~ Windows
        widget.bind("<MouseWheel>", mode)
        #~~ Linux       
        widget.bind("<Button-4>", mode)
        widget.bind("<Button-5>", mode)

    def y_scroll(self, event):
        if event.num == 5 or event.delta < 0:
            self.canvas.yview_scroll(1, "unit")
        elif event.num == 4 or event.delta > 0:
            self.canvas.yview_scroll(-1, "unit")
Probier es einmal aus. Vielleicht funktioniert es.

Gruß wuf :wink:
Take it easy Mates!
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hallo wuf,

Danke für Deinen Tip, funktioniert prima! :wink:

Werde mir das genau anschauen, daß ich zukünftig das auch umsetzen kann.

Grüße Nobuddy
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hallo zusammen :wink:

Habe eine kleine Änderung im bestehenden Code vorgenommen.
Ich habe die LISTBOX_ITEMS oben heraus genommen und übergebe dies nun von einem anderen Modul aus.

Code: Alles auswählen

LISTBOX_ITEMS = {'0' : 'Privatkunde',
    '1' : 'Kleinbetrieb, bis 1000 € Jahresumsatz',
    '2' : 'Mittelständischer Betrieb, bis 10.000 € Jahresumsatz',
    '3' : 'Großbetrieb, bis 25.000 € Jahresumsatz',
    '4' : 'Konzern, ab 25.000 € Jahresumsatz',
    '5' : 'Komunaler Träger'}
from gui_KundenNeu import Controller
Controller(LISTBOX_ITEMS)
Die Class Controller, habe ich so entsprechend angepasst:

Code: Alles auswählen

class Controller(object):

    def __init__(self, LISTBOX_ITEMS):
        self.model = Model(LISTBOX_ITEMS)
        self.view = ListGui(self, self.model.items, CONFIG)

    def process(self, listbox_item):
        self.view.entry_vars[0].set(listbox_item)
        print(listbox_item)

    def collect_entries(self):
        entry_data = dict()
        for index, entry_var in enumerate(self.view.entry_vars):
            print("{} : {}".format(self.model.items[index],
                entry_var.get()))
            entry_data[self.model.items[index]] = entry_var.get()
        print()
        print(entry_data)

    def run(self):
        self.view.run()


class Model(object):

    def __init__(self, items):
        self.items = items


def main():
    Controller(LISTBOX_ITEMS).run()
Wenn ich nun aus der Listbox eine Zeile auswähle, wird diese nicht in der Scrollliste ausgegeben.

Hier der komplette Code: https://gist.github.com/4030749

Ich hoffe, Ihr könnt mir da weiter helfen, warum dies nicht funktioniert?

Grüße Nobuddy
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Ich habe weitere Änderungen vorgenommen, so daß alles funktionieren sollte (was aber nicht der Fall ist).
Die Auswahl an der Listbox wird an die Entry-Liste übergeben.
In der Entry-Liste selbst ist aber kein Eintrag.

Das komische ist, daß wenn ich den Button 'Übernahme' betätige, wird die Auswahl von der Listbox in der Ausgabe der Entry_Liste mit ausgegeben. Die Eingabe, die ich in der Entry-Liste vorgenommen haben, fehlen aber!

Hier der aktuelle Code: https://gist.github.com/4033430
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Nobuddy

Für deine letzten Modifikation nehme ich Bezug auf:
https://gist.github.com/4033430
Ich bezeichne diese als Moduldatei (deine Namengebung 'gui_KundenNeu.py') In dieser Datei befinden sich die Kofigurationliste CONFIG, und die folgenden Klassen:
ListGui
Controller
Model

Hier würde ich die Methode process in Klasse Controller wie folgt abändern:

Code: Alles auswählen

    def process(self, listbox_item):
        self.view.entry_vars[0].set(listbox_item)
        print(self.view.entry_vars[0])
Meine Frage. Warum schreibst du in der folgenden Zeile die Parameternamen in Grossbuchstaben (wie Konstanten)?:

Code: Alles auswählen

def __init__(self, LISTBOX_ITEMS, DEFAULT_LABELS, MAIN_TITLE, SUB_TITLE):
Ich nehme an die Datei (Name noch unbekannt) in welcher du die Moduldatei gui_KundenNeu importierst sieht in der Zwischenzeit wie folgt aus:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# For Python3.x

LISTBOX_ITEMS = {'0' : 'Privatkunde',
    '1' : 'Kleinbetrieb, bis 1000 € Jahresumsatz',
    '2' : 'Mittelständischer Betrieb, bis 10.000 € Jahresumsatz',
    '3' : 'Großbetrieb, bis 25.000 € Jahresumsatz',
    '4' : 'Konzern, ab 25.000 € Jahresumsatz',
    '5' : 'Komunaler Träger'}

DEFAULT_LABELS = ['Kundenkreis', 'Namen', 'Zusatz', 'Straße, Nr.', 'PLZ',
        'Ort', 'USt-Ident-Nr.', 'Ansprechpartner', 'Telefon', 'Handy',
        'Fax', 'Mail','Internetseite']
        
import gui_KundenNeu as app
app.Controller(LISTBOX_ITEMS, DEFAULT_LABELS, "Haupttitel", "Untertitel").run()
Habe die Zeilen deines vorletzten Post von:

Code: Alles auswählen

from gui_KundenNeu import Controller
Controller(LISTBOX_ITEMS)
auf

Code: Alles auswählen

import gui_KundenNeu as app
app.Controller(LISTBOX_ITEMS, DEFAULT_LABELS, "Haupttitel", "Untertitel").run()
abgeändert. Kannst du das Ganze einmal ausprobieren? Bei mir funktioniert die Ausgabe die mittels Schaltfläche Übernehmen ausgelöst wird.

Gruß wuf :wink:
Take it easy Mates!
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hallo wuf, Danke für Deine Unterstützung!

Bei Deiner ersten Änderung in der Methode process in Klasse Controller, ist ja nur die Printausgabe geändert, was ja an der Ausführung nichts ändert.

Die Parameternamen, habe ich in Kleinbuchstaben abgeändert.

Die Parameter, habe ich in einer eigenen Modul abgelegt, da es viele verschiedener Datendefinitionen gibt.
Die kann ich dann von dem betreffenden Steuerungsmodul aus abrufen.
Auszug:

Code: Alles auswählen

def kunden():
    main_title = 'Anlage Neukunden'

    sub_title = 'Auswahl Kundenkreis'

    # Kundendefinition
    listbox_items = {'0' : 'Privatkunde',
        '1' : 'Kleinbetrieb, bis 1000 € Jahresumsatz',
        '2' : 'Mittelständischer Betrieb, bis 10.000 € Jahresumsatz',
        '3' : 'Großbetrieb, bis 25.000 € Jahresumsatz',
        '4' : 'Konzern, ab 25.000 € Jahresumsatz',
        '5' : 'Komunaler Träger'}

    # Kundenspalten
    default_labels = ['Kundenkreis', 'Namen', 'Zusatz', 'Straße, Nr.',
        'PLZ', 'Ort', 'USt-Ident-Nr.', 'Ansprechpartner', 'Telefon',
        'Handy', 'Fax', 'Mail','Internetseite']
    return main_title, sub_title, kundendefintion, kundenspalten
Das habe ich übernommen:

Code: Alles auswählen

import gui_KundenNeu as app
app.Controller(listbox_items, default_labels, main_title, sub_title).run()
Ich habe es mit Deinen Änderungen versucht, das Ergebnis ist unverändert.
Bei mir hat die Ausgabe die mittels Schaltfläche Übernehmen ausgelöst wird, auch vorher schon funktioniert.

Das Problem ist, daß die Auswahl der Listbox nicht auf dem Entry-Feld erscheint also leer bleibt, während mittels Schaltfläche Übernehmen die Auswahl der Listbox mit ausgegeben wird.
Wenn ich in den Entry-Feldern (default_labels) Eingaben mache, werden diese NICHT mittels Schaltfläche Übernehmen ausgegeben.

Grüße Nobuddy
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

OK Nobuddy

Als Referenzscript für die Moduldatei gui_KundenNeu.py gilt für mich immer noch:
https://gist.github.com/4033430
Nobuddy hat geschrieben:Bei Deiner ersten Änderung in der Methode process in Klasse Controller, ist ja nur die Printausgabe geändert, was ja an der Ausführung nichts ändert.
Stimmt diese Änderung hat keinen Einfluss auf das Funktionieren des Skriptes. Habe ich übrigens auch noch falsch abgeändert. Ich wollte aus der bestehenden Methode process:

Code: Alles auswählen

    def process(self, listbox_item):
        self.view.entry_vars[0].set(listbox_item)
        print(self.view.entry_vars[0])
        print(listbox_item)
folgendes machen:

Code: Alles auswählen

    def process(self, listbox_item):
        self.view.entry_vars[0].set(listbox_item)
        print(listbox_item)
Da die Zeile:

Code: Alles auswählen

print(self.view.entry_vars[0])
die nicht benötigte Ausgabe von:
PY_VAR0
wirft.
wuf hat geschrieben:Meine Frage. Warum schreibst du in der folgenden Zeile die Parameternamen in Grossbuchstaben (wie Konstanten)?:
Hier musst du mich falsch verstanden haben. Ich meinte nicht die Argumente beim Aufruf bzw. Erstellung der Instanz für Controller sondern die Parameter im Konstruktor __init__ der Klasse Controller.

Habe deine Applikationdatei mit welcher das Ganze gestartet wird wie folgt geändert:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# For Python3.x

import gui_KundenNeu_01 as app

MAIN_TITLE = 'Anlage Neukunden'
SUB_TITLE = 'Auswahl Kundenkreis'

# Kundendefinition
LISTBOX_ITEMS = {'0' : 'Privatkunde',
    '1' : 'Kleinbetrieb, bis 1000 € Jahresumsatz',
    '2' : 'Mittelständischer Betrieb, bis 10.000 € Jahresumsatz',
    '3' : 'Großbetrieb, bis 25.000 € Jahresumsatz',
    '4' : 'Konzern, ab 25.000 € Jahresumsatz',
    '5' : 'Komunaler Träger'}

# Kundenspalten
DEFAULT_LABELS = ['Kundenkreis', 'Namen', 'Zusatz', 'Straße, Nr.',
    'PLZ', 'Ort', 'USt-Ident-Nr.', 'Ansprechpartner', 'Telefon',
    'Handy', 'Fax', 'Mail','Internetseite']


app.Controller(LISTBOX_ITEMS, DEFAULT_LABELS, MAIN_TITLE, SUB_TITLE).run()
In deiner Moduldatei habe ich die Klasse Model einmal eliminiert da sie für den momentane Stand deiner Anwendung noch nicht viel bringt. Habe noch folgendes gändert:

Code: Alles auswählen

class Controller(object):

    def __init__(self, listbox_items, default_labels, main_title, sub_title):
        #self.model = Model(listbox_items)
        #self.model2 = Model(default_labels)
        self.default_labels = default_labels
        self.view = ListGui(self, listbox_items, default_labels,
            main_title, sub_title, CONFIG)

    def process(self, listbox_item):
        self.view.entry_vars[0].set(listbox_item)
        print(listbox_item)

    def collect_entries(self):
        entry_data = dict()
        for index, entry_var in enumerate(self.view.entry_vars):
            print("{} : {}".format(self.default_labels[index],
                entry_var.get()))
            entry_data[self.default_labels[index]] = entry_var.get()
        print()
        print(entry_data)

    def run(self):
        self.view.run()


#class Model(object):

    #def __init__(self, items):
        #self.items = items
        #self.items2 = items


def main():
    Controller(LISTBOX_ITEMS, DEFAULT_LABELS, MAIN_TITLE, SUB_TITLE).run()
    
#--- MODUL-TEST ---------------------------------------------------------------#
if __name__ == '__main__':
    MAIN_TITLE = 'Anlage Neukunden'

    SUB_TITLE = 'Auswahl Kundenkreis'

    # Kundendefinition
    LISTBOX_ITEMS = {'0' : 'Privatkunde',
        '1' : 'Kleinbetrieb, bis 1000 € Jahresumsatz',
        '2' : 'Mittelständischer Betrieb, bis 10.000 € Jahresumsatz',
        '3' : 'Großbetrieb, bis 25.000 € Jahresumsatz',
        '4' : 'Konzern, ab 25.000 € Jahresumsatz',
        '5' : 'Komunaler Träger'}

    # Kundenspalten
    DEFAULT_LABELS = ['Kundenkreis', 'Namen', 'Zusatz', 'Straße, Nr.',
        'PLZ', 'Ort', 'USt-Ident-Nr.', 'Ansprechpartner', 'Telefon',
        'Handy', 'Fax', 'Mail','Internetseite']

    main()
Ein Klick auf ein Element der Listbox erzeugt ein Eintrag im ersten Entry-Feld. Und ein aktivieren von Übernehmen gib auch alle Eingabefelder aus. Also bei mir funktioniert es so.
N.B: Die Moduldatei qui_KundenNeu.py kann mit dieser Änderung auch direkt gestartet werden.

Gruß wuf :wink:
Take it easy Mates!
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hallo wuf, habe alles so von dir übernommen, auf Grundlage von https://gist.github.com/4033430

Starte ich das Modul gui_list_work.py (alter Namen gui_KundenNeu.py) direkt, funktioniert alles so, wie es soll.
Rufe ich aber das Modul über ein anderes Modul auf und übergebe von Dort die Daten, funktioniert es wieder nicht.

Ich poste jetzt mal alle beteiligten Module, damit Du es besser nachvollziehen kannst.

Haupfenster (gui_start.py) von dem aus alles gesteuert werden soll.
Darin habe ich 2 Aufrufe, die gui_list_work.py aufrufen.
Zeile 215 - 218
Zeile 282 - 286
Das betreffende Modul gui_list_work.py.
Modul für Referenzdaten gui_list_names.py für (listbox_items, default_labels, main_title, sub_title).
Alle 3 Dateien hier: https://gist.github.com/4038350

Grüße Nobuddy
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Nobuddy

Leider nimmt deine Programm unter:
https://gist.github.com/4038350
schon eine Ausmass an, wo ich nicht mehr Zeit zum Durcharbeiten investieren möchte. Alleine die für mich neu hinzugekommene Datei gui_start.py importiert zusätzlich Ware aus Modulen wie:

Code: Alles auswählen

from gui_start_moduls import screen_blank, openfile, openfile_search
from gui_start_moduls import openfile_intern, openfile_save_intern
from filestart import fileopen
welche ich nicht habe.

Hier nochmals die gänderte Variante aus:
https://gist.github.com/4033430

Die Moduldatei (gui_KundenNeu_01.py):
http://www.python-forum.de/pastebin.php?mode=view&s=314
Die Startdatei (start_gui.py):
http://www.python-forum.de/pastebin.php?mode=view&s=315

Kopiere die Dateien:
gui_KundenNeu_01.py
start_gui.py

in ein eigenes Verzeichnis und starte die Datei start_gui.py

Dann muss das folgende funktionieren:
Ein Klick auf ein Element der Listbox transferiert es ins erste Eingabefeld (Kundenkreis). Ein aktivieren der Schaltfläche Übernehmen gib alle Eingabefelder aus. Wenn nicht dann musst du dich anderstwie schlau machen.

Gruß wuf :wink:
Take it easy Mates!
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Hallo wuf, ja so funktioniert es.

Daß das Ganze zu komplex und zeitaufwendig für Dich ist verstehe ich, hast ja bestimmt noch ein paar Kleinigkeiten sonst zu erledigen. :wink:

Generell mal die Frage.
Wenn ich von meiner gui_start.py aus die gui_KundenNeu.py aufrufe, bleibt ja das Fenster von gui_start.py weiter offen und ein weiteres Fenster wird geöffnet (gui_KundenNeu.py), daß da das Problem ist?

Grüße Nobuddy
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Also so langsam wird das Ganze doch arg unuebersichtlich. Jetzt habe ich bei mir 3 Dateien, 2 davon beinghalten eine Controller- und eine main-Definition. Beim fehlenden gui_start_moduls bin ich dann ausgestiegen.
Also:
In der jetzigen Phase kannst du noch alles in eine Datei packen. Sich alles zusammensuchen zu muessen ist fuer uns nicht so motivierend (und, so glaube ich, wird auch dir einen besseren Ueberlick verschaffen).
Fuer spaeter:
Ich hatte ja schon mal gesagt: Mach ein Github Repository. Damit meinte ich nicht die Gist Snippets, sondern ein "richtiges" Projekt auf Github. Dann kann man auch mit vielen Dateien arbeiten. (Wenn dein Projekt denn OpenSource sein soll.)

Nix fuer ungut
:wink:
yipyip
Nobuddy
User
Beiträge: 997
Registriert: Montag 30. Januar 2012, 16:38

Nur keine Angst, möchte Euch da nicht überfordern, verstehe ja daß das zuviel ist.

Ich werde für meine gui_start.py für Euch ein Fenster mit nur einem Button kreiren, das dann die Funktion hat, das betreffende Modul gui_NeuKunden.py aufzurufen und die Daten an dieses Modul von gui_start.py aus zu übergeben.

Dann sollte das recht einfach sein, die Ausführungsweise von mir zu verstehen.

Das mit dem Github Repository, da kenne ich mich nicht aus, dachte das gist.github wäre dies.

Grüße Nobuddy :wink:
Antworten