Simples Beispiel und wxGlade Gebrauch
Verfasst: Mittwoch 13. Juli 2005, 14:13
Hallo liebe Leute
nachdem ich mich an Tkinter versucht habe und ich feststellen musste, dass Tkinter sich nicht für mein Projekt eignet, bin ich auf wxPython umgestiegen.
Ich habe dabei zwei kleine Probleme:
1. In keinem der Tutorials war ein übersichtliches Codebeispiel, dass nur aus einem Text, einem Eingabefeld und einem Button, der mit der Eingabe was anstellt, besteht. Die meisten Beispiele fahren gleich mit allen Möglichkeiten (Radiobuttons etc) auf, was mich wegen der OOP-orientiertheit von wxGlade überfordert. Speziell das Event-Handling verwirrt mich, da ich nicht begreife, wie man an den Inhalt eines Eingabefeldes kommt und diesen dann nach irgendwo weitergibt. Hat vielleicht jemand von euch solch ein kleines simples Code-Beispiel, dass er posten könnte?
2. Wenn ich eine GUI mit wxGlade bastle, ist die Verwirrung komplett, da Glade-Code mit import wx andere Code-Beispiele aber mit anderen Anweisungen arbeiten (u.a. from wxPython.wx import *). Was ist der Unterschied? Was ist "besser"? Und wie kriege ich Glade-Code zum laufen? Soweit ich das begriffen habe, fehlt die Erzeugung eines Objekts und die Übergabe an den Mainloop(). Aber was genau?
Den Code, der mir Glade generiert hat:
Für die Hilfe danke ich im voraus...
nachdem ich mich an Tkinter versucht habe und ich feststellen musste, dass Tkinter sich nicht für mein Projekt eignet, bin ich auf wxPython umgestiegen.
Ich habe dabei zwei kleine Probleme:
1. In keinem der Tutorials war ein übersichtliches Codebeispiel, dass nur aus einem Text, einem Eingabefeld und einem Button, der mit der Eingabe was anstellt, besteht. Die meisten Beispiele fahren gleich mit allen Möglichkeiten (Radiobuttons etc) auf, was mich wegen der OOP-orientiertheit von wxGlade überfordert. Speziell das Event-Handling verwirrt mich, da ich nicht begreife, wie man an den Inhalt eines Eingabefeldes kommt und diesen dann nach irgendwo weitergibt. Hat vielleicht jemand von euch solch ein kleines simples Code-Beispiel, dass er posten könnte?
2. Wenn ich eine GUI mit wxGlade bastle, ist die Verwirrung komplett, da Glade-Code mit import wx andere Code-Beispiele aber mit anderen Anweisungen arbeiten (u.a. from wxPython.wx import *). Was ist der Unterschied? Was ist "besser"? Und wie kriege ich Glade-Code zum laufen? Soweit ich das begriffen habe, fehlt die Erzeugung eines Objekts und die Übergabe an den Mainloop(). Aber was genau?
Den Code, der mir Glade generiert hat:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: UTF8 -*-
# generated by wxGlade 0.3.5.1 on Wed Jul 13 13:45:56 2005
import wx
class MainFrame(wx.Frame):
def __init__(self, *args, **kwds):
# begin wxGlade: MainFrame.__init__
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.MainPanel = wx.Panel(self, -1)
self.static_line_1 = wx.StaticLine(self, -1)
self.label_9 = wx.StaticText(self.MainPanel, -1, "Test")
# Menu Bar
self.MainFrame_menubar = wx.MenuBar()
self.SetMenuBar(self.MainFrame_menubar)
self.File = wx.Menu()
self.Open = wx.MenuItem(self.File, 1011, "Open", "Open File", wx.ITEM_NORMAL)
self.File.AppendItem(self.Open)
self.Close = wx.MenuItem(self.File, 1012, "Close", "Close File", wx.ITEM_NORMAL)
self.File.AppendItem(self.Close)
self.Exit = wx.MenuItem(self.File, 1013, "Exit", "Exit programm", wx.ITEM_NORMAL)
self.File.AppendItem(self.Exit)
self.MainFrame_menubar.Append(self.File, "File")
self.Help = wx.Menu()
self.Documentation = wx.MenuItem(self.Help, 1021, "Documentation", "See Documentation", wx.ITEM_NORMAL)
self.Help.AppendItem(self.Documentation)
self.About = wx.MenuItem(self.Help, 1022, "About", "About HeatCalc", wx.ITEM_NORMAL)
self.Help.AppendItem(self.About)
self.MainFrame_menubar.Append(self.Help, "Help")
# Menu Bar end
self.MainFrame_statusbar = self.CreateStatusBar(1, 0)
self.__set_properties()
self.__do_layout()
# end wxGlade
def __set_properties(self):
# begin wxGlade: MainFrame.__set_properties
self.SetTitle("HeatCalc Version 00.1")
self.SetSize((1592, 1101))
self.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL, 0, ""))
self.MainFrame_statusbar.SetStatusWidths([-1])
# statusbar fields
MainFrame_statusbar_fields = ["Comments"]
for i in range(len(MainFrame_statusbar_fields)):
self.MainFrame_statusbar.SetStatusText(MainFrame_statusbar_fields[i], i)
# end wxGlade
def __do_layout(self):
# begin wxGlade: MainFrame.__do_layout
sizer_1 = wx.BoxSizer(wx.VERTICAL)
sizer_MainWindow = wx.BoxSizer(wx.VERTICAL)
sizer_1.Add(self.static_line_1, 0, wx.EXPAND, 0)
sizer_MainWindow.Add(self.label_9, 0, 0, 0)
self.MainPanel.SetAutoLayout(True)
self.MainPanel.SetSizer(sizer_MainWindow)
sizer_MainWindow.Fit(self.MainPanel)
sizer_MainWindow.SetSizeHints(self.MainPanel)
sizer_1.Add(self.MainPanel, 1, wx.EXPAND, 0)
self.SetAutoLayout(True)
self.SetSizer(sizer_1)
self.Layout()
self.Centre()
# end wxGlade
# end of class MainFrame
class MainWindow(wx.Frame):
def __init__(self, *args, **kwds):
# content of this block not found: did you rename this class?
pass
def __set_properties(self):
# content of this block not found: did you rename this class?
pass
def __do_layout(self):
# content of this block not found: did you rename this class?
pass
# end of class MainWindow