LINUX.ORG.RU

Блин! Как все-таки поменять фон у QLineEdit?


0

1

По аналогии с примером из интернета делаю так:

                QPalette *p = new QPalette();
		p->setColor(QPalette::Base,Qt::red);
		name_label->setPalette(*p);
		//name_label->setFrame(false);

Так вот: в таком виде честно красит фон в красный цвет. НО! Если раскомментарить setFrame(false), то эта сволочь просто болт кладет на любые попытки поменять фон!

Вопрос: Как? Как поменять фон и убрать рамку в QLineEdit?

Может через CSS?

name_label->setStyleSheet("background-color: red");

POLTER ★★
()

у меня все работает

QPalette p = lineEdit->palette();
p.setColor(QPalette::Base, Qt::red);
lineEdit->setPalette(p);
lineEdit->setFrame(false);

anonymous
()
Ответ на: комментарий от anonymous

А у меня - устойчивый эффект: комментарю setFrame - все путем. Раскомментариваю - опять дефолтный белый фон.

Flogger_d
() автор топика
Ответ на: комментарий от Flogger_d

вот минимальный рабочий пример

main.cpp:

#include <QApplication>
#include <QLineEdit>

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);

    QLineEdit *name_label = new QLineEdit;
    QPalette *p = new QPalette();
    p->setColor(QPalette::Base,Qt::red);
    name_label->setPalette(*p);
    name_label->setFrame(false);

    name_label->show();

    return a.exec();
}
test.pro:
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = test
TEMPLATE = app
SOURCES += main.cpp
запускать так:
qmake test.pro && make && ./test

anonymous
()

Плюсую предложение сделать через QSS. Практика подсказывает, что так оно работает всегда, а не слетает от каждого чиха...

Хотя вообще УМВР, так что не знаю, почему у тебя все разваливается

solovey ★★
()

Попробуй еще поиграться с setAutoFillBackground(true)

m0rph ★★★★★
()
Ответ на: комментарий от solovey

Сделал в итоге через setStyleSheet. Работает вроде. Через setPalette - хрен.

Flogger_d
() автор топика
Последнее исправление: Flogger_d (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.