这是一种从我的textedit复制单词并将其设置为我的tableview中的新行的方法。我需要的是:如何改变我选择的单词的颜色到我的textedit?我的文本编辑名称是“编辑器”,当我复制单词时我需要更改这个单词的颜色,我不知道该怎么做。请帮忙 :)。请举例~~
def addLineTable(self):
row = self.model.rowCount() #create a line into my tableview
self.model.insertRows(row)
column = 0
index = self.model.index(row, column)
tableView = self.TABLE
tableView.setFocus()
tableView.setCurrentIndex(index)
cursor = self.editor.textCursor()
textSelected = cursor.selectedText() #set text to cursor
self.model.setData(index, QVariant(textSelected)) #set text to new tableview line
答案 0 :(得分:3)
如果我理解你的问题,你只想改变文字的颜色,对吧?
您可以通过将StyleSheets
与css分配到QWidgets
,文档here来完成此操作。
以下示例:
from PyQt4 import QtGui, QtCore
class Window(QtGui.QDialog):
def __init__(self):
QtGui.QDialog.__init__(self)
self._offset = 200
self._closed = False
self._maxwidth = self.maximumWidth()
self.widget = QtGui.QWidget(self)
self.listbox = QtGui.QListWidget(self.widget)
self.editor = QtGui.QTextEdit(self)
self.editor.setStyleSheet("QTextEdit {color:red}")
layout = QtGui.QHBoxLayout(self)
layout.addWidget(self.widget)
layout.addWidget(self.editor)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.move(500, 300)
window.show()
sys.exit(app.exec_())
或者你可以将setStyleSheet设置为你的所有QTextEdit
,试试这个:
......
app = QtGui.QApplication(sys.argv)
app.setStyleSheet("QTextEdit {color:red}")
......
答案 1 :(得分:3)
您已经获得了QTextCursor
。您需要做的就是将格式(QTextCharFormat
)应用于此光标,并相应地格式化所选文本:
def addLineTable(self):
row = self.model.rowCount() #create a line into my tableview
self.model.insertRows(row)
column = 0
index = self.model.index(row, column)
tableView = self.TABLE
tableView.setFocus()
tableView.setCurrentIndex(index)
cursor = self.editor.textCursor()
# get the current format
format = cursor.charFormat()
# modify it
format.setBackground(QtCore.Qt.red)
format.setForeground(QtCore.Qt.blue)
# apply it
cursor.setCharFormat(format)
textSelected = cursor.selectedText() #set text to cursor
self.model.setData(index, QVariant(textSelected)) #set text to new tableview line