我正在寻找反转 Qt Designer 中的选项卡。
那就是我希望从 QTabWidget 标准中更改选项卡:
/--tab1--\/--tab2--\________________
至
\--tab1--/\--tab2--/************************
该选项卡进入内容的位置,而不是内容。
我有一个简单的方法可以做到这一点吗?也许是 Qtabwidget 的设置或某种方式来编辑 CSS 以实现这一点?
谢谢
我正在寻找反转 Qt Designer 中的选项卡。
那就是我希望从 QTabWidget 标准中更改选项卡:
/--tab1--\/--tab2--\________________
至
\--tab1--/\--tab2--/************************
该选项卡进入内容的位置,而不是内容。
我有一个简单的方法可以做到这一点吗?也许是 Qtabwidget 的设置或某种方式来编辑 CSS 以实现这一点?
谢谢
qss 无法完成该任务,您要做的是创建自己的 QTabBar 并覆盖 paintEvent () 方法,另一个问题是 setTabBar 方法是私有的,因此您必须创建一个继承自 QTabWidget 的类,如果你想在 Qt Designer 中使用那个类,你必须提升它:
#ifndef TABWIDGET_H
#define TABWIDGET_H
#include <QStyleOptionTab>
#include <QStylePainter>
#include <QTabWidget>
class TabBar: public QTabBar
{
protected:
void paintEvent(QPaintEvent */*event*/){
QStylePainter painter(this);
QStyleOptionTab opt;
for(int i = 0;i < count();i++)
{
initStyleOption(&opt,i);
QPoint c = tabRect(i).center();
painter.translate(c);
painter.rotate(-180);
painter.translate(-c);
painter.drawControl(QStyle::CE_TabBarTabShape, opt);
painter.resetTransform();
painter.drawControl(QStyle::CE_TabBarTabLabel,opt);
}
}
};
class TabWidget : public QTabWidget
{
public:
TabWidget(QWidget *parent=0):QTabWidget(parent){
setTabBar(new TabBar);
setTabShape(QTabWidget::Triangular);
}
};
#endif // TABWIDGET_H
完整的示例可以在以下链接中找到。