【发布时间】:2018-06-02 13:21:50
【问题描述】:
我通过定义以下内容创建了一个 pyqt 窗口:
import sys
from PyQt4 import QtGui, QtCore
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window,self).__init__()
在我的 GUI 中,我有一个可以导入文本的窗口和一个工具栏:
self.textEdit = QtGui.QTextEdit()
self.setCentralWidget(self.textEdit)
self.textEdit.setReadOnly(True)
MyToolBar = QtGui.QToolBar() # QToolBar is a metaclass of QMainWindow
self.addToolBar(QtCore.Qt.RightToolBarArea,MyToolBar)
我在这个工具栏中有一个按钮,我希望能够通过按下按钮突出显示我在 QTextEdit 窗口中选择的文本。
我遇到的问题是定义一种方法,该方法可以跟踪已选择的文本,然后以我选择的颜色突出显示它。到目前为止,我有以下内容:
def Airframe_label(self):
self.cursor = QtGui.QTextCursor()
self.color = QtGui.QColor()
self.cursor.beginEditBlock()
self.textEdit.setTextBackgroundColor(self.color.Qt.green)
self.cursor.endEditBlock()
可能是我使用的类/方法不合适,或者我对它们的实现是错误的。任何帮助将不胜感激!
【问题讨论】:
-
为什么要在 Airframe_label 方法中创建另一个 self.textEdit?
-
@eyllanesc 错字我的错...
-
将
self.cursor = QtGui.QTextCursor()更改为self.cursor = self.textEdit.cursor() -
@eyllanesc 但 cursor() 不是 QTextEdit 类的方法?
-
对不起,试试
self.cursor = self.textEdit.textCursor()