如果你希望在 Qt 窗口中两个子窗口之间没有任何缝隙,可以将它们的大小调整得恰到好处,同时使用 QSpacerItem
来填充整个布局。下面是更新后的代码示例,确保子窗口之间没有边距或缝隙:
#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QFrame>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建主窗口
QWidget mainWindow;
mainWindow.setWindowTitle("显示窗口");
mainWindow.resize(700, 1500); // 设置主窗口大小
// 创建水平布局
QHBoxLayout *layout = new QHBoxLayout(&mainWindow);
layout->setContentsMargins(0, 0, 0, 0); // 设置布局边距为零
layout->setSpacing(0); // 设置间距为零
// 创建左边子窗口
QFrame *leftFrame = new QFrame();
leftFrame->setFixedWidth(200); // 左侧固定宽度
leftFrame->setStyleSheet("background-color: green;");
// 创建右边子窗口
QFrame *rightFrame = new QFrame();
rightFrame->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // 右侧扩展填充剩余空间
rightFrame->setStyleSheet("background-color: black;");
// 将子窗口添加到布局中
layout->addWidget(leftFrame);
layout->addWidget(rightFrame);
// 显示主窗口
mainWindow.show();
return app.exec();
}
更新说明:
- 使用
layout->setContentsMargins(0, 0, 0, 0);
来去掉整个布局的外部边距。 - 使用
layout->setSpacing(0);
来去掉各个控件之间的间隔。 - 对于右侧子窗口,设置了
sizePolicy
为扩展,以便它占据所有可用空间。
运行此代码后,你将看到一个紧凑的界面,其中左侧的绿色和右侧的黑色区域完全贴合,没有缝隙。
内容由零声教学AI助手提供,问题来源于学员提问