0

我希望在每次更改(由应用程序内部生成)时以某种方式突出显示某些窗口控件以指示用户。

我找到了一个不错的方法:通过调色板和 QVariantAnimation 操作背景颜色。唯一引起大问题的小部件是 QComboBox,因为它的背景颜色需要非常棘手的处理。改变它的唯一(!)平台独立且正确的方法是应用此hack并设置样式表的“背景颜色”属性。问题是从样式表中获取默认值,需要将颜色平滑地设置回初始状态。

有没有办法以“uni-widget”方式处理这个问题(更具体地说:QAbstractButton、QLineEdit、QComboBox、QSlider、QListView、QGroupBox)?也许有其他方法可以为小部件的突出显示设置动画?

4

1 回答 1

0

我终于得出结论:不可能在不破坏其默认/初始/非动画外观的情况下向小部件添加动画效果。

所以我动画background-color样式表属性,使用调色板中特定于小部件的颜色角色作为预期的(!)初始颜色(在应用样式表之前在动画构造函数中选择它)。尽管我无法QPalette::Base在启用 Aero 的 Windows 7 上使 QComboBox 的颜色保持显示为白色(它仅在启动时显示为白色,但随后它以某种方式变为灰色,似乎是一个错误),但我对结果感到满意. (也不需要应用这个黑客

这是我的代码: http: //pastebin.com/PDyS1Mn1

于 2013-10-22T11:14:09.037 回答