wxPython: у объекта нет ошибки атрибута - PullRequest
1 голос
/ 09 июля 2011

учить себя Python и wxPython.Не уверен, что я делаю что-то не так, мог бы использовать некоторые идеи гораздо умнее меня ...

import wx
from wxPython.wx import *

class myGUI(wx.Frame):

    def __init__(self, parent, title):    
        super(myGUI, self).__init__(parent, title=title,
            size=(450, 350))
        panel = wx.Panel(self)
        sizer = wx.GridBagSizer(5, 5)

    # Main Database Text, Entry and Browse Button ------------------------------
        label_MainDatabase = wx.StaticText(panel, label="Main Database:")
        sizer.Add(label_MainDatabase, pos=(0, 0), flag=wx.LEFT|
            wx.ALIGN_CENTER_VERTICAL, border=20)

        tc_MainDatabase = wx.TextCtrl(panel)
        sizer.Add(tc_MainDatabase, pos=(0, 1), span=(1, 3), flag=wx.TOP|
            wx.EXPAND|wx.ALIGN_CENTER_VERTICAL)
        tc_MainDatabase.Value = "DBG: I am properly initialized."

        bt_MainDatabase = wx.Button(panel, label="Browse...")
        sizer.Add(bt_MainDatabase, pos=(0, 4), flag=wx.LEFT|wx.RIGHT|
        wx.ALIGN_CENTER_VERTICAL, border=0)
        bt_MainDatabase.Bind(wx.EVT_BUTTON, self.bt_MainDatabaseClick,
            bt_MainDatabase)
    # --------------------------------------------------------------------------
        sizer.AddGrowableCol(2)
        panel.SetSizer(sizer)

        self.Centre()
        self.Show()

    def bt_MainDatabaseClick(self, event):
        # Create a list of filters
        self.tc_MainDatabase.SetValue = "A"


if __name__ == '__main__':
    app = wx.App()
    myGUI(None, title="myGUI")

    app.MainLoop()

При нажатии кнопки «Обзор» я получаю следующую ошибку: AttributeError: 'myGUI'У объекта нет атрибута 'tc_MainDatabase'

Что я делаю не так?Я пытаюсь получить информацию с помощью кнопки «Обзор», а затем обновить текстовое поле управления (tc_MainDatabase).Я попытался изменить порядок операторов def и т. Д.

И да, я всегда прыгаю обеими ногами.Это единственный способ, которым я знаю, как учиться ...:)

Спасибо.

-Chow

1 Ответ

2 голосов
/ 09 июля 2011

Может быть, это потому, что вы говорите:

tc_MainDatabase = wx.TextCtrl(panel)

вместо:

self.tc_MainDatabase = wx.TextCtrl(panel)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...