У меня есть QGraphicsScene
и добавьте QlineEdit
, но изменение цвета просто не работает.Как изменить цвет фона QLineEdit в QGraphicsScene
QGridLayout *layout = new QGridLayout(this);
QGraphicsView *view = new QGraphicsView(this);
QGraphicsScene *scene = new QGraphicsScene(this);
QWidget *widget = new QWidget();
QGridLayout *widgetLayout = new QGridLayout(this);
QLineEdit *le1 = new QLineEdit(widget);
QLineEdit *le2 = new QLineEdit(widget);
widgetLayout->addWidget(le1,1,0);
widgetLayout->addWidget(le2,2,0);
widget->setLayout(widgetLayout);
QPalette paletteRed = le1->palette();
paletteRed.setColor(QPalette::Background,Qt::red);
QPalette paletteGreen = le1->palette();
paletteGreen.setColor(QPalette::Background,Qt::green);
le1->setAutoFillBackground(true);
le1->setPalette(paletteRed); // not working
widget->setPalette(paletteGreen); // working
view->setScene(scene);
scene->addWidget(widget);
ui->centralWidget->setLayout(layout);
layout->addWidget(view);
Должен ли я вызвать что-то вроде update()
(который не работает либо, чтобы получить другой цвет), если виджет в сцене?
EDIT:
создал новый пример кода.
Я знаю, что это работает в обычном QWidget
. На самом деле код работает нормально, если я разместил QLineEdit
в обычном QFrame
и т. Д. , но его в QGraphicsScene
. И в этом частном случае его не работает. Текст и цвет выделения и т. Д. Также отлично работают. Но backgroud/base/etc ist нет.
Где код смены цвета? – perencia
Изменение 'QPallette'? –
Попытайтесь использовать таблицы стиля qt – Fabio