将QTabBar替换为图标,设置选中和不选中的样式为同一个图标
时间: 2024-03-28 22:41:26 浏览: 116
A-Better-QTabBar:重新实现Qt类QTabBar
您可以使用`QTabBar`的`setTabIcon()`方法来设置标签的图标,并使用`QTabBar`的`setStyleSheet()`方法来设置标签的样式表。以下是一个示例代码:
```cpp
#include <QApplication>
#include <QTabBar>
#include <QTabWidget>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QTabWidget tabWidget;
QTabBar *tabBar = tabWidget.tabBar();
tabBar->addTab("");
tabBar->addTab("");
tabBar->setTabIcon(0, QIcon(":/icons/tab1.png"));
tabBar->setTabIcon(1, QIcon(":/icons/tab2.png"));
tabBar->setStyleSheet("QTabBar::tab:selected, QTabBar::tab:hover {"
" background-color: transparent;"
" border: none;"
" border-bottom: 2px solid #0078d7;"
"}");
tabWidget.show();
return app.exec();
}
```
在上面的代码中,我们创建了一个`QTabWidget`和一个`QTabBar`对象,并使用`addTab()`方法添加了两个标签。使用`setTabIcon()`方法将标签的图标设置为我们想要显示的图标。然后,我们使用`setStyleSheet()`方法来设置标签的样式表。在样式表中,我们使用`QTabBar::tab:selected`和`QTabBar::tab:hover`选择器来设置选中和悬停时的样式。我们将`background-color`设置为`transparent`,将`border`和`border-bottom`设置为`none`和`2px solid #0078d7`,以使选中和悬停时的标签样式和未选中时的样式相同。
请注意,您需要在项目中添加图标文件,并使用正确的路径来加载它们。
阅读全文