web-dev-qa-db-fra.com

Qt Set Couleur de fond de QLineEdit

J'essaie de changer la couleur de fond de la variable QLineEdit et je ne peux pas le comprendre du tout.

J'ai essayé d'utiliser stylesheets à l'origine comme ceci

QLineEdit *le = new QLineEdit();
le->setStyleSheet("background:#000;");

mais cela n'a rien fait. J'ai essayé d'utiliser QPalette comme ceci

QPalette palette;
palette.setColor(QPalette::Base, Qt::black);
palette.setColor(QPalette::Background, Qt::black);
le.setPalette(palette);    

mais cela n'a rien fait non plus. J'ai cherché toute la journée et je ne trouve rien. est-ce que je fais quelque chose de mal ou y a-t-il un autre moyen de le faire?

9
David Ludwig

Fonctionne bien pour moi:

QLineEdit *le = new QLineEdit();
le->setStyleSheet("QLineEdit { background: rgb(0, 255, 255); selection-background-color: rgb(233, 99, 0); }");
7
Iuliu

Vous pouvez définir les couleurs d'arrière-plan et de texte de la modification de ligne en définissant la palette comme suit:

QLineEdit *le = new QLineEdit();

QPalette palette;
palette.setColor(QPalette::Base,Qt::black);
palette.setColor(QPalette::Text,Qt::white);
le->setPalette(palette);
9
Nejat

Votre code est presque correct. Seule QLine edit utilise la couleur de base. Ainsi, si vous ne souhaitez pas remplacer une feuille de style existante pouvant contenir des marges et des marges et que vous souhaitez modifier uniquement l'arrière-plan, utilisez QPalette:

QPalette palette = _ui->lnSearch->palette();
palette.setColor(QPalette::Base, Qt::green);
_ui->lnSearch->setPalette(palette);

Merci à: https://forum.qt.io/topic/64568/why-setting-background-color-of-qlineedit-has-no-effect

2
Tomas Tintera

Je devais utiliser background-color de CSS standard comme ceci:

QLineEdit* edit = new QLineEdit();
edit->setStyleSheet("QLineEdit {background-color: black;}");

J'utilise Qt 5.4

2
Brandon