python中side什么意思_python – 在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 = self.sender()

sender_text = sender.text()

if sender_text == '': sender_text = '0'

# is there another way?

if sender.placeholderText() == 'a1':

self.multiplicand = sender_text

else:

self.multiplier = sender_text

product = int(self.multiplier) * int(self.multiplicand)

print(self.multiplier,self.multiplicand,product)

self.a1a2_edit.setText(str(product))

def main():

app = QtGui.QApplication(sys.argv)

mainWindow = myGUI()

sys.exit(app.exec_())

main()

最好的祝福,

ostrzysz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值