2013-02-04 2 views
2

Ceci est une méthode pour copier un mot de mon texttedit, et le définir à une nouvelle ligne dans ma tableview. Ce dont j'ai besoin est: Comment changer la couleur du mot que j'ai sélectionné dans mon texttedit? Le nom de mon édition de texte est "éditeur", quand je copie le mot j'ai besoin de changer la couleur de ce mot, et je ne sais pas comment le faire. Aidez-moi, s'il vous plaît :). Avec des exemples s'il vous plaît ~~pyqt - Comment changer la couleur d'un mot de mon texttedit

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 

Répondre

3

Si je comprends bien votre question, vous voulez juste changer la couleur du texte, non? Vous pouvez le faire en affectant StyleSheets avec css à votre QWidgets, documentation here.

Un exemple ci-dessous:

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_()) 

Modifier

Ou vous pouvez setStyleSheet à tous vos QTextEdit, essayez ceci:

...... 

app = QtGui.QApplication(sys.argv) 
app.setStyleSheet("QTextEdit {color:red}") 
...... 
2

Vous êtes déjà obtenir le QTextCursor. Tout ce que vous devez faire est d'appliquer un format (QTextCharFormat) à ce curseur et le texte sélectionné sera formaté en conséquence:

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 
Questions connexes