Код: Выделить всё
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() (который тоже не работает, чтобы получить другой цвет), если виджет находится в сцене?
Нужно ли мне запускать что-то вроде update() (который тоже не работает, чтобы получить другой цвет), если виджет находится в сцене?
Нужно ли мне запускать что-то вроде update() (который тоже не работает, чтобы получить другой цвет), если виджет находится в сцене?
Нужно ли мне запускать что-то вроде update() (который тоже не работает, чтобы получить другой цвет), если виджет находится в сцене?
Нужно ли мне запускать что-то вроде update() (который тоже не работает, чтобы получить другой цвет), если виджет находится в сцене? p>
РЕДАКТИРОВАНИЕ:
создан новый пример кода.
Я знаю, что это работает в обычном QWidget. На самом деле код работает нормально, если я помещаю QLineEdit в обычный QFrameи т. д. но в QGraphicsScene. И в этом особом случае это не работает. Цвет текста, выделения и т. д. также работает нормально. Но backgroud/base/etc — нет.
Подробнее здесь: https://stackoverflow.com/questions/374 ... phicsscene
Мобильная версия