Tkinter GUI auf anderen Plattformen

Fragen zu Tkinter.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Mir ist aufgefallen das Tkinter GUI auf anderen Plattformen unterschiedlich aussehen, ich habe Windows XP und mein Freund Windows 7, ich meine jetzt nicht den unterschied zwischen 7 XP sondern die Anordnung war Anders, teil verschoben usw. er hat aber genau das gleiche Python wie ich weil ich ihm die selbe setup.msi gegeben habe. Kann man irgendwie ohne großen Aufwand testen wie ein GUI auf einen Anderen System aussieht?
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Du hast zur Positionierung place benutzt, richtig?
Das Leben ist wie ein Tennisball.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Ne, nur Grid. (Und zwei Frames)
Ach ja ich hab vergessen zu sagen das die größe des Fensters nicht verändert werden kann.
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
BlackJack

@Py-Prog: Es sollte nichts ausmachen wenn die GUI nicht exakt so aussieht wie auf dem Rechner wo Du entwickelt hast. Falls doch hast Du etwas beim Entwurf der GUI falsch gemacht, oder Anforderungen die nicht wirklich erfüllt werden können.

Wenn Du wissen willst wie die GUI auf System X mit Grafikeinstellungen Y aussieht, dann musst Du sie Dir auf genau dem System mit den Einstellungen anschauen.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

BlackJack hat geschrieben:Wenn Du wissen willst wie die GUI auf System X mit Grafikeinstellungen Y aussieht, dann musst Du sie Dir auf genau dem System mit den Einstellungen anschauen.
Windows: XP, Vista, 7, 8 cp,

Mac OS: Lion, Mointain Lion, Leopard, snow Leopard, ...

Linux: Ubuntu, Kubuntu, OpenSuse, Fedora, Knopix, Back Track, ...

Solaris, ...


20 Jahre später. :D
Bild
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Gönn dir virtuelle Maschinen und Tester (falls virtuelle Maschinen keine Option sein sollten).

Davon abgesehen sollte es (wie von Blackjack sehr zutreffend angemerkt wurde) kein Beinbruch sein wenn die GUI leicht anders aussieht. Die Hauptsache ist, dass sie bedienbar bleibt.
deets

Py-Prog hat geschrieben:
BlackJack hat geschrieben:Wenn Du wissen willst wie die GUI auf System X mit Grafikeinstellungen Y aussieht, dann musst Du sie Dir auf genau dem System mit den Einstellungen anschauen.
Windows: XP, Vista, 7, 8 cp,

Mac OS: Lion, Mointain Lion, Leopard, snow Leopard, ...

Linux: Ubuntu, Kubuntu, OpenSuse, Fedora, Knopix, Back Track, ...

Solaris, ...


20 Jahre später. :D
Willkommen in der Welt professioneller Softwarentwicklung. Nicht dein Ding? Dann lass es sein...
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

webspider hat geschrieben:Gönn dir virtuelle Maschinen und Tester (falls virtuelle Maschinen keine Option sein sollten).
Also auf einem PC mit 2x2,66 GHz und 2 GB RAM ne Virtuelle Maschine laufen lassen geht schlecht. Und wenn man dann bedenkt das man die Lizenzen für Windows und Mac kaufen muss ...
Tester geht in dem Fall auch nicht.
webspider hat geschrieben: Davon abgesehen sollte es (wie von Blackjack sehr zutreffend angemerkt wurde) kein Beinbruch sein wenn die GUI leicht anders aussieht. Die Hauptsache ist, dass sie bedienbar bleibt.
Also wenn da neben einen Scrollbar noch 5 Pixel zum Rand sind, sieht es zwar schlecht aus, ist aber nicht so schlimm, aber wenn 1,2 Buttons hinter einen Anderen verschwinden ist das schlecht, und genau das Problem hab ich jetzt.
deets hat geschrieben:Willkommen in der Welt professioneller Softwarentwicklung. Nicht dein Ding? Dann lass es sein...
Blöd daher reden kann ich selber, du warst auch mal Anfänger. Und nur weil du jetzt ein Profi bist brauchst du nicht alle die noch Lernen und noch viele Fehler machen schlecht machen!
deets hat geschrieben:Dann lass es sein...
NIEMALS :!: Mit der Einstellung komme ich sicher nicht weit. Oder glaubst du das irgendjemand einen in seiner Firma jemanden arbeiten lässt, der wenn er einen Problem nicht gleich lösen kann aufgibt?
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
BlackJack

@Py-Prog: Auf so einem PC kann man durchaus virtuelle Maschinen laufen lassen. Habe ich über Jahre gemacht. Mittlerweile stecken 4 GiB Arbeitsspeicher in dem Rechner, aber auch mit 2 ging das.

Wenn Buttons hinter anderen verschwinden, hast Du ziemlich sicher etwas beim Layout falsch gemacht.

Deets Bemerkung hat nichts mit Anfänger oder Profi zu tun, sondern ganz einfach damit das man GUIs auf verschiedenen Plattformen nur testen kann, wenn man sie auf verschiedenen Plattformen laufen lässt. Anders geht es nicht. Und wenn Dir dafür die Ressourcen, die Zeit, oder die Musse fehlt, dann *musst* Du es halt bleiben lassen.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

BlackJack hat geschrieben:@Py-Prog: Auf so einem PC kann man durchaus virtuelle Maschinen laufen lassen. Habe ich über Jahre gemacht. Mittlerweile stecken 4 GiB Arbeitsspeicher in dem Rechner, aber auch mit 2 ging das.
Hab ich auch schon mal, aber die Geschwindigkeit war nicht gerade die beste. Kann es sein das du Linux hattest?
BlackJack hat geschrieben:Wenn Buttons hinter anderen verschwinden, hast Du ziemlich sicher etwas beim Layout falsch gemacht.
Ich habs gemerkt.
BlackJack hat geschrieben:Deets Bemerkung hat nichts mit Anfänger oder Profi zu tun, sondern ganz einfach damit das man GUIs auf verschiedenen Plattformen nur testen kann, wenn man sie auf verschiedenen Plattformen laufen lässt. Anders geht es nicht. Und wenn Dir dafür die Ressourcen, die Zeit, oder die Musse fehlt, dann *musst* Du es halt bleiben lassen.
Also wenn du glaubst ich kauf mir ein Betriebssystem um sowas drauf zu testen, dann liegst du weit daneben. Höchstens noch Mac OS X Lion, weil's nur 25 € kostet und ich dann auch XCode hernehmen könnte. (Braucht man für die iOS Entwicklung). Windows brauch ich mir nicht kaufen, weil Windows 8 cp ist kostenlos. Und Linux ist auch kostenlos, also könne ich das theorpraktisch auch ganz legal und kostenlos testen. Jetzt muss ich mir bloß noch die Zeit nehmen und schauen das ich das doch irgendwie hin kriege, ohne wieder die ganze Festplatte zu Formatieren ... Bild
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
deets

Py-Prog hat geschrieben: Blöd daher reden kann ich selber
Ein Funken Selbsterkenntnis - ich fuehl' mich wie Weihnachten, und das im Hochsommer... Es ist immer wieder erstaunlich, in welch aggressiv-arrogantem Tonfall du herkommst, aber dich dann gleich angegriffen fuehlst, wenn es so aus dem Wald zurueckschallt. Solltest du mal drueber nachdenken...
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Py_Prog
Py_Prog hat geschrieben:Also wenn da neben einen Scrollbar noch 5 Pixel zum Rand sind, sieht es zwar schlecht aus, ist aber nicht so schlimm, aber wenn 1,2 Buttons hinter einen Anderen verschwinden ist das schlecht, und genau das Problem hab ich jetzt.
Wäre es dir möglich den Teil deines Skriptes der das von dir beschriebene Fehlverhalten auf anderen Betriebsystemen verursacht zu zeigen. Dann können wir evt. herausfinden wo das Problem liegt.

Gruß wuf :wink:
Take it easy Mates!
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

deets hat geschrieben:
Py-Prog hat geschrieben: Blöd daher reden kann ich selber
Ein Funken Selbsterkenntnis - ich fuehl' mich wie Weihnachten, und das im Hochsommer... Es ist immer wieder erstaunlich, in welch aggressiv-arrogantem Tonfall du herkommst, aber dich dann gleich angegriffen fuehlst, wenn es so aus dem Wald zurueckschallt. Solltest du mal drueber nachdenken...
Vielleicht schon mal auf die idee gekommen das ich mich erst angegriffen fühlen könnte? Oder glaubst dass ich einfach so ohne Grund diesen "aggressiv-arroganten" Tonfall wähle?
wuf hat geschrieben:]Also wenn da neben einen Scrollbar noch 5 Pixel zum Rand sind, sieht es zwar schlecht aus, ist aber nicht so schlimm, aber wenn 1,2 Buttons hinter einen Anderen verschwinden ist Wäre es dir möglich den Teil deines Skriptes der das von dir beschriebene Fehlverhalten auf anderen Betriebsystemen verursacht zu zeigen. Dann können wir evt. herausfinden wo das Problem liegt.

Gruß wuf :wink:
Ja kann ich, aber ich, aber der code sieht nicht schön aus.
Hier erst mal ein bild wie es bei mir aussieht:
Bild
Ein weiteres Problem ist dass ich kann den Scrollbar irgendwie nicht Farbig machen. Ich hab andere werte eingestellt aber die Farbe ist immer gleich geblieben.

Code: Alles auswählen

        self.window = tkinter.Toplevel(bg='#000000')
        self.window.title('Minecraft remote console client  ' + version)
        self.window.protocol("WM_DELETE_WINDOW", exit_func)
        self.window.wm_iconbitmap(os.path.join(icon_path, 'icon.ico'))
        self.window.resizable(0, 0)

        tkinter.Label(self.window, text='Host:', bg='#000000', fg='#00ff00').grid(row=0, column=0)
        self.host_entry = tkinter.Entry(self.window, width=30, bg='#000000', fg='#00ff00', insertbackground='#00ff00')
        self.host_entry.grid(row=0, column=1)
        tkinter.Label(self.window, text='Port:', bg='#000000', fg='#00ff00').grid(row=0, column=2)
        self.port_entry = tkinter.Entry(self.window, width=6, bg='#000000', fg='#00ff00', insertbackground='#00ff00')
        self.port_entry.grid(row=0, column=3)
        self.port_entry.insert('end', '25575')
        tkinter.Label(self.window, text='Passwort:', bg='#000000', fg='#00ff00').grid(row=0, column=4)
        self.password_entry = tkinter.Entry(self.window, width=20, show='*', bg='#000000', fg='#00ff00', insertbackground='#00ff00')
        self.password_entry.grid(row=0, column=5)
        tkinter.Frame(self.window, width=15, height=1, bg='#000000').grid(row=0, column=6) #erzeugt 15 pixel abstand zum button
        self.connect_button = tkinter.Button(self.window, text='Verbinden', bg='#000000', fg='#00ff00', activeforeground='#000000',
                                             activebackground='#00ff00', command=self.connect)
        self.connect_button.grid(row=0, column=7, columnspan=2, ipadx=10, sticky='ew')
        self.connect_button.bind("<Return>", self.connect)
        

        self.textframe = tkinter.Frame(self.window)
        self.textframe.grid(row=2, column=0, columnspan=8) #row=2 weil viellicht noch ein zwischen raum eingefügt werden soll
        self.scrollbar = tkinter.Scrollbar(self.textframe)
        self.scrollbar.grid(row=0, column=1, sticky='nse')
        self.output_text = tkinter.Text(self.textframe, height=15, state='disable', bg='#000000', yscrollcommand=self.scrollbar.set)
        self.output_text.grid(row=0, column=0, sticky='w')
        self.scrollbar.config(command=self.output_text.yview)

        for tag_name in self.colors_and_styles:
            if not self.colors_and_styles[tag_name][1] is None:
                self.output_text.tag_config(tag_name, foreground=self.colors_and_styles[tag_name][1], background=self.colors_and_styles[tag_name][2])

        self.output('§4[info]§r: -help eigeben um befehlsübersicht anzuzeigen')

##        self.output('§0T§1T§2T§3T§4T§5T§6T§7T§8T§9T§aT§bT§cT§dT§eT§fT')
##        self.output('§4R§6e§eg§ae§bn§3b§1o§5g§4e§cn')


        tkinter.Label(self.window, text='Farben:', bg='#000000', fg='#00ff00').grid(row=3, column=0)
        self.command_entry = tkinter.Entry(self.window, bg='#000000', fg='#00ff00', insertbackground='#00ff00')
        self.font_style_Frame = tkinter.Frame(self.window)
        self.font_style_Frame.grid(row=3, column=1, columnspan=5, sticky='e')

        self.font_style_var = tkinter.StringVar()

        column_count = 0
        for tag_name in self.colors_and_styles:
            if tag_name == 'r':
                tkinter.Button(self.font_style_Frame, text='N', width=2, relief='groove',
                               bg='#000000', fg='#00ff00', activeforeground='#000000', activebackground='#00ff00',
                               command=functools.partial(self.command_entry.insert, 'insert', '§'+tag_name)).grid(row=0, column=column_count)
            elif not self.colors_and_styles[tag_name][1] is None:
                tkinter.Button(self.font_style_Frame, text=tag_name, foreground=self.colors_and_styles[tag_name][1],
                               background=self.colors_and_styles[tag_name][1],
                               activeforeground=self.colors_and_styles[tag_name][1],
                               activebackground=self.colors_and_styles[tag_name][1],
                               width=2, relief='groove',
                               command=functools.partial(self.command_entry.insert, 'insert', '§'+tag_name)).grid(row=0, column=column_count)
            else:
                tkinter.Button(self.font_style_Frame, text=self.colors_and_styles[tag_name][2],
                               width=2, relief='groove',
                               bg='#000000', fg='#00ff00', activeforeground='#000000',activebackground='#00ff00',
                               command=functools.partial(self.command_entry.insert, 'insert', '§'+tag_name)).grid(row=0, column=column_count)
            column_count += 1
            
        tkinter.Button(self.window, text='Verbindung trennen', bg='#000000', fg='#00ff00', activeforeground='#000000',
                                             activebackground='#00ff00', command=self.disconnect).grid(row=3, column=0, columnspan=8, sticky='e')
        self.command_entry.grid(row=4, column=0, columnspan=8, sticky='ew')
        self.command_entry.bind("<Return>", self.sendcommand)
@wuf du hast den Beitrag 10 Minuten zu spät geschrieben :wink:
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Du hast dir gerade selbst das perfekte Beispiel geschaffen, warum man immer Konstanten verwenden sollte. Versuche mal deine Hintergrundfarbe auf Blau zu stellen und die Schriftfarbe auf Rot. Mit zwei (bzw. drei Konstanten um Blau auf Blau darstellen zu können), hätte dich das maximal 30 Sekunden gekostet und dein Code wäre durch sprechende Namen wie BACKGROUND_COLOR oder TEXT_COLOR noch sehr gut dokumentiert gewesen. Wie lange brauchst du? Auf die Plätze. Fertig. Los! ;-)
Das Leben ist wie ein Tennisball.
deets

Py-Prog hat geschrieben: Vielleicht schon mal auf die idee gekommen das ich mich erst angegriffen fühlen könnte? Oder glaubst dass ich einfach so ohne Grund diesen "aggressiv-arroganten" Tonfall wähle?
Das muss ich nicht glauben. Das weiss ich (und jeder andere hier). Der Thread hier ist ein schoenes Beispiel...

http://www.python-forum.de/viewtopic.php?f=1&t=29015

Faengt mit dem unpassenden Titel an, ueber ein arrogantes "Glaubst du das hätte ich nicht versucht?" als Antwort auf BlackJack, weiter mit einem "Welchen teil des Satzes "Und ich meine nicht:" hast du nicht verstanden?" usw..

Und so weiter und so fort.... du scheiterst an teilweise trivialsten Problemen, aber in dem Moment wo du glaubst was zu wissen, ranzt du rum als ob der Rest hier zu bloede waere....
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

EyDu hat geschrieben:Du hast dir gerade selbst das perfekte Beispiel geschaffen, warum man immer Konstanten verwenden sollte. Versuche mal deine Hintergrundfarbe auf Blau zu stellen und die Schriftfarbe auf Rot. Mit zwei (bzw. drei Konstanten um Blau auf Blau darstellen zu können), hätte dich das maximal 30 Sekunden gekostet und dein Code wäre durch sprechende Namen wie BACKGROUND_COLOR oder TEXT_COLOR noch sehr gut dokumentiert gewesen. Wie lange brauchst du? Auf die Plätze. Fertig. Los! ;-)
Ich hab mal gestoppt ich brauche 39.1 Sekunden. :D

Code: Alles auswählen

        self.BACKGROUND_COLOR = '#000000'
        self.TEXT_COLOR = '#00ff00'

        self.window = tkinter.Toplevel(bg=self.BACKGROUND_COLOR)
        self.window.title('Minecraft remote console client  ' + version)
        self.window.protocol("WM_DELETE_WINDOW", exit_func)
        self.window.wm_iconbitmap(os.path.join(icon_path, 'icon.ico'))
        self.window.resizable(0, 0)

        tkinter.Label(self.window, text='Host:', bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR).grid(row=0, column=0)
        self.host_entry = tkinter.Entry(self.window, width=30, bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR, insertbackground=self.TEXT_COLOR)
        self.host_entry.grid(row=0, column=1)
        tkinter.Label(self.window, text='Port:', bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR).grid(row=0, column=2)
        self.port_entry = tkinter.Entry(self.window, width=6, bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR, insertbackground=self.TEXT_COLOR)
        self.port_entry.grid(row=0, column=3)
        self.port_entry.insert('end', '25575')
        tkinter.Label(self.window, text='Passwort:', bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR).grid(row=0, column=4)
        self.password_entry = tkinter.Entry(self.window, width=20, show='*', bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR, insertbackground=self.TEXT_COLOR)
        self.password_entry.grid(row=0, column=5)
        tkinter.Frame(self.window, width=15, height=1, bg=self.BACKGROUND_COLOR).grid(row=0, column=6) #erzeugt 15 pixel abstand zum button
        self.connect_button = tkinter.Button(self.window, text='Verbinden', bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR, activeforeground='#000000',
                                             activebackground=self.TEXT_COLOR, command=self.connect)
        self.connect_button.grid(row=0, column=7, columnspan=2, ipadx=10, sticky='ew')
        self.connect_button.bind("<Return>", self.connect)
        

        self.textframe = tkinter.Frame(self.window)
        self.textframe.grid(row=2, column=0, columnspan=8) #row=2 weil viellicht noch ein zwischen raum eingefügt werden soll
        self.scrollbar = tkinter.Scrollbar(self.textframe, bg=self.BACKGROUND_COLOR, troughcolor=self.TEXT_COLOR)
        self.scrollbar.grid(row=0, column=1, sticky='nse')
        self.output_text = tkinter.Text(self.textframe, height=15, state='disable', bg=self.BACKGROUND_COLOR, yscrollcommand=self.scrollbar.set)
        self.output_text.grid(row=0, column=0, sticky='w')
        self.scrollbar.config(command=self.output_text.yview)

        for tag_name in self.colors_and_styles:
            if not self.colors_and_styles[tag_name][1] is None:
                self.output_text.tag_config(tag_name, foreground=self.colors_and_styles[tag_name][1], background=self.colors_and_styles[tag_name][2])

        self.output('§4[info]§r: -help eigeben um befehlsübersicht anzuzeigen')

##        self.output('§0T§1T§2T§3T§4T§5T§6T§7T§8T§9T§aT§bT§cT§dT§eT§fT')
##        self.output('§4R§6e§eg§ae§bn§3b§1o§5g§4e§cn')


        tkinter.Label(self.window, text='Farben:', bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR).grid(row=3, column=0)
        self.command_entry = tkinter.Entry(self.window, bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR, insertbackground=self.TEXT_COLOR)
        self.font_style_Frame = tkinter.Frame(self.window)
        self.font_style_Frame.grid(row=3, column=1, columnspan=5, sticky='e')

        self.font_style_var = tkinter.StringVar()

        column_count = 0
        for tag_name in self.colors_and_styles:
            if tag_name == 'r':
                tkinter.Button(self.font_style_Frame, text='N', width=2, relief='groove',
                               bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR,
                               activeforeground=self.BACKGROUND_COLOR,
                               activebackground=self.TEXT_COLOR,
                               command=functools.partial(self.command_entry.insert, 'insert', '§'+tag_name)).grid(row=0, column=column_count)
            elif not self.colors_and_styles[tag_name][1] is None:
                tkinter.Button(self.font_style_Frame, text=tag_name, foreground=self.colors_and_styles[tag_name][1],
                               background=self.colors_and_styles[tag_name][1],
                               activeforeground=self.colors_and_styles[tag_name][1],
                               activebackground=self.colors_and_styles[tag_name][1],
                               width=2, relief='groove',
                               command=functools.partial(self.command_entry.insert, 'insert', '§'+tag_name)).grid(row=0, column=column_count)
            else:
                tkinter.Button(self.font_style_Frame, text=self.colors_and_styles[tag_name][2],
                               width=2, relief='groove',
                               bg=self.BACKGROUND_COLOR,
                               fg=self.TEXT_COLOR,
                               activeforeground=self.BACKGROUND_COLOR,
                               activebackground=self.TEXT_COLOR,
                               command=functools.partial(self.command_entry.insert, 'insert', '§'+tag_name)).grid(row=0, column=column_count)
            column_count += 1
            
        tkinter.Button(self.window, text='Verbindung trennen', bg=self.BACKGROUND_COLOR, fg=self.TEXT_COLOR, activeforeground=self.BACKGROUND_COLOR,
                                             activebackground=self.TEXT_COLOR, command=self.disconnect).grid(row=3, column=0, columnspan=8, sticky='e')
        self.command_entry.grid(row=4, column=0, columnspan=8, sticky='ew')
        self.command_entry.bind("<Return>", self.sendcommand)
Und jetzt nur noch 7.5 sekunden. :D
Ich habe jetzt noch mal versucht die Farben beim Scrollbar zu ändern aber es geht nicht.

Was Bringen eigentlich Konstanten wenn man den wert einfach wieder ändern kann?
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Py-Prog hat geschrieben:Ich hab mal gestoppt ich brauche 39.1 Sekunden. :D
Nein, deine Änderungen im Code brauchen 39 Sekuden. Viel interessanter ist zu testen, ob die Anwendung auch so läuft wie erwartet. Ich würde fast jede Wette eingehen, dass, wenn du die Farben tatsächlich geändert hättest, also auf Rot und Blau und nicht einfach nur die Farben in Konstanten gepack hättest, nicht alles so aussieht wie erwartet. Wahrscheinlich kann man den einen oder anderen Text nicht mehr lesen. Ganz deutlich wird es, wenn du die Hintergrundfarbe auf weiß setzt. Die Suche nach diesen Abhängigkeiten ist die Verlorene Zeit, nicht die Replace-Funktion im Editor ;-)
Py-Prog hat geschrieben:Was Bringen eigentlich Konstanten wenn man den wert einfach wieder ändern kann?
Konstanten sind in Python über Konvention geregelt. Wenn du der Meinung bist, dass du dich nicht daran halten musst, dann musst du auch mit den Konsequenzen leben. Diese Freiheit gibt aber gerade die Möglichkeit auch einige Dinge zu testen. Warum sollte man hier also künstliche Grenzen ziehen?
Das Leben ist wie ein Tennisball.
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

EyDu hat geschrieben:Nein, deine Änderungen im Code brauchen 39 Sekuden. Viel interessanter ist zu testen, ob die Anwendung auch so läuft wie erwartet. Ich würde fast jede Wette eingehen, dass, wenn du die Farben tatsächlich geändert hättest, also auf Rot und Blau und nicht einfach nur die Farben in Konstanten gepack hättest, nicht alles so aussieht wie erwartet. Wahrscheinlich kann man den einen oder anderen Text nicht mehr lesen. Ganz deutlich wird es, wenn du die Hintergrundfarbe auf weiß setzt. Die Suche nach diesen Abhängigkeiten ist die Verlorene Zeit, nicht die Replace-Funktion im Editor ;-)
Bild

Hat keiner eine idee was ich wegen dem Scrollbar machen könnte?
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hi Py-Prog

Danke für dein Code-Snippet. Habe es für mich soweit es ging mit einigen Abstrichen lauffähig gemacht. Testete das Skript mit Kubuntu 10.04, Windows XP und Windows 7. Zwischen Win 7 und Win XP gab es layoutmässig keine auffällige Unterschiede. Hingegen bei Kubuntu ist offensichtlich. Da ich nicht ein routinierter 'grid'-Layouter bin konnte ich nicht auf die Schnelle herausfinden wie das Skript zu korrigieren ist damit der Lauout auch auf Kubuntu die gleichen Ausmaße annimmt wie bei Windows. Hier die Snapshots auf den verschiedenen Systemen.

Windows XP:
Bild

Windows 7
Bild

Kubuntu 10.04
Bild

Da mir folgendes fehlte konnte ich dein Skript nicht detaillierter austesten:

Code: Alles auswählen

self.colors_and_styles
Hier noch das für mich angepasste lauffähige Skript!

Gruß wuf :wink:
Take it easy Mates!
Py-Prog
User
Beiträge: 673
Registriert: Dienstag 16. Februar 2010, 17:52
Wohnort: G:\ermany

Erstmal danke dass du dir die mühe gemacht hast das zu testen.

Hier ist der Fehlende Teil:

Code: Alles auswählen

self.colors_and_styles = {'0': ['Schwarz', '#000000', '#ffffff'],
                                  '1': ['Dunkel Blau', '#0000aa', '#000000'],
                                  '2': ['Dunkel Grün', '#00aa00', '#000000'],
                                  '3': ['Dunkel Türkis', '#00aaaa', '#000000'],
                                  '4': ['Dunkel Rot', '#aa0000', '#000000'],
                                  '5': ['Lila', '#aa00aa', '#000000'],
                                  '6': ['Gold', '#ffaa00', '#000000'],
                                  '7': ['Grau', '#aaaaaa', '#000000'],
                                  '8': ['Dunkel Grau', '#555555', '#000000'],
                                  '9': ['Blau', '#5555ff', '#000000'],
                                  'a': ['hell Grün', '#55ff55', '#000000'],
                                  'b': ['Türkis', '#55ffff', '#000000'],
                                  'c': ['Rot', '#ff5555', '#000000'],
                                  'd': ['Rosa', '#ff55ff', '#000000'],
                                  'e': ['Gelb', '#ffff55', '#000000'],
                                  'f': ['Weiß', '#ffffff', '#000000'],
                                  'k': ['Zufällige Zeichen', None, '?'],
                                  'l': ['Fett schreiben', None, 'F'],
                                  'm': ['Durchgestrichen', None, '-'],
                                  'n': ['Unterstrichen', None, 'U'],
                                  'o': ['schräg schreiben', None, 'K'],
                                  'r': ['Zurücksetzten', '#ffffff', '#000000']}
Ich hab setzte dann mal die einzelnen Zeilen in Frames und schaue mal wies dann aussieht.

Und kann mir mal wer sagen wieso der Scollbar nie Farbig wird?
Technik ist: wenn alles funktioniert und keiner weiß warum.
Wer Rechtschreibfehler findet darf sie behalten.
Antworten