的東西在這裏就是我打開一推出首選項窗口爲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