Подтвердить что ты не робот

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:)

Приветствия

4b9b3361

Ответ 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.