6

QToolButtonがあります。ラベルのようなボタンが必要なため、 QPushButtonの代わりに使用しています。スタイルシートの境界線とパディングを に設定した後でも、 QPushButtonが大きすぎますNone-0px

このQToolButtonに、右揃えのテキスト (アイコンなし) を含めたいと思います。

ただし、機能しtext-align: right;ていません。.setAlignment(Qt.AlignRight)も機能していません。

テキストを右揃えにするにはどうすればよいですか?

ありがとうございました。

4

2 に答える 2

4

QStyle をサブクラス化し、QStyle::drawControl() を再実装して、テキストを右揃えにすることができます。ファイル qt/src/gui/styles/qcommonstyle.cpp をチェックして、それがどのように行われたかを確認してください。(申し訳ありませんが、Python ではなく C++ を使用しています)

case CE_ToolButtonLabel:
    if (const QStyleOptionToolButton *toolbutton
            = qstyleoption_cast<const QStyleOptionToolButton *>(opt)) {
        QRect rect = toolbutton->rect;
        int shiftX = 0;
        int shiftY = 0;
        if (toolbutton->state & (State_Sunken | State_On)) {
            shiftX = proxy()->pixelMetric(PM_ButtonShiftHorizontal, toolbutton, widget);
            shiftY = proxy()->pixelMetric(PM_ButtonShiftVertical, toolbutton, widget);
        }
        // Arrow type always overrules and is always shown
        bool hasArrow = toolbutton->features & QStyleOptionToolButton::Arrow;
        if (((!hasArrow && toolbutton->icon.isNull()) && !toolbutton->text.isEmpty())
            || toolbutton->toolButtonStyle == Qt::ToolButtonTextOnly) {
            int alignment = Qt::AlignCenter | Qt::TextShowMnemonic;
于 2013-08-06T08:59:14.833 に答える