一个关于pyqt5的小问题
import sysfrom PyQt5.QtWidgets import QApplication, QDialog
from ui_Dialog import Ui_Dialog
class QmyDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
def on_btnClear_clicked(self):
self.ui.textEdit.clear()
def on_chkBoxBold_toggled(self, checked):
font = self.ui.textEdit.font()
font.setBold(checked)
self.ui.textEdit.setFont(font)
def on_chkBoxUnder_clicked(self):
checked = self.ui.chkBoxUnder.isChecked()
font = self.ui.textEdit.font()
font.setUnderline(checked)
self.ui.textEdit.setFont(font)
@pyqtSlot(bool)
def on_chkBoxItalic_clicked(self, checked):
font = self.ui.textEdit.font()
font.setItalic(checked)
self.ui.textEdit.setFont(font)
这个是myDialog.py
import sys
from PyQt5.QtWidgets import QApplication
from myDialog import QmyDialog
app = QApplication(sys.argv)
mainform = QmyDialog()
mainform.show()
sys.exit(app.exec_())
appMain.py
运行提示pyqtSlot未定义,求大神指点 你的 pyqtSlot 是从哪里来的? zltzlt 发表于 2020-4-6 17:25
你的 pyqtSlot 是从哪里来的?
我按照书上写的做的啊,小白不懂,大神指点一下啊 xqq1984 发表于 2020-4-6 17:26
我按照书上写的做的啊,小白不懂,大神指点一下啊
试试把 @pyqtSlot(bool) 这一行去掉 zltzlt 发表于 2020-4-6 17:25
你的 pyqtSlot 是从哪里来的?
pyqtSlot前面有个@符号的 xqq1984 发表于 2020-4-6 17:27
pyqtSlot前面有个@符号的
这说明 pyqtSlot 被当做装饰器使用 from PyQt5.QtCore import pyqtSignal 你忘了导入。
建议新手先用控件自带信号绑定函数。比如你定义了一个按钮btn1,定义了一个你想要点击按钮时执行的函数func1,那在类中可以这样:
self.btn1.clicked.connect(func1) Charles未晞 发表于 2020-4-6 17:28
导入这句了,是灰色的,说明没有用到 hrp 发表于 2020-4-6 17:33
你忘了导入。
自定义信号吗,书上先讲的内建信号 xqq1984 发表于 2020-4-6 18:43
自定义信号吗,书上先讲的内建信号
不是自定义,是内建的,比如内建的clicked(点击)信号 hrp 发表于 2020-4-6 20:06
不是自定义,是内建的,比如内建的clicked(点击)信号
这个就是内建的啊clicked(bool),只不过是overload型信号
页:
[1]