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?
Fonctionne bien pour moi:
QLineEdit *le = new QLineEdit();
le->setStyleSheet("QLineEdit { background: rgb(0, 255, 255); selection-background-color: rgb(233, 99, 0); }");
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);
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
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