web-dev-qa-db-ja.com

QtはQLineEditの背景色を設定します

QLineEditの背景色を変更しようとしていますが、まったくわかりません。

もともとこのようにstylesheetsを使ってみた

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

しかし、それは何もしませんでした。 QPaletteをこのように使ってみました

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

しかし、これも何もしませんでした。私は一日中探していて何も見つけることができません。私は何か間違ったことをしていますか、それを行う別の方法はありますか?

14
David Ludwig

私にとってはうまくいきます:

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

次のようにパレットを設定することで、ライン編集の背景とテキストの色を設定できます。

QLineEdit *le = new QLineEdit();

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

あなたのコードはほぼ正しいです。 QLine編集のみがベースカラーを使用します。したがって、ボーダーのパディングとマージンを含むことができる既存のスタイルシートを置き換えたくない場合で、背景のみを変更したい場合は、QPaletteを使用します。

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

おかげで: https://forum.qt.io/topic/64568/why-setting-background-color-of-qlineedit-has-no-effect

4
Tomas Tintera

私はこのような標準のCSSからの背景色を使用する必要がありました:

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

Qt 5.4を使用しています

2
Brandon