QT开发中文网

窗口边界不需要留缝隙

如果你希望在 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助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=13072

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?