的东西在这里就是我打开一推出首选项窗口为GooeyPi:我PyInstaller GUI前端。这可以很容易地适应有一个密码对话框或框架。我分成两个功能:检查用户是否有设置偏好,并打开偏好窗口。这允许他们稍后改变偏好。我使用ShowModal
来防止用户在设置之前使用该应用程序。
class GooeyPi(wx.Frame):
def __init__(self, *args, **kwargs):
super(GooeyPi, self).__init__(*args, **kwargs)
self.InitUI()
self.SetSize((460,350))
self.SetTitle('GooeyPi - PyInstaller GUI')
self.Show()
self.CheckFirstRun() # Checks for first run here.
.....
def CheckFirstRun(self):
config = controller.getConfig()
if config['pyidir'] == '':
...
self.OnPreferences(None)
....
def OnPreferences(self, e):
prefdlg = pref.Preferences(None, title='Edit Preferneces')
prefdlg.ShowModal()
prefdlg.Destroy()
和pref.Preferences是definied在一个单独的模块:
class Preferences(wx.Dialog):
def __init__(self, *args, **kw):
super(Preferences, self).__init__(*args, **kw)
self.InitUI()
self.SetSize((380,290))
self.SetTitle("Preferences")
def InitUI(self):
you_get_the_idea...
'__init__'只运行一次,因为每次启动'GUI'国家将'1'不管'GUI'将始终显示相同的内容。向我们展示更多的代码,当你创建你的类时更符合逻辑。例如,如果你重新使用这个类,使'state'成为一个参数。也许把'状态#2'放在一个函数或其他东西中? – Torxed
它在登录屏幕上按OK按钮时变为状态2,但它甚至没有显示登录屏幕 – Serial
如何实例化'GUI',甚至在任何地方调用'wx.Frame .__ init__'? 请您发布完整的代码,因为这段代码对我们来说毫无用处(没有冒犯,但它太模糊)。这就像是说“我与我的热狗有问题”,而我们不知道你是素食主义者还是有热狗。或者,如果你只是想念你的热狗包:/ – Torxed