gpt4 book ai didi

python - 单击事件在 pyside 的 textedit 中不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 01:24:51 24 4
gpt4 key购买 nike

我类有这样的代码

 self.textEdit = QtGui.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(30, 20, 351, 51))
self.textEdit.setObjectName("textEdit")
QtCore.QObject.connect(self.textEdit, QtCore.SIGNAL("clicked()"), self.text_click)
QtCore.QObject.connect(self.textEdit, QtCore.SIGNAL("textChanged()"), self.text_change)
def text_change(self):
print "change ok"
def text_click(self):
print "clicked ok

在我的代码中,文本更改事件工作正常。但是点击事件不起作用。我如何检测 textedit 小部件中的点击事件?

最佳答案

我不确定这是正确的方法。您可以使用 mousePressEvent:

import sys
from PyQt4 import QtGui, QtCore

def text_change():
print "change ok"
def text_click(event): # <--- NOTE: event object is passed.
print "clicked ok "

app = QtGui.QApplication(sys.argv)
textEdit = QtGui.QTextEdit()
textEdit.setGeometry(QtCore.QRect(30, 20, 351, 51))
textEdit.setObjectName("textEdit")
textEdit.mousePressEvent = text_click
QtCore.QObject.connect(textEdit, QtCore.SIGNAL("textChanged()"), text_change)
textEdit.show()
sys.exit(app.exec_())

使用 PyQt 4.10.2 测试。 (窗口 7,Python 2.7.5)

更新

mousePressEvent 也适用于 PyQt5。

import sys
from PyQt5 import QtCore, QtWidgets

def text_change():
print("change ok")
def text_click(event):
print("clicked ok ")

app = QtWidgets.QApplication(sys.argv)
textEdit = QtWidgets.QTextEdit()
textEdit.setGeometry(QtCore.QRect(30, 20, 351, 51))
textEdit.setObjectName("textEdit")
textEdit.mousePressEvent = text_click
textEdit.textChanged.connect(text_change)
textEdit.show()
sys.exit(app.exec_())

使用 PyQt 5.0(Windows 7、Python 3.3.2)测试

关于python - 单击事件在 pyside 的 textedit 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18684472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com