wxPython,设置StaticText()的值

2024-06-04 14:56:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用wxPython为一个应用程序制作一个小的GUI前端。

我正在使用wx.StaticText()创建一个存放文本的位置,代码如下:

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

我有一个按钮,当单击从MySQL检索数据时,我想将StaticText()的值更改为MySQL数据,或者可以使用hold the data。

我试过使用以下方法:

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

这样可以很好地显示数据,但是在加载数据之后,您可以编辑数据,我不希望这样。

希望你们明白我在做什么,我是Python新手:)

干杯


Tags: 数据代码text文本应用程序herestylemysql
2条回答

wx.TextCtrl有一个名为wx.TE_READONLY的样式。使用它使其成为只读。

作为侧节点,您还可以使用wxPython的C++ wxWidgets Manual。当需要对wxPython或其他端口进行特殊处理时,手册通常会指出不同之处。

如果您正在使用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中找不到。

相关问题 更多 >