【问题标题】:Adapt PyQt4 code to PyQt5, problem with SIGNAL将 PyQt4 代码适配到 PyQt5,SIGNAL 问题
【发布时间】:2020-06-15 20:51:50
【问题描述】:

我正在将代码从 PyQt4 转换为 PyQt5 我遇到两个困难,首先是用信号名称和信号创建一个信号字典

MY_SIGNALS = {
     'clicked': SIGNAL ('clicked'),
     'currentIndexChanged': SIGNAL ('currentIndexChanged')
     ...
     }

其次,在一个函数中,我以这样的方式接收一个小部件和一个信号名称

def connect_actions (received_action, my_control):
     ...
     connect (my_control, MY_SIGNALS [received_action], function_exec)

一种解决方案是检查接收到的字符串和小部件

if my_control is QtWidgets.QPushButton:
    if received_action is "clicked":
         my_pushbutton.clicked.connect (function_exec)

但是有几十个小部件和令牌,有没有办法在这样的情况下调整代码 像在 PyQt4 中那样按名称分配令牌的方法?

我该如何调整这段代码?

【问题讨论】:

    标签: python python-3.x pyqt5 pyqt4 qt-signals


    【解决方案1】:

    一个可能的解决方案是使用getattr:

    def connect_actions(received_action, my_control):
         getattr(my_control, received_action).connect(function_exec)
    

    【讨论】:

      猜你喜欢
      • 2018-02-24
      • 2017-04-14
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 2018-03-15
      • 2017-11-09
      相关资源
      最近更新 更多