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



我有一个继承自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%。我还希望小部件在调整主窗口大小但保持这些比例时扩展或收缩。

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

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

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

相关内容

  • 没有找到相关文章

最新更新