在某个时候,我需要使QTextEdit
看起来像已被禁用。
我不反对调用setEnabled(false)
,但是QTextEdit
不再接收QContextMenuEvent
事件(而且我需要右键单击上下文菜单可用....因为这是用户禁用QTextEdit
的方式,所以这就是我的方式希望他重新启用)。
所以我做:
QColor mainWindowBgColor = palette().color(QPalette::Window);
// for the current widget
setStyleSheet(QString("background-color: %0").arg(mainWindowBgColor.name(QColor::HexRgb)));
除非您右键单击窗口小部件并显示其上下文菜单,否则这看起来不错,但上下文菜单出现但看起来很糟。项目突出显示不起作用,然后几乎看不到所选文本(在灰色背景上涂成白色)。
我怎么可能:
setEnabled(false)
并具有鼠标右键单击上下文菜单可访问setStyleSheet
,但确保不会被上下文菜单小部件使用usd开始绘制最佳答案
样式表被所有子小部件继承。要使样式表仅应用于特定的窗口小部件(或窗口小部件类型),必须指定访问器。
例如。
setStyleSheet(QString(
"QTextEdit { background-color: %0 }"
).arg(mainWindowBgColor.name(QColor::HexRgb)));
关于c++ - 如何使QTextEdit看起来被禁用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49673346/