PyQt5 在 Qtextedit 上发出点击信号
PyQt5 emit clicked signal on Qtextedit
我的 qtextedit 字段中有一些预定义的文本。
我想让它在单击后立即消失。
所以我试图为它创建一个 "clicked" 信号。这是我所拥有的(只是重要的几行:
from PyQt5.QtCore import pyqtSignal
from PyQt5 import QtCore, QtGui, QtWidgets
(...)
class QTextEdit(QtWidgets.QTextEdit):
clicked = pyqtSignal()
def mouseReleaseEvent(self,event):
self.clicked.emit()
(...)
self.userfield = QtWidgets.QTextEdit(self.centralwidget)
self.userfield.setMaximumSize(QtCore.QSize(200, 30))
self.userfield.setObjectName("userfield")
self.userfield.clicked.connect(lambda: self.txt())
我收到 AttributeError:'QTextEdit' 对象没有属性 'clicked'
我可以提供其余的代码,但目前它只是一个无法使用的 ui。
你不应该调用一个 class 等于另一个现有的 class,这会导致你发生冲突并因此产生很多问题。
除以下代码外:
self.userfield = QtWidgets.QTextEdit(self.centralwidget)
您告诉他们使用 QtWidgets 模块中的 QTextEdit 而不是您的 class。
解法:
# ...
class TextEdit(QtWidgets.QTextEdit):
clicked = pyqtSignal()
def mouseReleaseEvent(self,event):
self.clicked.emit()
# ...
self.userfield = TextEdit(self.centralwidget)
self.userfield.setMaximumSize(QtCore.QSize(200, 30))
self.userfield.setObjectName("userfield")
self.userfield.clicked.connect(self.txt)
# ...
我的 qtextedit 字段中有一些预定义的文本。 我想让它在单击后立即消失。 所以我试图为它创建一个 "clicked" 信号。这是我所拥有的(只是重要的几行:
from PyQt5.QtCore import pyqtSignal
from PyQt5 import QtCore, QtGui, QtWidgets
(...)
class QTextEdit(QtWidgets.QTextEdit):
clicked = pyqtSignal()
def mouseReleaseEvent(self,event):
self.clicked.emit()
(...)
self.userfield = QtWidgets.QTextEdit(self.centralwidget)
self.userfield.setMaximumSize(QtCore.QSize(200, 30))
self.userfield.setObjectName("userfield")
self.userfield.clicked.connect(lambda: self.txt())
我收到 AttributeError:'QTextEdit' 对象没有属性 'clicked'
我可以提供其余的代码,但目前它只是一个无法使用的 ui。
你不应该调用一个 class 等于另一个现有的 class,这会导致你发生冲突并因此产生很多问题。
除以下代码外:
self.userfield = QtWidgets.QTextEdit(self.centralwidget)
您告诉他们使用 QtWidgets 模块中的 QTextEdit 而不是您的 class。
解法:
# ...
class TextEdit(QtWidgets.QTextEdit):
clicked = pyqtSignal()
def mouseReleaseEvent(self,event):
self.clicked.emit()
# ...
self.userfield = TextEdit(self.centralwidget)
self.userfield.setMaximumSize(QtCore.QSize(200, 30))
self.userfield.setObjectName("userfield")
self.userfield.clicked.connect(self.txt)
# ...