1

QVBoxLayout を含む QWidget があり、そのレイアウトには QLabel と QToolButtons が含まれています。私の問題は、 QLabel がすべてのスペースを占めることです。私が見つけた唯一の解決策は、 maximumHeight を QLabel に設定することですが、そうすると Qt::AlignTop が機能しなくなります。

main.cpp:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget window_main;

    QWidget *widget_steps = new QWidget(&window_main);
    widget_steps->setFixedWidth(75);
    widget_steps->move(QPoint(0, 0));
    widget_steps->setStyleSheet("background-color: red;");

    QVBoxLayout *layout_steps = new QVBoxLayout(widget_steps);
    layout_steps->setContentsMargins(0, 0, 0, 0);
    layout_steps->setSpacing(0);

    QLabel *label_steps_start = new QLabel("steps:");
    label_steps_start->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
    label_steps_start->setStyleSheet("background-color: blue;");
    layout_steps->addWidget(label_steps_start);

    QToolButton *tbutton_step1 = new QToolButton();
    layout_steps->addWidget(tbutton_step1);

    QToolButton *tbutton_step2 = new QToolButton();
    layout_steps->addWidget(tbutton_step2);

    QToolButton *tbutton_step3 = new QToolButton();
    layout_steps->addWidget(tbutton_step3);


    window_main.showMaximized();

    return a.exec();
}

ここでは、QLable が占めるスペース (青いスペース) を示す図を示します。 QLabel_space

したがって、QLable が必要とするスペースを最小限に抑えるのを手伝ってください :)

4

2 に答える 2