当前位置: 首页 > news >正文

QT6中三种设置控件及窗口大小的函数

一.概述

Qt中用于控制控件或窗口的大小的三个函数,但它们的作用范围和行为有重要区别。

二.代码示例

#include <QApplication>

#include <QMainWindow>

#include <QComboBox>

#include <QPushButton>

#include <QVBoxLayout>

#include <QWidget>

class ExampleWindow : public QMainWindow

{

public:

    ExampleWindow() {

        // 主窗口设置

        setWindowTitle("大小设置示例");

        resize(800, 600);

        

        // 中央部件

        QWidget *centralWidget = new QWidget(this);

        setCentralWidget(centralWidget);

        

        // 使用布局管理器

        QVBoxLayout *layout = new QVBoxLayout(centralWidget);

        

        // 1. 使用setGeometry的控件(不受布局管理)

        QComboBox *absoluteCombo = new QComboBox(this);

        absoluteCombo->setGeometry(50, 50, 200, 30);

        absoluteCombo->addItems({"选项1", "选项2", "选项3"});

        

        // 2. 使用resize的控件

        QComboBox *resizableCombo = new QComboBox(this);

        resizableCombo->addItems({"可调整大小的组合框"});

        resizableCombo->resize(300, 30);

        

        // 3. 使用setFixedSize的控件

        QComboBox *fixedCombo = new QComboBox(this);

        fixedCombo->addItems({"固定大小的组合框"});

        fixedCombo->setFixedSize(250, 35);

        

        // 添加到布局

        layout->addWidget(resizableCombo);

        layout->addWidget(fixedCombo);

        

        // 演示按钮

        QPushButton *demoBtn = new QPushButton("点击我改变大小", this);

        demoBtn->setGeometry(50, 100, 150, 30);

        connect(demoBtn, &QPushButton::clicked, this, [resizableCombo]() {

            // 动态改变大小

            static bool big = false;

            if (big) {

                resizableCombo->resize(200, 30);

            } else {

                resizableCombo->resize(400, 40);

            }

            big = !big;

        });

    }

};

int main(int argc, char *argv[])

{

    QApplication app(argc, argv);

    

    ExampleWindow window;

    window.show();

    

    return app.exec();

}

三.实践建议

1.setGeometry 适合:

固定大小;

简单的测试程序

自定义绘制部件

需要精确控制位置的场景

2.resize 适合:

运行时动态调整大小

响应窗口大小变化

3.setFixedSize 适合:

需要固定尺寸的控件(如图标、特定按钮)

防止用户调整重要控件大小

对话框的固定尺寸设置

4.注意

  在复杂的GUI应用中,推荐使用布局管理器来管理控件大小和位置,这样可以获得更好的跨平台兼容性和自适应能力。

http://www.dtcms.com/a/512676.html

相关文章:

  • 现在的网站前端用什么做综合返利商城网站建设
  • 河南省建设厅网网站首页没备案的网站收录
  • 织梦网站标题被改学校招生网络营销方案
  • 从0到1:如何用统计学“看透”不同睡眠PSG数据集的差异(域偏差分析实战)
  • 如何做淘宝优惠卷网站网站业务员怎么给客户做方案
  • 网站空间后台登录长沙seo服务
  • 灵敏度、稳定性、便携性三重突破——小吉BL-08plus为何成禽病防控新标配?
  • ubuntu 中使用 lftp 命令行工具传输文件
  • 推荐5款中文打字速度测试软件:无需下载即可使用
  • 网站建设基础服务wordpress polling
  • 长春 网站 设计公司wordpress 权限
  • 什么在线做动图的网站比较好织梦调用wordpress
  • 用 Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战
  • 开箱即用,15分钟极速部署:富唯智能精密仪器搬运机器人重塑工业自动化
  • 网站建设个人实训报告seo免费入门教程
  • 一个服务器下怎么做两个网站吗网站上海备案查询系统
  • STM32实现呼吸灯效果原理
  • 做营销网站要多少钱网站开发平台建设
  • html css js网页制作成品——HTML+CSS仙台有树电视剧网页设计(5页)附源码
  • 开发避坑指南(64):修复IllegalArgumentException:参数值类型与期望类型不匹配
  • 企业网站怎样做seo优化 应该如何做凡科建站官网怎么样
  • 【Java进阶】GC友好的编程方式
  • 甘肃肃第八建设集团网站福州市高速公路建设指挥部网站
  • 鸿蒙NEXT媒体开发全栈解析:从播放器到录屏的一站式解决方案
  • 郑州做网站排名dede网站首页
  • python 做网站很快吗广州自助网站推广建站
  • AD22 热风焊盘在哪设置
  • CMake进阶:生成器表达式
  • 从 Vite 到现代构建范式:一个关于“快”的技术哲学
  • 2025世界智能制造大会(南京)将带来那些新技术与新体验?