Qt QPlainTextEdit 背景

10
我该如何改变 QPlainTextEdit 的背景颜色?
5个回答

15

修改普通文本编辑器的调色板。示例程序:

#include <QApplication>
#include <QPlainTextEdit>

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

  QPlainTextEdit edit;
  QPalette p = edit.palette();

  p.setColor(QPalette::Active, QPalette::Base, Qt::red);
  p.setColor(QPalette::Inactive, QPalette::Base, Qt::red);

  edit.setPalette(p);

  edit.show();
  return app.exec();
}

当然可以替换为您想要的任何颜色。


1
请注意,使用此方法将样式表应用于父级或控件本身将禁用此调色板。刚刚解决了一些有趣的故障排除 :) - RandomInsano
好的,谢谢!我还没有使用样式表工作过,所以感谢您提前告知。 - Bill

4
如果QPlainTextEdit支持样式表,你可以像这样做:
myPlainTextEdit->setStyleSheet("background-color: yellow");

或者

qApp->setStyleSheet("QPlainTextEdit {background-color: yellow}");

请注意,这也会影响滚动条的颜色,这可能不是您想要的。 - letmaik

3
略微令人困惑的是,他们称其为“角色”而非“颜色”。

https://doc.qt.io/qt-5/qwidget.html#setBackgroundRole

提示 - 如果您找不到特定控件的函数,请单击“显示继承成员” - 大多数常规设置都在 qWidget 中,它是屏幕上绘制所有内容的基础。

还没有使用过,但可以看一下这个帖子:http://lists.trolltech.com/qt-interest/2006-07/thread00174-0.html - Martin Beckett

0
为了修改背景,您需要修改 QPlainTextEdit 的 调色板 并设置背景可见:
myPlainTextEdit->setPalette(QPalette(/*Select the constructor you need*/));
myPlainTextEdit->setBackgroundVisible(true);

0

也许你需要调用QPlainTextEdit::setBackgroundVisible(true)


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