我需要将样式化的小部件绘制为具有焦点的样式,而实际上却没有焦点。我的具体情况是一个工具/弹出列表框(包含QListView
),该框应悬停在其他小部件上方,但它不应获得焦点(与QCompleter
弹出框不同)。但是我想用相同的样式绘制好像它具有焦点,即当前行的蓝色突出显示而不是灰色(在Windows 10中为默认样式)。我能以某种方式假冒/假装一个小部件具有焦点但实际上却没有焦点,以便可以将其绘制为焦点吗?
我天真地尝试调用qApp->postEvent(myPopup, new QFocusEvent(QEvent::FocusIn));
,但它没有做任何更改,并且弹出窗口看起来仍然没有聚焦。
我不想用样式表弄乱我的代码,或者不想以某种方式覆盖样式化的项目委托,因为这些感觉比简单的代码更像是hack。
答案 0 :(得分:0)
您将必须实现一种代理样式,该样式将所有内容都描绘成好像被聚焦的那样,这也许是唯一一种不关心其他细节的非hacky通用方式。