2008-11-16 72 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