【发布时间】:2013-10-23 18:37:00
【问题描述】:
玩弄一个可编辑的QAbstractItemModel,我注意到旧文本在编辑时不会被删除,因此会产生难看的叠加效果。
我可以使用 Qt 中的 Editable Tree Model Example 重现此内容(单击项目,按 F2,按 End,按几次退格键)。下面的屏幕截图显示了编辑过程中的一个项目,文本“with signals on”已被删除。它就像一个叠加层。旧文本在背景中(蓝底白字),当前文本在上面(蓝底黑字)。
删除/插入字符时效果相同:
屏幕截图来自 Fedora 19 系统,运行 gnome shell。我仍然可以在 Fedora 23 下重现它。
这是用于 gnome shell 的默认 style 中的错误(样式名称:'gtk+')还是打包错误?
我可以解决这个问题吗?
当明确使用其他样式(例如./editabletreemodel -style windows 或-style fusion)时,背景会在编辑过程中正确清除。
【问题讨论】:
-
我认为,问题在于在您的情况下,
QLineEdit具有透明背景。您可以尝试设置样式表,例如QLineEdit{background-color: white;} -
@thuga,是的,这行得通。发表您的评论作为答案,我会接受。非常优雅的解决方法。
-
我发表了我的评论作为答案。