WxPython, Установить значение StaticText()
Я делаю небольшой интерфейс GUI для приложения в данный момент с помощью wxPython.
Я использую 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:)
Приветствия
Ответы
Ответ 1
wx.TextCtrl
имеет стиль wx.TE_READONLY
. Используйте это, чтобы сделать его доступным только для чтения.
В качестве sidenode вы можете использовать С++ wxWidgets Manual для wxPython. Если требуется специальная обработка для wxPython или других портов, в руководстве часто указывается разница.
Ответ 2
Если вы используете 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)
Как упоминалось выше, документы wxWidgets часто намного проще в использовании, чем документы wxPython. Чтобы увидеть, что функция SetLabel() может быть применена к экземпляру wx.StaticText, вам необходимо перемещать иерархию пространства имен в документах wxPython в wxWindow суперкласс, из которого wx.StaticText является подклассом. В wxPython есть несколько вещей из wxWidgets, и может быть сложно выяснить, что они собой представляют. К счастью, в большинстве случаев различия - это удобные функции, которые были добавлены в wxPython и не найдены в wxWidgets.