
OK, GTK habe ich mit tkinter verwechselt ^^ Ich schaue mir mal GTK genauer an. Die Screenshots haben mich überzeugt. Oh man schon wider über 1000 Zeilen Code in den Virtuellen Mülleimer schmeißen ^^
GTK ist aber Pythonischer oder? Bitte sag Ja ^^
XtraNine hat geschrieben:OK, GTK habe ich mit tkinter verwechselt ^^ Ich schaue mir mal GTK genauer an. Die Screenshots haben mich überzeugt. Oh man schon wider über 1000 Zeilen Code in den Virtuellen Mülleimer schmeißen ^^
XtraNine hat geschrieben:GTK ist aber Pythonischer oder? Bitte sag Ja ^^
BlackJack hat geschrieben:also würde ich bei eigenen `wx` Klassen die Regeln von `wx` benutzen. Bei der Programmlogik würde ich mich eher an PEP8 halten, insbesondere weil ich versuchen würde die Logik und die GUI möglichst getrennt zu halten.
Code: Alles auswählen
def show_infodialog(self, event = None):
"""
Zeigt die Info-Dialogbox an.
"""
pass
Leonidas hat geschrieben:Ich bin einer der wxPython-API-FlüchtlingeLiegt aber nicht am CamelCase, sondern an der C++ness von dessen API, und (damals) an den Tonnen von Bugs.
gerold hat geschrieben:- ID´s werden nicht mehr gebraucht, da man mit ``Bind()``, Events auch an Objekte und nicht nur an ID´s binden kann.
BlackJack hat geschrieben:der Grund warum ich schreiend weggelaufen bin
XtraNine hat geschrieben:Ich mache immer nen Konstante zb. WXID_IRGENDWAS und mache dann ein wx.NewId(), das mir selber eine ID erzeugt -> WXID_IRGENDWAS = wx.NewId().
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
wx.SetDefaultPyEncoding("iso-8859-1")
class MyFrame(wx.Frame):
def __init__(self, parent = None, id = -1, title = "Hallo Welt (ohne IDs)"):
wx.Frame.__init__(self, parent, id, title)
# Panel
panel = wx.Panel(self)
# Hauptrahmen (fuer den Abstand)
vbox_rahmen = wx.BoxSizer(wx.VERTICAL)
panel.SetSizer(vbox_rahmen)
# vbox (innherhalb des Hauptrahmens mit 5px Abstand)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox_rahmen.Add(vbox, proportion = 1, flag = wx.ALL | wx.EXPAND, border = 5)
# Label
label = wx.StaticText(
panel, -1, u"Ich werde geändert, wenn der Button geklickt wird!",
)
self.label = label
vbox.Add(label, proportion = 1, flag = wx.ALL, border = 5)
# Button
button = wx.Button(panel, -1, "Klick mich!")
vbox.Add(button, proportion = 0, flag = wx.ALL | wx.EXPAND, border = 5)
button.Bind(wx.EVT_BUTTON, self.aendere_labeltext_per_button) # Eventhandler binden
# Menüleiste
menubar = wx.MenuBar()
# Hilfe-Menü
menu_help = wx.Menu()
menuitem = menu_help.Append(-1, "&Info")
# Ausnahme! Menüs müssen über das Frame-Objekt an ein Event gebunden werden.
self.Bind(wx.EVT_MENU, self.aendere_labeltext_per_menue, menuitem)
menubar.Append(menu_help, "&Hilfe")
# Menüleiste an Frame binden
self.SetMenuBar(menubar)
# Minimalgröße festlegen
panel.Fit()
self.Fit()
self.SetSizeHintsSz(self.GetSizeTuple())
# Zentrieren
self.Center()
def aendere_labeltext_per_button(self, event = None):
label = self.label
label.SetLabel(u"Es wurde der Button geklickt!")
def aendere_labeltext_per_menue(self, event = None):
label = self.label
label.SetLabel(u"Es wurde das Info-Menü ausgewählt!")
def main():
app = wx.PySimpleApp()
f = MyFrame()
f.Show()
app.MainLoop()
if __name__ == "__main__":
main()
Leonidas hat geschrieben:... einige Sachen wie TreeViews sind auch in PyGTK unnötig komplex.
oliver1974 hat geschrieben:An die Regel von wegen 80 Zeichen Länge.. Haltet Ihr euch wirklich dran?
oliver1974 hat geschrieben:Überhaupt, Tutorials und GUI-Apis unter Pyhton scheinen so ein Thema zu sein, auch das PyGTK-Tutorial ist nicht mehr so Up-To-Date, an manchen Stellen fliegen einem ja beim Nachprogrammieren nur so die "deprecation warnings" um die Ohren.
Irgendwie scheint mir da echt eine "Marktlücke" zu sein, oder... ?
Y0Gi hat geschrieben:oliver1974 hat geschrieben:An die Regel von wegen 80 Zeichen Länge.. Haltet Ihr euch wirklich dran?
Ja, allerdings. Und ich finde, das klappt recht problemlos, insbesondere wenn man Klassen- und Methodennamen nicht mehr als 40 Zeichen spendiert, wie das in der Java-Welt ja nichts ungewöhnliches ist. Und irgendwann muss man sowieso umbrechen, das geht dann auch bei Spalte 80 (bzw. 79) nicht wirklich schlechter.
oliver1974 hat geschrieben:Heute fährt doch kaum einer Auflösungen, wo eine Zeile mit 90 - 100 Zeichen ein Problem darstellt, oder?
Mitglieder in diesem Forum: 0 Mitglieder