2009-10-06 5 views

risposta

12

Modificare la tavolozza di yo ur un semplice testo di modifica. Programma di esempio:

#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(); 
} 

Sostituire qualsiasi colore desiderato, ovviamente.

+1

Si noti che con questo metodo, l'applicazione di fogli di stile a un genitore o al controllo stesso disabiliterà questa tavolozza. Mi sono divertito a risolvere questo problema proprio ora :) – RandomInsano

+0

Buono a sapersi, grazie! Non ho ancora lavorato con i fogli di stile, quindi grazie per il preavviso. – Bill

3

Un po 'confusamente lo chiamano ruolo piuttosto che colore/colore.

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

suggerimento - se non è possibile trovare una funzione per un controllo particolare, cliccare in mostra ereditato membri - impostazioni più generali sono in QWidget, che è la base per eveything disegnato sullo schermo.

+0

Grazie, ma ancora non so come farlo esattamente ... – deuces

+0

Non l'ho usato ma vedo questo thread http://lists.trolltech.com/qt-interest/2006-07/thread00174-0 .html –

0

Potrebbe essere necessario chiamare QPlainTextEdit::setBackgroundVisible(true).

0

Al fine di modificare lo sfondo, è necessario modificare il palette del vostro QPlainTextEdit e per impostare sfondo visibile:

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

Se QPlainTextEdit supporta i fogli di stile, si potrebbe fare in questo modo:

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

o

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