2009-10-06 17 views

Respuesta

12

Modificar la paleta de yo ur edición de texto sin formato. Programa de ejemplo:

#include <QApplication> 
#include <QPlainTextEdit> 

int main(int argc, char* argv[]) 
{ 
    QApplication app(argc, argv); 

    QPlainTextEdit edit; 
    QPalette p = edit.palette(); 

    p.setColor(QPalette::Active, QPalette::Base, Qt::red); 
    p.setColor(QPalette::Inactive, QPalette::Base, Qt::red); 

    edit.setPalette(p); 

    edit.show(); 
    return app.exec(); 
} 

Sustituya el color que desee, por supuesto.

+1

Tenga en cuenta que con este método, la aplicación de hojas de estilo a uno de los padres o al propio control deshabilitará esta paleta. Tuvimos un poco de diversión solucionando esto ahora :) – RandomInsano

+0

¡Es bueno saberlo, gracias! No he trabajado con hojas de estilo todavía, así que gracias por el aviso anticipado. – Bill

3

Ligeramente confusamente lo llaman rol en lugar de color/color.

http://doc.trolltech.com/main-snapshot/qwidget.html#setBackgroundRole

pista - ajustes más generales están en Qwidget que es la base para eveything dibujado en la pantalla - si no puede encontrar una función para un control determinado, haga clic en Mostrar miembros heredados.

+0

Gracias pero todavía no sé cómo hacerlo exactamente ... – deuces

+0

No lo he usado, pero vea este hilo http://lists.trolltech.com/qt-interest/2006-07/thread00174-0 .html –

0

Puede ser que necesite llamar al QPlainTextEdit::setBackgroundVisible(true).

0

Con el fin de modificar el fondo, es necesario modificar el palette de su QPlainTextEdit y para establecer fondo visible:

myPlainTextEdit->setPalette(QPalette(/*Select the constructor you need*/)); 
myPlainTextEdit->setBackgroundVisible(true); 
3

Si QPlainTextEdit soporta hojas de estilo, que podría hacerlo de esta manera:

myPlainTextEdit->setStyleSheet("background-color: yellow"); 

o

qApp->setStyleSheet("QPlainTextEdit {background-color: yellow}"); 
Cuestiones relacionadas