在跟着《Python Qt GUI 与可视化编程》这本书学习时,学到这一小节:为组件的内建信号编写槽函数。
目标是点击窗体上的按钮,清除文本框的内容。
一些代码:
import sys
from ui_Dialog import Ui_Dialog
from PySide6.QtWidgets import *
# ui_Dialog是.ui文件转换出来的.py文件,Ui_Dialog是里面的一个类
class QmyDialog(QDialog):
def __init__(self, parent=None):
super(QmyDialog, self).__init__(parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
def on_btnClear_clicked(self):
self.ui.textEdit.clear()
窗体上按钮的Objectname是btnClear
,我在Qt Creater界面确认了,也在ui文件转换出来的py文件里确认过了。
我反复确认了没有漏掉书上的任何一步。但是不知道为什么没能实现槽函数与信号的自动连接。
尝试在__init__
底下添加
self.ui.btnClear.clicked.connect(self.on_btnClear_clicked)
结果居然可以了!但是书上没有我刚添加的代码,而且加了这句代码就不是自动连接了吧。有人知道为什么吗?
class QmyDialog(QDialog):
def __init__(self, parent=None):
super(QmyDialog, self).__init__(parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.btnClear.clicked.connect(self.on_btnClear_clicked)
def on_btnClear_clicked(self):
self.ui.textEdit.clear()
可以运行的代码如上,但这种写法应该是自定义槽函数的写法才对啊