qtabwidget设置标签图标居中对齐
时间: 2023-05-22 18:05:47 浏览: 1223
QTabWidget实现的炫酷标签工具栏+源码
可以通过以下方式实现 qtabwidget 标签图标的居中对齐:
1. 将 tab 的图标设置为 pixmap,而不是 QIcon。
2. 设置 tab 的 text 和 iconSize。
3. 自定义样式表,将图标居中对齐。
示例代码如下:
QTabWidget *tabWidget = new QTabWidget(this);
// 创建 tab
QWidget *tab1 = new QWidget;
QWidget *tab2 = new QWidget;
// 设置 tab 的 text 和 icon
tabWidget->addTab(tab1, "Tab 1");
tabWidget->setTabIcon(0, QIcon(QPixmap(":/images/image.png").scaled(QSize(24, 24))));
tabWidget->setIconSize(QSize(24, 24));
tabWidget->addTab(tab2, "Tab 2");
tabWidget->setTabIcon(1, QIcon(QPixmap(":/images/image2.png").scaled(QSize(24, 24))));
tabWidget->setIconSize(QSize(24, 24));
// 自定义样式表,将图标居中对齐
QString styleSheet = "QTabBar::tab {"
" width: 100px;"
" height: 40px;"
" border: 1px solid gray;"
" border-bottom: none;"
" border-top-left-radius: 4px;"
" border-top-right-radius: 4px;"
" background: white;"
"}"
"QTabBar::tab:selected {"
" background: gray;"
"}"
"QTabBar::tab:pressed {"
" background: white;"
"}"
"QTabBar::tab:!selected {"
" margin-top: 2px;"
"}"
"QTabBar::tab:first {"
" margin-left: 0;"
"}"
"QTabBar::tab:last {"
" margin-right: 0;"
"}"
"QTabBar::tab:only-one {"
" margin: 0;"
"}"
"QTabBar::tab:!selected::icon {"
" position: relative;"
" top: 50%;"
" transform: translateY(-50%);"
"}";
tabWidget->setStyleSheet(styleSheet);
阅读全文