提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
1、 前言
最近一段时间学习QT的程序开发,遇到了如标题所说的问题,经过查询和摸索找到了解决方法,为了防止后续忘记,就记录了下来。
2、问题示例
我们在VS中创建一个Qt的窗体应用,并在中心QWidget中添加一个QTabWidget,如下图所示:
tab页的标题字体比较小,为了能更好的显示,修改了QTabWidget的样式,即:
cpp
QTabWidget* centralTabWidget = new QTabWidget(this);
centralTabWidget->setStyleSheet(
"QTabBar::tab{background-color: #FFFFFF;font: 75 10pt;height : 50px;margin - top:1px; margin - right:1px; margin - left:1px;margin - bottom:1px;}"
"QTabWidget::pane{border-top: 2px solid #3368b8;}"
"QTabBar::tab:hover{font: 75 10pt;color : #000000; background-color: #ebffff;}"
"QTabBar::tab:selected{font: 75 10pt;color:#ffffff;background-color: #3368b8;}"
);
setCentralWidget(centralTabWidget);
QWidget* firstTabWidget = new QTabWidget(centralTabWidget);
centralTabWidget->insertTab(0,firstTabWidget,QStringLiteral( "测试宽度值"));
此时出现了遮挡。
3、解决方法
在样式设置中修改QTabBar的样式,其字体与QTabBar::tab的字体保持一致即可,即:
cpp
//在中心Widget中添加Tabwidget
QTabWidget* centralTabWidget = new QTabWidget(this);
centralTabWidget->setStyleSheet(
"QTabBar::tab{background-color: #FFFFFF;font: 75 10pt;height : 50px;margin - top:1px; margin - right:1px; margin - left:1px;margin - bottom:1px;}"
"QTabWidget::pane{border-top: 2px solid #3368b8;}"
"QTabBar::tab:hover{font: 75 10pt;color : #000000; background-color: #ebffff;}"
"QTabBar::tab:selected{font: 75 10pt;color:#ffffff;background-color: #3368b8;}"
"QTabBar{font: 75 10pt;color:#ffffff;background-color: #3368b8;}"
);
setCentralWidget(centralTabWidget);
QWidget* firstTabWidget = new QTabWidget(centralTabWidget);
centralTabWidget->insertTab(0,firstTabWidget,QStringLiteral( "测试宽度值"));