QMainWindow:根据屏幕大小设置小部件大小

时间:2015-04-14 14:30:12

标签: qt qt5 qtgui

我有一个继承自QMainWindow的Qt类。该类的构造函数创建两个小部件,这些小部件将添加到水平布局对象中,如下所示:

MyWindow::MyWindow()
{
    resize(QDesktopWidget().availableGeometry(this).size());
    display = new MyWidget(this);
    display->setSizePolicy(QSizePolicy::Expanding, 
                           QSizePolicy::Expanding);

    current = new MyWidget(this);
    current->setSizePolicy(QSizePolicy::Expanding, 
                           QSizePolicy::Expanding);

    QHBoxLayout *layout = new QHBoxLayout();
    layout->addWidget(display);
    layout->addWidget(current);

    QFrame* frame = new QFrame();
    frame->setFrameShape(QFrame::StyledPanel);
    frame->setLayout(layout);
    setCentralWidget(frame);

    show();
}

这显示了彼此侧面的小部件侧。但是,我想要做的是让其中一个小部件占据水平空间的30%,而另一个小部件占据另外70%的水平空间。如果调整主窗口大小但保持这些比率,我也希望小部件能够扩展或收缩。

1 个答案:

答案 0 :(得分:1)

将小部件放入布局时,您可以指定其拉伸系数:

QHBoxLayout *layout = new QHBoxLayout();
layout->addWidget(display, 3);
layout->addWidget(current, 7);

http://doc.qt.io/qt-5/qboxlayout.html#addWidget