c++ - Qt5 - 使用 QSizePolicy 调整 QSplitter 的大小
问题描述
我想创建一个包含 3 个部分的小部件:主窗口包含一个水平 QSplitter,其中包含一个垂直 QSplitter。但是我没有走那么远,因为第一个拆分器没有在窗口中最大化。我阅读了文档,但仍然无法弄清楚。
MainWindow::MainWindow() {
setWindowTitle(ProgramVars::getName() + " - " + ProgramVars::getVersion());
setWindowIcon(ProgramVars::getIcon());
content = new QSplitter(this);
content->setLineWidth(2);
content->setMidLineWidth(2);
QPixmap pixmap;
pixmap.load("../res/icon.png"); //just for testing
l1 = new QLabel;
l2 = new QLabel;
l1->setPixmap(pixmap);
l2->setPixmap(pixmap);
content->addWidget(l1);
content->addWidget(l2);
content->setAutoFillBackground(true);
QPalette palette(QPalette::Background, Qt::red); //making size visible
content->setPalette(palette);
content->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
content->setMaximumSize(size());
}
(我认为添加完整的源文件不是必需的,但如果您愿意,我会添加它们。)
解决方案
我刚刚找到了我的问题的答案:
第一
我必须将子小部件添加到 QMainWindow 提供的布局中,而不是直接作为孩子。
MainWindow::MainWindow() {
content = new QSplitter();
content->setLineWidth(2);
content->setMidLineWidth(2);
**setCentralWidget(content);**
content->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
}
我缩短了代码,因为其余的并不重要。
第二
这篇文章回答了我的第二个。
推荐阅读
- r - 比较两个 ffdf
- object - Blender:对象在变换时消失(抓取,缩放,旋转......)
- linq - EFCore 2.2 GroupBy Sum 和 DateDiff
- angular - 如何在角度 highcharts 模块中修复“类型中缺少属性'类型'但类型'SeriesXrangeOptions'中需要”
- c# - ReactiveUI 的 IViewFor 的目的是什么
(及其实现类型)在 WPF 中? - javascript - 带有引导程序 vue 的可拖动表
- python - 无法使用 pip 安装 toripchanger
- sql - 将 Unix 时间转换为 DateTime 103
- python - Python:内容
- 在 BeautifulSoup 的列表中
- android - 如果任何其他应用程序尝试连接需要断开连接,我们如何实现 BLE 外围设备仅连接到我们的 Android 应用程序(中央)