2
我正在使用以下標籤樣式水平繪製標籤欄文本 東標籤位置。只要我不爲 QTabBar ::選項卡設置任何保證金,文本就會畫好。在這種情況下,文本方向仍然是垂直的,偏移量很奇怪qt自定義qstyle qtabbar
class TabStyle : public QProxyStyle {
public:
explicit TabStyle(Qt::Orientation orientation, QStyle *baseStyle = 0)
: QProxyStyle(baseStyle), mOrientation(orientation) {}
void drawControl(ControlElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget) const {
if (element == CE_TabBarTabLabel) {
if (const QStyleOptionTab *tab =
qstyleoption_cast<const QStyleOptionTab *>(option)) {
QStyleOptionTab opt(*tab);
opt.shape = QTabBar::RoundedNorth;
return QProxyStyle::drawControl(element, &opt, painter, widget);
}
}
QProxyStyle::drawControl(element, option, painter, widget);
}
private:
const Qt::Orientation mOrientation;
};
class TabWidget : public QTabWidget {
public:
explicit TabWidget(QWidget *parent = 0,
Qt::Orientation orientation = Qt::Horizontal)
: QTabWidget(parent) {
QTabBar *tabBar = new QTabBar;
tabBar->setStyle(new TabStyle(orientation));
setTabBar(tabBar);
}
};
也許你可以添加圖片它應該看起來以及它看起來如何。 剛剛在黑暗中拍攝 - 怎麼樣使用setBaseStyle - 也許它會填補一些缺失的空白 – nayana