在QT的UI界面,让Widget可以跟随窗体大小而改变

这篇具有很好参考价值的文章主要介绍了在QT的UI界面,让Widget可以跟随窗体大小而改变。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

可以使用布局(Layout)机制让Widget(QWidget)随窗口一起缩放和移动。

Qt提供以下几种布局:

  • QHBoxLayout:将QWidget按照水平方向依次排列

  • QVBoxLayout:将QWidget按照垂直方向依次排列

  • QGridLayout:将QWidget按照行列划分为多个网格,根据网格位置排列

  • QFormLayout:将QWidget按照表单样式排列

使用布局的过程如下:

  1. 在Qt Designer的左侧对象列表中选择一个QWidget。

  2. 在右侧Widgets工具箱中选择一个布局。

  3. 双击布局,将它添加到QWidget上。

  4. 您可以在属性编辑器中进一步配置布局。

  5. 单击Qt Designer左上角的"窗口"菜单按钮,选择布局配置与在mainwindow.ui的宽高比例一致的宽高比例。

  6. 在QObject的"布局"属性处设置您选择的布局。

  7. 在构造函数中将widget添加到布局中。

  8. 在resize事件中重置布局大小。

以下是一个示例(在主窗口类MainWindow的构造函数中添加):

// 创建垂直布局
QVBoxLayout *layout = new QVBoxLayout();
QWidget *widget = new QWidget(this); // 在MainWindow中创建QWidget
widget->setLayout(layout);
​
// 创建按钮并添加到布局中
QPushButton *button1 = new QPushButton("Button1");
layout->addWidget(button1, 0, Qt::AlignTop);
​
QPushButton *button2 = new QPushButton("Button2");
layout->addWidget(button2, 0, Qt::AlignTop);
​
// 设置widget为MainWindow的中心窗口
this->setCentralWidget(widget);
​
// 添加resize事件监听器,当窗口缩放时更新布局大小
connect(this, SIGNAL(resized()), this, SLOT(onResized()));

下面是重置布局尺寸的代码:

void MainWindow::onResized()
{
    QWidget *widget = this->centralWidget();
    widget->resize(this->size());
}

这样,当您调整主窗口的大小时,QWidget和其中的按钮将跟随窗口一起缩放和移动。

希望这能够帮助您实现自适应QWidget大小和位置。

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,C++设计模式,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击费领取↓↓文章来源地址https://www.toymoban.com/news/detail-472014.html

到了这里,关于在QT的UI界面,让Widget可以跟随窗体大小而改变的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [Qt] 怎么将Widget调整为自适应大小?

    怎么将Widget调整为自适应大小? 要将Qt中的Widget调整为自适应大小,可以通过以下步骤实现: 为Widget设置自适应大小属性:将QWidget的sizePolicy设置为QSizePolicy::Expanding,可以使Widget在布局中自适应大小,如下所示:

    2024年02月01日
    浏览(32)
  • qt设置tableview单元大小跟随窗口变化

    设置效果过于离奇。 右侧为代码设置显示效果

    2024年02月11日
    浏览(28)
  • 常用界面设计组件 —— 窗体(QT)

    组件是GUI的基本元素,也称为UI控件。它接受来自底层平台的不同用户事件,如鼠标和键盘事件(以及其它事件)。所有组件都继承自QObject。QWidget是一个基本的组件,是所有UI组件的基类。它描述组件所需要的大多数属性,包括几何图形、颜色、键盘行为、工具提示等属性。

    2024年01月20日
    浏览(32)
  • QT基础:窗口大小改变事件演示

    这里演示的是, 控件大小随着窗口大小的改变而改变,做到控件大小适应窗口大小 , 适合初学者食用 这里的知识点是重载  resizeEvent(QResizeEvent * re) 函数,和重载 event(QEvent *ev) 函数 并画两个 QLabel 控件,等会代码中会用到 这里演示的代码全部写在 cpp 中,代码比较简单,初

    2024年02月11日
    浏览(55)
  • Qt程序设计-无边框可移动可拖拽调整大小窗体

    本文讲解Qt-无边框可移动可拖拽调整大小窗体。 通过鼠标的按下移动进行窗体的移动,拖拽调整窗体大小。 实现过程如下: 创建QWidget窗体,添加一个按钮控制窗体的关闭。

    2024年02月19日
    浏览(31)
  • VS+Qt设置窗口尺寸(二):窗体控件自适应窗口布局,自动调整大小

    VS版本:VS2019 QT版本:Qt5.12.3(msvc2017_64) 为了适配不同尺寸的显示屏,软件窗口需要调整大小,窗口内的控件尺寸也要适配窗口的大小。 本例重点讲述如何设置可调整尺寸的窗口及控件,实现窗口最大化和尺寸调节。 本例使用相对简单的按键和文本框来做示例,其他控件均可

    2023年04月23日
    浏览(64)
  • 2022-9-2 QT实现画板(能改变画笔大小,颜色)

    用QT实现画板功能,代码如下 首先是头文件部分代码 后面是mywnd.cpp部分的代码 最后是main.cpp部分的代码 下面是运行的内容    

    2024年02月13日
    浏览(37)
  • 【Qt UI相关】Qt设置窗体或控件的背景色透明

    在Qt中, QPalette (调色板)类用于设置窗体或控件的外观颜色。首先,需要在代码中包含 QPalette 或 QGui 头文件。 然后,在构造函数中添加以下代码来设置窗体的透明度: 这里,我们使用 QPalette::Background 来设置窗体的背景色,并将其设置为全透明。 效果: 窗口整体透明,但

    2024年02月05日
    浏览(38)
  • Element ui 改变el-transfer 穿梭框的大小

    修改el-transfer 左右两个穿梭框的高度和宽度,具体效果如下 正常大小的穿梭框 修改之后的,主要在style中加上如下样式即可 全部代码如下:

    2024年02月02日
    浏览(36)
  • QT5 QCustomPlot实现动态曲线绘制,可以左键放大、右键拖拽、跟随鼠标显示坐标

    下载文件,官网:https://www.qcustomplot.com/ 按照官网教程,qt添加帮助文件。 git或github下载:XCustomPlot 打开项目,将1下载的文件解压,添加qcustomplot.cpp/p。 在pro文件中添加QT += widgets printsupport、添加CONFIG += c++11. 引入头文件 #include “qcustomplot.h” 在ui中添加Widgeet,提升为QCustomP

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包