小编ost*_*ysz的帖子

区分PySide中的信号源

有没有简单或优雅的方法来区分PySide/PyQt中的许多相同类型的信号源?

我正在学习PySide.我编写了简单的应用程序,它将两个不同的QLineEdit()对象相乘.结果显示在第三个QLineEdit中.

乘法器和被乘数QLineEdit.textChanged()信号连接到一个方法(TxtChanged).在这种方法中,我必须区分信号源.经过一些试验后,我找到了一些基于占位符文本的解决方法(下面4行"还有另一种方法吗?"我的代码中的评论)

码:

import sys
from PySide import QtGui, QtCore

class myGUI(QtGui.QWidget):

    def __init__(self, *args, **kwargs):
        QtGui.QWidget.__init__(self, *args, **kwargs)

        self.multiplier = 0
        self.multiplicand = 0

        self.myGUIInit()

    def myGUIInit(self):
        # input forms
        a1_label = QtGui.QLabel("a1")
        a1_edit = QtGui.QLineEdit()
        a1_edit.setPlaceholderText("a1")

        a2_label = QtGui.QLabel("a2")
        a2_edit = QtGui.QLineEdit()
        a2_edit.setPlaceholderText("a2")

        # output form
        a1a2_label = QtGui.QLabel("a1*a2")
        self.a1a2_edit = QtGui.QLineEdit()
        self.a1a2_edit.setReadOnly(True)


        # forms events
        a1_edit.textChanged.connect(self.TxtChanged)
        a2_edit.textChanged.connect(self.TxtChanged)

        # grid
        grid = QtGui.QGridLayout()
        grid.setSpacing(10)

        grid.addWidget(a1_label,1,0)
        grid.addWidget(a1_edit,1,1)

        grid.addWidget(a2_label,2,0)
        grid.addWidget(a2_edit,2,1)

        grid.addWidget(a1a2_label,3,0)
        grid.addWidget(self.a1a2_edit,3,1)

        self.setLayout(grid)
        self.setGeometry(100,100,200,200)
        self.setWindowTitle("a*b")
        self.show()

    def TxtChanged(self,text):
        sender …
Run Code Online (Sandbox Code Playgroud)

python user-interface signals pyside

5
推荐指数
2
解决办法
2351
查看次数

标签 统计

pyside ×1

python ×1

signals ×1

user-interface ×1