Qt pyqt5 判断信号来源+遍历界面上所有控件

  • Post author:
  • Post category:其他


一、判断信号来源

当同时有多个信号链接到同一个槽函数时,往往需要判断信号来源。


Qt

class *example = qobject_cast<class *>(sender());


pyqt5

方式一

#槽函数
def buttonClicked(self):
    signalSource = self.sender()

方式二

 button.clicked.connect(lambda:self.buttonClicked(1))
 button2.clicked.connect(lambda:self.buttonClicked(2))
#槽函数
def buttonClicked(index):
    print('Button {0} clicked'.format(index))

二、遍历界面上所有控件

当需要对界面上所有控件进行某一操作时,可以通过遍历的方式,获得所有控件再统一进行操作。


Qt

//以按钮为例,遍历界面上所有按钮,放在一个链表中
QList<QPushButton *> button = this->findChildren<QPushButton *>();


pyqt5

#以按钮为例,遍历窗体mainwidget上所有按钮,放在一个列表中
list = self.ui.mainwidget.findChildren(QPushButton)



版权声明:本文为L1114187703原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。