我想要反转Qt Designer中的标签。
那就是我想要改变QTabWidget标准中的标签:
/ - TAB1 - \ / - TAB2 - \ ________________
到
\ - TAB1 - / \ - TAB2 - / ************************
该标签进入内容的位置,而不是内容。
我有一个简单的方法吗?也许是设置Qtabwidget或某种方式编辑CSS来实现这一目标?
由于
答案 0 :(得分:1)
这个任务不可能用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
完整示例可在以下link中找到。