我是一个快乐的django开发人员,现在想要建立一个小的python桌面应用程序。我决定使用wxpython作为我的图形用户界面工具包。
现在开始混淆了。我应该如何组织我的代码?有什么简单的起点方案吗?有什么关于小型wxpython应用程序与数据库交互的真实代码的提示吗?
发布于 2011-04-22 02:14:58
这是我最喜欢的开始新wxPython项目的方法:http://www.oneminutepython.com/
它还开始以一种很好的方式为您布置代码。
发布于 2011-04-22 18:04:34
我坚持“我写什么,我就得到什么”的原则。因此,我通常从其中之一开始:
1)对面板使用默认的帧大小:

import wx
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.panel = wx.Panel(self)
self.button = wx.Button(self.panel, label="Test")
self.sizer = wx.BoxSizer()
self.sizer.Add(self.button)
self.panel.SetSizerAndFit(self.sizer)
self.Show()
app = wx.App(False)
win = MainWindow(None)
app.MainLoop()2)对面板使用默认的帧大小,对内部的所有内容使用边框:

import wx
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.panel = wx.Panel(self)
self.button = wx.Button(self.panel, label="Test")
self.sizer = wx.BoxSizer()
self.sizer.Add(self.button)
self.border = wx.BoxSizer()
self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 5)
self.panel.SetSizerAndFit(self.border)
self.Show()
app = wx.App(False)
win = MainWindow(None)
app.MainLoop()3)为面板使用自定义的边框大小,这样我就可以控制它,例如在需要的时候调用"Fit“和"Layout”:

import wx
class MainWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.panel = wx.Panel(self)
self.button = wx.Button(self.panel, label="Test")
self.windowSizer = wx.BoxSizer()
self.windowSizer.Add(self.panel, 1, wx.ALL | wx.EXPAND)
self.sizer = wx.BoxSizer()
self.sizer.Add(self.button)
self.border = wx.BoxSizer()
self.border.Add(self.sizer, 1, wx.ALL | wx.EXPAND, 5)
self.panel.SetSizerAndFit(self.border)
self.SetSizerAndFit(self.windowSizer)
self.Show()
app = wx.App(False)
win1 = MainWindow(None)
app.MainLoop()这就是我的出发点。然后,我只需添加其他原始小部件并为它们绑定事件。如果我需要一个新的面板,我通常会把它放在一个新的模块中,然后派生panel类。对于必须从原始部件派生的特殊部件,我也是这样做的--比如绘图面板、OpenGL画布、特殊情况下的按钮等。
将功能从GUI中分离出来通常也是一个好主意。因此,我首先以不需要GUI的方式编写功能。
https://stackoverflow.com/questions/5747907
复制相似问题