pyqt-как изменить цвет слова из моего textedit
Это способ скопировать слово из моего 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
2 ответов:
Если я правильно понял ваш вопрос, вы просто хотите изменить цвет текста, не так ли? Вы можете сделать это, назначив
StyleSheetsс css для вашегоQWidgets, документация здесь.Пример ниже:
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_())Edit
Или вы можете установить stylesheet для всех ваших
QTextEdit, Попробуйте это:...... app = QtGui.QApplication(sys.argv) app.setStyleSheet("QTextEdit {color:red}") ......
Вы уже получаете
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
Comments