使用eval()引用PYQT中的小部件

2024-03-29 13:09:09 发布

您现在位置:Python中文网/ 问答频道 /正文

在我用Qt设计器名称rate_0到rate_6设计的表单上有一系列的spinbox。我想根据给定日期的一周中的某一天来引用这些spinbox中的一个。在

如果给定的数字调整框的值可以引用为自身用户界面费率_0.value(),我知道我可以使用

eval("self.ui.rate_" + "0" + ".value()") 

但不知何故,这似乎不是最好的Qt方法或Pythonic方法来做到这一点。似乎我可以遍历布局的子元素,但这看起来也很混乱。在

以变量形式引用小部件的最佳方式是什么?更多代码如下:

^{pr2}$

Tags: 方法self名称ui表单ratevalueeval
1条回答
网友
1楼 · 发布于 2024-03-29 13:09:09

QWidgets最终应该存储为任何其他Python属性,因此我认为您要寻找的是内置函数getattr。在您的代码中,完整字符串在一行中如下所示:

d.strftime('%Y-%m-%d') + " " + str(getattr(self.ui, 'rate ' + str(d.weekday())).value())

如果您还想主动检查数字调整框是否确实存在,它将如下所示:

^{pr2}$

相关问题 更多 >