python-gui-pyqt5的使用方法-6--lambda传递参数的方法:

pyqt5传递参数的办法有两种函数:
1.lambda:
2.partial “from functools import partial”



from PyQt5.QtWidgets import *
import sys

class lambdaSlotArg(QMainWindow):
    def __init__(self):
        super(lambdaSlotArg, self).__init__()
        self.setWindowTitle("lambda函数传递参数")

        button1=QPushButton("按钮1")
        button2=QPushButton("按钮2")

        x=100
        y=200

        button1.clicked.connect(lambda:self.onButtonClick(x,y))
        # 传递参数


        layout=QHBoxLayout()
        layout.addWidget(button1)

        mainFrame=QWidget()
        mainFrame.setLayout(layout)
        self.setCentralWidget(mainFrame)

    def onButtonClick(self,m,n):
        print("m+n",m+n)


if __name__ == '__main__':
    app=QApplication(sys.argv)
    form=lambdaSlotArg()
    form.show()
    sys.exit(app.exec_())

第二个版本 信息:



from PyQt5.QtWidgets import *
import sys

class lambdaSlotArg(QMainWindow):
    def __init__(self):
        super(lambdaSlotArg, self).__init__()
        self.setWindowTitle("lambda函数传递参数")

        button1=QPushButton("按钮1")
        button2=QPushButton("按钮2")

        #变量信息
        x=100
        y=200

        button1.clicked.connect(lambda:self.onButtonClick(x,y))
        button2.clicked.connect(lambda:self.onButtonClick(100,20))
        # 传递参数


        layout=QHBoxLayout()
        layout.addWidget(button1)
        layout.addWidget(button2)

        mainFrame=QWidget()
        mainFrame.setLayout(layout)
        self.setCentralWidget(mainFrame)

    def onButtonClick(self,m,n):
        print("m+n",m+n)


if __name__ == '__main__':
    app=QApplication(sys.argv)
    form=lambdaSlotArg()
    form.show()
    sys.exit(app.exec_())

猜你喜欢

转载自blog.csdn.net/wtt234/article/details/114074599
今日推荐