为了节省 QTabWidget
中的空间,我想只为当前选项卡显示关闭图标,例如Firefox 正在做:
有没有使用样式表的简单方法,比如(不能像这样工作)
QTabBar::tab::!selected::close-button {visible: false;}
或者我是否必须继承 QTabWidget
以获得所需的行为?
最佳答案
您不需要子类化任何东西,您可以使用QTabWidget::tabBar()
方法来获取对相关标签栏的引用(即QTabBar *
)使用您的 QTabWidget
。 (请注意,此方法不再 protected ,因此可以在不子类化该类的情况下访问它)
QTabBar *tabBar = tabWidget->tabBar();
您现在可以使用 tabBar
引用来隐藏非当前选项卡上的关闭按钮。例如隐藏i
按钮,你可以这样做:
tabBar->tabButton(i, QTabBar::RightSide)->hide();
所以一个简单的工作流程如下:
- 将
QTabWidget::currentChanged(int index)
信号连接到插槽。 - 在该插槽中隐藏除
index
处的按钮以外的所有关闭按钮。
关于c++ - 仅在 QTabWidget 的事件选项卡上关闭按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39823115/