【问题标题】:QTextEdit background color change also the color of scrollbarQTextEdit 背景颜色也改变了滚动条的颜色
【发布时间】:2012-03-22 04:53:46
【问题描述】:

我希望我的应用程序中的 QtextEdit 是绿色的,所以我将样式表设置为

background-color: rgb(109, 255, 99);

但是,这也会改变滚动条的背景颜色,即使我在 textedit 中单击鼠标右键,显示的菜单也是绿色的,这不是我所期望的。

我使用Qt Designer设计gui,然后我使用uic生成c++文件。

在 c++ 文件中是这样的:

textEdit->setAutoFillBackground(false);
textEdit->setStyleSheet(QString::fromUtf8("background-color: rgb(109, 255, 99);"));
textEdit->setReadOnly(true);

有人知道如何只为文本所在的区域设置背景颜色吗?

谢谢

【问题讨论】:

  • 想通了,很简单,我会尽快添加正常答案并将其标记为接受

标签: c++ qt


【解决方案1】:

文本编辑的所有子对象都继承样式表,因此所有子对象(例如上下文菜单)都将具有绿色背景。

你应该只在你的样式表中选择你的 QTextEdit,即

textEdit->setStyleSheet("QTextEdit { background-color: rgb(109, 255, 99) }");

请注意,您也可以在应用程序级别设置样式表,以便应用程序中的所有 QTextEdit 都具有您指定的背景:

qApp->setStyleSheet("QTextEdit { background-color: rgb(109, 255, 99) }");

【讨论】:

  • 感谢您的回答,这正是问题所在
  • 这似乎对我不起作用,因为按钮仍然是彩色的——必须这样做:QPalette* palette = new QPalette();调色板->setColor(QPalette::Base,QColor(0,0,0));调色板->setColor(QPalette::Text,QColor(128,128,128)); textEditor->setPalette(*调色板);对于黑色背景上的灰色文本,这没有为任何按钮着色。我认为您的回答是正确的,但似乎有些按钮包含在“QTextEdit”类中。
猜你喜欢
  • 2021-12-11
  • 1970-01-01
  • 2012-02-04
  • 2013-09-07
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
相关资源
最近更新 更多