如何在设置QLineEdit的背景图像时设置文本颜色?

8
我有一个 QLineEdit,在QStackedWidget中设置了一张图片。现在我想改变QLineEdit中文本的字体颜色。该怎么做?
QLineEdit *line1 = new QLineEdit("Hello");
QStackedWidget *stack1 = new QStackedWidget();
stack1->addWidget(line1);
stack1->setStyleSheet("background-image: url(black.gif);");

我尝试在setStyleSheet中写入foreground-colorforeground,但对我没有用。


2
你试过只用color: white;吗? - Kamil Klimek
我也尝试了白色。 - Suresh
2
你应该使用qss属性color(而不是foreground-color) - hank
2个回答

19

这对我有用:

    QPalette *palette = new QPalette();
palette->setColor(QPalette::Text,Qt::red);
line->setPalette(*palette);

我认为这是一个内存泄漏。 setPallete 接受一个 const &,这通常意味着该函数会复制并留给你。你应该将 QPalette 声明为值(而不是指针),或在最后调用删除。 - Youda008

10

通常,可以通过设置color样式属性来实现这一点,因此不需要使用foreground-color或类似的东西。所以应该这样做:

QLineEdit *line1 = new QLineEdit("Hello");
QStackedWidget *stack1 = new QStackedWidget();
stack1->addWidget(line1);
stack1->setStyleSheet("background-image: url(black.gif); color: #FFFFFF");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接