c++ - 3 个面板的 Qt 布局,全部垂直扩展以填充

标签 c++ qt pyqt pyside

我是桌面 GUI 开发的新手。

我正在尝试获得一个包含 3 个平行垂直面板的框架,所有面板都垂直扩展以填充窗口。

我希望前两个面板不是灵活的,而是具有固定大小。

例如:

 Fixed W.
|========|
############################ 
#    #    #                # ^
#Fix.#Fix.#                # |
#|--|#|--|# <--Flexible--> # Flexible vertically all 3 panels.
#    #    #                # |
#    #    #                # v
############################

如何获取此布局?我试过 Grid、Vertical、Horizo​​ntal,但我觉得我把它弄得像意大利面条一样,而且很困惑。

谢谢。

最佳答案

你需要一个

QHBoxLayout

您只需为固定小部件(在左侧)设置固定宽度。

这是一个完整的 C++ 示例:

#include <QApplication>
#include <QtGui>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QFrame* w1 = new QFrame;
    w1->setFixedWidth(100);
    w1->setStyleSheet("background-color: red");

    QFrame* w2 = new QFrame;
    w2->setFixedWidth(100);
    w2->setStyleSheet("background-color: blue");

    QFrame* w3 = new QFrame;
    w3->setStyleSheet("background-color: green");
    w3->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    QHBoxLayout* layout = new QHBoxLayout;

    layout->addWidget(w1);
    layout->addWidget(w2);
    layout->addWidget(w3);

    QWidget* app = new QWidget;
    app->setLayout(layout);
    app->show();
    return a.exec();
}

和截图:

enter image description here

关于c++ - 3 个面板的 Qt 布局,全部垂直扩展以填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13998090/

相关文章:

c++ - 添加时选择 QListWidgetItem

c++ - 在不丢失 alpha 值的情况下将 QColor 转换为 QString

c++ - 序列化形状以保存并重新绘制

python - 为 QListWidget 中的特定项目设置不同的颜色

python - QTreeView 更改列名称

c++ - 为什么程序分配的内存不会减少?

c++ - "Mark Directory as"除了 CLion 2020.3 中的 python 命名空间包,什么都不能

python - 如何断言 PyQt5 信号的身份?

c# - System.AccessViolationException,同时通过实现 ICustomMarshaler 从 native 编码(marshal)为托管

c# - 命名管道消息无法通过 (Windows/C++)