2009-10-06 17 views

Odpowiedz

12

Modyfikuj paletę yo edytuj zwykły tekst. Przykładowy program:

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

Zastąp dowolnie wybrany kolor, oczywiście.

+1

Należy pamiętać, że przy użyciu tej metody, przy zastosowaniu arkuszy stylów do rodzica lub samego sterowania spowoduje wyłączenie tej palety. Miał trochę zabawy rozwiązywania tego właśnie teraz :) – RandomInsano

+0

Dobrze wiedzieć, dzięki! Nie pracowałem jeszcze z arkuszami stylów, więc dziękuję za wcześniejsze powiadomienie. – Bill

3

Nieco mylnie nazywają to rola raczej niż kolor/kolor.

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

wskazówka - jeśli nie można znaleźć funkcję dla danej kontroli, kliknij Pokaż dziedziczone członków - najbardziej ogólne ustawienia są w QWidget, który jest podstawą do eveything narysowany na ekranie.

+0

Dzięki, ale nadal nie wiem, jak to zrobić dokładnie ... – deuces

+0

Czy nie je stosować, ale zobacz ten wątek http://lists.trolltech.com/qt-interest/2006-07/thread00174-0 .html –

0

Może trzeba zadzwonić QPlainTextEdit::setBackgroundVisible(true).

0

W celu zmiany tła, trzeba zmodyfikować palette swojego QPlainTextEdit i ustawić tło jest widoczne:

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

Jeśli QPlainTextEdit obsługuje arkusze stylów, można zrobić to tak:

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

lub

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