2008-11-16 18 views
26

我正在爲使用wxPython的應用程序製作一個小小的GUI前端。wxPython,設置StaticText的值

我使用wx.StaticText()創造一個地方舉行一些文字,下面的代碼:

content = wx.StaticText(panel, -1, "Text Here", style=wx.ALIGN_CENTRE) 

我有當從MySQL點擊檢索數據,我想給StaticText()的值更改爲一個按鈕MySQL數據或我可以使用哪些數據保存。

我曾嘗試使用下面的方法嘗試:

contents = wx.TextCtrl(bkg, style=wx.TE_MULTILINE | wx.HSCROLL) 
content.SetValue("New Text") 

這將顯示數據正常,但加載數據後,您可以編輯的數據,我不希望這樣。

希望你們明白我要做的,我是新來的Python :)

乾杯

回答

20

wx.TextCtrl有一個名爲wx.TE_READONLY風格。使用它來使其成爲只讀。

作爲一個sidenode,你可以使用C++ wxWidgets Manual作爲wxPython。在需要對wxPython或其他端口進行特殊處理的情況下,手冊經常指出區別。

+0

乾杯!完美地工作 – RailsSon 2008-11-16 02:12:34

55

如果您使用的是wx.StaticText()你可以:

def __init__(self, parent, *args, **kwargs): #frame constructor, etc. 
    self.some_text = wx.StaticText(panel, wx.ID_ANY, label="Awaiting MySQL Data", style=wx.ALIGN_CENTER) 

def someFunction(self): 
    mysql_data = databasemodel.returnData() #query your database to return a string 
    self.some_text.SetLabel(mysql_data) 

如前所述litb,wxWidgets的文檔往往更容易比wxPython docs使用。爲了看到SetLabel()函數可以應用於wx.StaticText實例,必須將wxPython文檔中的命名空間層次結構移動到wxWindow superclass,從中wx.StaticText被分類。 wxPython與wxWidgets有幾點不同之處,找出它們是什麼很難。幸運的是,很多時候,差異都是添加到wxPython中的便利函數,並且在wxWidgets中找不到。

+2

我當然想知道爲什麼沒有像SetLabel在wxPython文檔(wx.StaticText)中。 +1清除 – Ariel 2013-11-30 12:39:51

相關問題