xqq1984 发表于 2020-4-6 17:12:47

一个关于pyqt5的小问题

import sys
from 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未定义,求大神指点

zltzlt 发表于 2020-4-6 17:25:26

你的 pyqtSlot 是从哪里来的?

xqq1984 发表于 2020-4-6 17:26:34

zltzlt 发表于 2020-4-6 17:25
你的 pyqtSlot 是从哪里来的?

我按照书上写的做的啊,小白不懂,大神指点一下啊

zltzlt 发表于 2020-4-6 17:27:08

xqq1984 发表于 2020-4-6 17:26
我按照书上写的做的啊,小白不懂,大神指点一下啊

试试把 @pyqtSlot(bool) 这一行去掉

xqq1984 发表于 2020-4-6 17:27:21

zltzlt 发表于 2020-4-6 17:25
你的 pyqtSlot 是从哪里来的?

pyqtSlot前面有个@符号的

zltzlt 发表于 2020-4-6 17:27:49

xqq1984 发表于 2020-4-6 17:27
pyqtSlot前面有个@符号的

这说明 pyqtSlot 被当做装饰器使用

Charles未晞 发表于 2020-4-6 17:28:41

from PyQt5.QtCore import pyqtSignal

hrp 发表于 2020-4-6 17:33:28

你忘了导入。


建议新手先用控件自带信号绑定函数。比如你定义了一个按钮btn1,定义了一个你想要点击按钮时执行的函数func1,那在类中可以这样:
self.btn1.clicked.connect(func1)

xqq1984 发表于 2020-4-6 18:41:14

Charles未晞 发表于 2020-4-6 17:28



导入这句了,是灰色的,说明没有用到

xqq1984 发表于 2020-4-6 18:43:38

hrp 发表于 2020-4-6 17:33
你忘了导入。




自定义信号吗,书上先讲的内建信号

hrp 发表于 2020-4-6 20:06:36

xqq1984 发表于 2020-4-6 18:43
自定义信号吗,书上先讲的内建信号

不是自定义,是内建的,比如内建的clicked(点击)信号

xqq1984 发表于 2020-4-6 20:16:40

hrp 发表于 2020-4-6 20:06
不是自定义,是内建的,比如内建的clicked(点击)信号

这个就是内建的啊clicked(bool),只不过是overload型信号
页: [1]
查看完整版本: 一个关于pyqt5的小问题