时间:2026-01-06 17:32
人气:
作者:admin
event事件的工作方法是不断扫描是否发生事件然后做出相应,这种方式固然简单易懂,但如果我同一时间需要多项交互,那就不是能处理的了
所以pyside6采用信号(signal),可以以解为一件事情发生会发出一个信号呼叫对应的处理器(slot)响应
class MyWindow(QWidget): def __init__(self): super().__init__() btn = QPushButton('按钮名称', self) btn.clicked.connect(self.btn_click) # 按键点击时触发事件 def btn_click(self): print('按钮被点击了')btn.clicked.connect() # 变量名称.信号名称.connect(对应的事件函数)
获得输入的内容
account = self.lineEdit.text()
变量名 = self.对应输入框的objectName.text()
对应输入框的objectName可以在Qt Designer中找到
首先在Qt Designer绘制一个简易的计算器页面,保存ui文件

转化为py文件,静态导入,多继承打开

def com(self): self.pushButton_0.clicked.connect(lambda : self.add('0')) self.pushButton_1.clicked.connect(lambda : self.add('1')) self.pushButton_2.clicked.connect(lambda : self.add('2')) self.pushButton_3.clicked.connect(lambda : self.add('3')) self.pushButton_4.clicked.connect(lambda : self.add('4')) self.pushButton_5.clicked.connect(lambda : self.add('5')) self.pushButton_6.clicked.connect(lambda : self.add('6')) self.pushButton_7.clicked.connect(lambda : self.add('7')) self.pushButton_8.clicked.connect(lambda : self.add('8')) self.pushButton_9.clicked.connect(lambda : self.add('9')) self.pushButton_jia.clicked.connect(lambda : self.add('+')) self.pushButton_jian.clicked.connect(lambda : self.add('-')) self.pushButton_cheng.clicked.connect(lambda : self.add('*')) self.pushButton_chu.clicked.connect(lambda : self.add('/')) self.pushButton_dian.clicked.connect(lambda : self.add('.')) self.pushButton_C.clicked.connect(lambda : self.clear()) self.pushButton_CE.clicked.connect(lambda : self.clearall()) self.pushButton_ent.clicked.connect(lambda : self.jisuan())
def add(self, num): self.result += str(num) self.lineEdit.setText(self.result)
删除self.result最后一个字符,实现回退功能,记得更新显示
def clear(self): self.result = self.result[:-1] self.lineEdit.setText(self.result)
直接将self.result置为空,记得更新显示
def clearall(self): self.result = '' self.lineEdit.setText(self.result)
使用eval函数计算表达式结果,由于存在回退功能,所以计算时不能更新self.result内容,所以直接更新显示就可以,添加error防止出现错误,提高鲁棒性
def jisuan(self): try: self.lineEdit.setText(str(eval(self.result))) except: self.lineEdit.setText('error')
就酱,一个简易(划掉)简陋计算器就完成啦