问题是:
客户面板是从 QTabWidget 派生的,并且有一些带有一些小部件的选项卡
其中操作员(人)可以编辑数据。当任何小部件中的数据发生更改时
我检查了它,我在 QLabel 中设置了粗体字体,这是这个小部件的“伙伴”。我通过设置来做到这一点:
QFont fontBold; fontBold.setBold(true);
widget->setFont(fontBold)
到目前为止,一切都很好。
接下来,我希望在其中有修改和未保存数据的选项卡也用粗体进行标记。即使用户切换到其他选项卡,并且他留下未保存的数据,该选项卡也应保持用粗体标记,直到他回来并保存数据。
那就是问题所在。
如果我为小部件或 QTabBar 设置 setFont - 所有文本或所有选项卡都标记为粗体。
在我从 QTabWidget 派生的类中,我有:
QTabBar *tabBar() const { return QTabWidget::tabBar(); }
所以我可以访问tabBar,例如使用setTabTextColor——用不同的颜色标记这个选项卡——这是某种解决方案,但其他“伙伴”标签用粗体标记,所以tabText应该是粗体。
如果我使用 setStyleSheet 我可以制作粗体,但也有一个问题:
this->tabBar()->setStyleSheet("QTabBar::tab { font:bold }");
如果我使用活动、选定等伪状态,这会将所有选项卡设置为粗体文本 - 当用户切换到其他选项卡时它会更改,并且我需要保持此选项卡为粗体,直到保存数据。
我可以使用 setProperty 然后为具有特定属性的小部件制作 styleSheet,但真正的问题是,我不能或不知道如何访问 QTabBar 中的一个选项卡(例如通过知道它的索引号)
我已经看到,在 QT3 中有 QTab* QTabBar::tab(int) 可以访问特定选项卡,但这不再可用。我阅读了http://qt.nokia.com/doc/4.5/stylesheet-examples.html和http://qt.nokia.com/doc/4.5/stylesheet-reference.html并没有找到解决方案。
如何访问 QTabBar 中的特定选项卡(通过其索引号)或如何为特定选项卡设置字体:粗体样式表,当用户切换到其他选项卡时保留粗体字体?
提前致谢。