幻风帝影 发表于 2021-1-25 10:33:55

wxpython 函数 wx.GetStockLabel() 询问

我尝试使用 wxpython 提供的函数 wx.GetStockLabel() 从 ID 直接获取对应子窗口或控件的上显示的标签,然而失败了,想询问 wx.GetStockLabel() 使用的注意事项及问题所在。

事件处理函数:


wxpython 上关于函数 wx.GetStockLabel() 的官方文档:


出现的问题:


希望能得到各位的解惑,感激不尽。

hrp 发表于 2021-1-25 12:45:08

本帖最后由 hrp 于 2021-1-25 12:46 编辑

event.GetId()得到的是否是控件ID?我不懂wxPython,报错提示无效的ID。

幻风帝影 发表于 2021-1-25 19:43:57

hrp 发表于 2021-1-25 12:45
event.GetId()得到的是否是控件ID?我不懂wxPython,报错提示无效的ID。

是控件的 ID,控件的类型为 button,按钮的 ID 在按钮创建的时候已经指定,如下:


事件绑定如下:


按钮的布局如下


略微修改后的事件处理函数如下:


运行时点击标签为 1 的按钮时,控制台输出如下:


总而言之,event.GetId() 得到的 wx.Button 类型的 ID,ID 的值在定义该类型的变量的时候已指定,应该是有效的 ID,除非 wx.GetStockLabel() 对 ID 有其它特殊的要求。

hrp 发表于 2021-1-25 20:46:17

幻风帝影 发表于 2021-1-25 19:43
是控件的 ID,控件的类型为 button,按钮的 ID 在按钮创建的时候已经指定,如下:




搜到了,wx.GetStockLabel()接受的Id应该不是数字类型,而是标准Id,见下面网址列出的:https://wxpython.org/Phoenix/docs/html/stock_items.html
所以指定控件Id的时候用应指定wx.NewIdRef()生成的随机Id或者指定为上面列出的Id中的一个。

幻风帝影 发表于 2021-1-25 20:51:32

hrp 发表于 2021-1-25 20:46
搜到了,wx.GetStockLabel()接受的Id应该不是数字类型,而是标准Id,见下面网址列出的:https://wxpython ...

有劳了,十分感谢
页: [1]
查看完整版本: wxpython 函数 wx.GetStockLabel() 询问