c++ - 仅在 QTabWidget 的事件选项卡上关闭按钮

标签 c++ qt qtabwidget qtabbar

为了节省 QTabWidget 中的空间,我想只为当前选项卡显示关闭图标,例如Firefox 正在做:

enter image description here

有没有使用样式表的简单方法,比如(不能像这样工作)

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/

相关文章:

c++ - 在 C++ 中使用数组仅存储类的数据成员的名称

android - qmessagebox 问题,无法更改其位置

c++ - Qt5 - 为什么不截图并保存到文件中?

c++ - 更改 Qt 中的选项卡小部件设计

c++ - QTabWidget - 如何分别编辑每个小部件?

python - PyQt4 菜单操作向 QTabWidget 添加新选项卡

c++ - C++ 宏可以计算 switch 语句中的案例吗?

c++ - 如何在不使用任何框架或库的情况下在屏幕上绘制图形?

c++ - 全局结构分配给出名称类型错误

python - 线程 : It is not safe to use pixmaps outside the GUI thread