0

我正在使用我试图使其可扩展的 PyQt4 设计一个(希望如此)简单的 GUI 应用程序。简而言之,用户输入一些基本信息并将其发送到 n 个队列之一(实现等待列表)。这 n 个队列(QTableviews)中的每一个都是相同的,并且每个都有控件来弹出、删除和重新排列其队列。这些以及一些标签等形成了一个“模块”。目前我的应用程序被硬编码为 4 个队列模块,因此有名为 btn_table1_pop、btn_table2_pop...等的元素;每个模块小部件的四个副本。如果您总是假设您的客户有四个需要等待名单的人,那么这显然不是很好的 UI 设计!我希望能够轻松地修改这个程序,以便 8 个人可以使用它,或者 3 个人可以使用它而无需一大块无用的屏幕空间!

对我的应用程序进行编程的真正幼稚的解决方案是为每个模块复制代码,但这确实很混乱,无法维护,并且将我的应用程序限制在四个队列中。更好的想法是为每个按钮编写函数来设置索引并调用实现通用逻辑的函数,但我仍然硬编码为 4,因为分支逻辑和调用函数仍然必须考虑名称的元素。如果有一种方法可以“矢量化”元素的名称,以便我可以例如写

    btn_table[index]_pop.setEnabled(False)

...我可以消除这个分支逻辑并真正压缩我的代码。但是我对 Python/PyQt 太陌生了,不知道这是否 1) 甚至可能?或2)如何去做/如果这甚至是要走的路?

再次感谢,所以。

4

1 回答 1

0

如果有人感兴趣,我可以使用 dummybutton = getattr(self,'btn_table{}'.format(i)) 并在 dummybutton 上调用按钮的方法。

于 2013-08-22T15:34:21.293 回答