我做了一个丑陋的小 GUI,遵循一些教程并阅读了我对基本 WxPython 的理解,我目前正在使用 python 2.6。我设法让大多数东西显示出来,但是当我单击检查按钮时,我基本上想在文件选择器按钮上获取文件路径,但是当我尝试进行绑定时,我收到一条错误消息,指出该对象没有该属性。
在我看来,这比 Wxpython 本身更像是一个基本的 Python 问题,我不知道它希望我如何执行事件调用
此外,我想最终将传递的文本更改为绿色或其他内容或事件,但如果我尝试使用元素在 basicGUI 之外做任何事情,我无法正确引用它们(如面板等),所以关于如何的任何想法在按钮事件之上实现对 GUI 元素的更改将很有帮助。
我尝试使用按钮事件复制其他人的示例,但它在我的实现中不起作用,因为我定义类的方式我认为......我需要弄清楚如何调整那行代码以便它引用对象适当地。
import wx
import ctypes
try:
ctypes.windll.shcore.SetProcessDpiAwareness(True)
except:
pass
class windowClass(wx.Frame):
def __init__(self,*args,**kwargs):
super(windowClass,self).__init__(*args,**kwargs)
self.basicGUI()
#GUI elements
def basicGUI(self):
panel=wx.Panel(self)
menu_bar=wx.MenuBar()
box_sizer=wx.BoxSizer()
box_sizer.Add(panel, 1, wx.ALL | wx.EXPAND)
button_text=wx.StaticText(panel, label="Select a file")
file_button=wx.FilePickerCtrl(panel)
check_button=wx.Button(panel, label='Check')
#self.Bind(wx.EVT_BUTTON, OnCheckButton(self), check_button)
a_text=wx.StaticText(panel, label="a file status")
b_text=wx.StaticText(panel, label="b file status")
c_text=wx.StaticText(panel, label="c file status")
passed_text=wx.StaticText(panel, label="passed")
#set items on the grid
sizer = wx.GridBagSizer(5, 5)
sizer.Add(button_text, (0, 0))
sizer.Add(file_button, (0, 2))
sizer.Add(check_button,(1, 2))
sizer.Add(a_text, (2, 0))
sizer.Add(b_text, (3, 0))
sizer.Add(c_text, (4, 0))
sizer.Add(passed_text, (2, 1))
app=wx.App()
windowClass(None)
print("passed")
app.MainLoop()
在这个早期阶段,我希望单击按钮并能够打印或做其他事情......但由于它说它没有定义它是一个奇怪的错误。
self.Bind(wx.EVT_BUTTON, self.OnCheckButton(self), check_button)
AttributeError: 'windowClass' object has no attribute 'OnCheckButton'
偶然的你
相关分类