Qt 笔记5--Qt 拉伸窗体

2023-11-18

Qt 笔记5--Qt 拉伸窗体

 

正常情况下,Qt主窗体拉伸,但内部子窗体大小及位置并未发生该表,导致出现一部分空白区域,因此实际中为了美观需要实现其动态拉伸和调整效果。以下为笔者通过重新resizeEvent方法实现的一个简单拉伸案例,相应学习笔记贴在此处以便于后续参考。

 

1、功能介绍

以下3张图分别为(图1)原始界面,(图2)未做动态拉伸的界面,(图3)动态拉伸调整后的界面,我们希望从图1达到图3的效果,而非图2的效果。其方法为:重写resizeEventh方法,使主界面拉伸的时候就动态调整其中的子部件的大小或者位置。

图1

图2

图3

 

2、源码实现

该方法比较简单,代码主要包括三个源文件:widget.h、widget.cpp和main.cpp,具体源码如下:

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

protected:
    virtual void resizeEvent(QResizeEvent *event) override;

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::resizeEvent(QResizeEvent *event)
{
    QSize qsize = this->size();
    ui->widget_1->resize(qsize.width(),ui->widget_1->height());
    ui->widget_3->resize(qsize.width()-ui->widget_2->width(),ui->widget_1->height());
    ui->widget_4->resize(qsize.width(),qsize.height()-ui->widget_2->height()-ui->widget_2->height());
}

main.cpp

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}

 

3、说明

以上代码默认测试环境为Qt 5.7,测试系统为Windows7 x64

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt 笔记5--Qt 拉伸窗体 的相关文章

  • MAC 上的 QT/C++ - 未设置应用程序图标

    我正在努力解决的奇怪问题 在与我的 pro QT 项目文件相同的文件夹中 我有一个 Resources myIcon png 我试图将其设置为我构建的应用程序的图标 在 OSX 上运行 我阅读了文档 它建议在 pro 文件中添加 ICON
  • 如何在 C++ 和 QML 应用程序中使用 qrc?

    我在 Windows7 上用 c qnd Qt Creator QML 编写了 Qt Quick Desktop 应用程序 现在 我必须部署它 并且我需要隐藏 qml 文件和图像 意味着 将它们放入资源等中 我读到有一个很好的方法可以使用
  • 如何在 C++ 运行时更改 QML 对象的属性?

    我想在运行时更改 QML 对象的文本 我尝试如下 但文本仍然为空 这是后端类 class BackEnd public QObject Q OBJECT Q PROPERTY QString userFieldText READ userF
  • 程序意外完成 - QT Creator

    我正在尝试使用 QT Creator 使用 QT 框架开发 GUI 控制台应用程序 我使用的是Windows XP 我安装了QT 4 8 3和mingw 两者均已安装 没有任何错误 然后我安装了QT Creator QT 版本 路径中的 Q
  • QT/QML Android App,点击通知栏时打开应用程序

    我为 Android 应用程序制作了一个 QT 当我单击平板电脑中上面看到的按钮通知栏时 但是 如果单击通知 我的应用程序将打开 聚焦 不知道 并显示黑色窗口 简单来说怎么做呢 我的代码是 package org ays operation
  • Qt mouseReleaseEvent() 未触发?

    我有一个显示图片的库 我们称之为 PictureGLWidget 其中 class PictureGLWidget public QGLWidget 所以 PictureGLWidget 扩展了 QGLWidget 在PictureGlWi
  • QTcpSocket 有时不发送数据

    我有两个 QT 应用程序 一个应用程序可以被认为保存了大数据 它每秒向第二个应用程序发送大约 10 KB 的数据块 之前我尝试使用QUdpSocket来传输数据 但由于MTU限制在2 5K左右 并且需要自己分割和重新组合数据 所以我改用QT
  • 从布局中按名称获取小部件

    如果我想从 python Qt 的布局中获取特定的小部件 我应该如何进行 到目前为止我所做的 for i in range self ui horizontalLayout 14 count here it does fail name s
  • Qt 文件对话框默认后缀不起作用

    我将以下代码用于 QtQuick Dialogs 1 3 和 Qt 5 10 0 下 filedialog 的新属性 我使用 Qt Creator 5 10 默认套件构建它 import QtQuick 2 10 import QtQuic
  • 如何创建用于 QML 的通用对象模型?

    我想知道是否有任何宏或方法如何将 Qt 模型注册为 QObject 的属性 例如 我有AnimalModel http doc qt io qt 5 qtquick modelviewsdata cppmodels html qabstra
  • 重定向 python 交互式帮助()

    我正在为使用 Qt 的应用程序开发交互式 python shell 但是我似乎无法获得重定向的交互式帮助 我的 python 代码中有这个 class OutputCatcher def init self self data def wr
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • 更改 Qt OpenGL 窗口示例以使用 OpenGL 3.3

    我正在尝试更改 Qt OpenGL 示例以使用更现代的 opengl 版本 330 似乎合适 所以我做了 在 main cpp 上设置版本和配置文件 设置着色器版本 更改着色器以使用统一 它现在构建没有任何错误 但我只看到一个空白窗口 我错
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • Qt:测量事件处理时间

    我想测量我的应用程序中的哪些事件在主线程中需要很长时间才能执行 阻塞 GUI 或者至少是否有任何事件花费的时间超过 比如说 10 毫秒 显然 我对需要很长时间的任务使用线程和并发 但有时很难在其他线程中放入的内容和可以保留在 GUI 中的内
  • QTimer 一点也不准确?

    运行在 Windows7 64 位机器上 具有非常强大的 CPU 8 核 16 线程 我使用 QTimer 以 50Hz 触发函数调用 但我最终得到了 30Hz 函数调用本身肯定需要不到 10 毫秒才能完成 整个过程发生在一个单独的线程中
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • Qt - 获取互联网上托管的网页的源代码(HTML 代码)

    我想获取网页的源代码 HTML 例如StackOverflow的主页 这是我到目前为止编写的代码 QNetworkAccessManager manager QNetworkReply response manager get QNetwo
  • 静态变量中的 qt tr()

    我在 qt 中的翻译方面遇到问题 我的项目中的所有翻译都工作正常 但有一个翻译位于类的静态变量中 相应部分代码如下 头文件类似于这样 typedef struct int type QString problematicString inf
  • 是否可以在 Qt Creator 中将 Qt 样式表与升级的小部件一起使用?

    我正在尝试使用 Qt 样式表对标准小部件进行一些重大的重新设计 因此 在为不同的小部件手动完成大部分工作之后 objectName选择器 我决定以某种方式对类似的小部件进行分组 例如我有多个QFrames其作用类似于内部表单中的标题 我希望

随机推荐

  • 华为机试题-字符串最后一个单词的长度

    计算字符串最后一个单词的长度 单词以空格隔开 字符串长度小于5000 输入描述 输入一行 代表要计算的字符串 非空 长度小于5000 输出描述 输出一个整数 表示输入字符串最后一个单词的长度 示例1 输入 hello nowcoder 复制
  • web前端笔记:html5的标签

    在HTML4 01中 lt b gt lt i gt 是视觉要素 presentationl elements 分别表示无意义的加粗 无意义的斜体 表现样式为 font weight bolder 仅仅表示 这里应该用粗体显示 或者 这里应
  • 人脸重建环境配置时的坑

    ERROR Could not install packages due to an EnvironmentError Errno 28 No space left on device 由于是docker环境 所以把 tmp目录下的文件清理
  • 《Apache MINA 2.0 用户指南》第一章:入门

    最近准备将Apache MINA 2 0 用户指南英文文档翻译给大家 但是我偶然一次百度 发现 Defonds 这位大牛已经翻译大部分文档 原文链接 http mina apache org mina project userguide c
  • [C#] 汉字转拼音,支持多音字

    这份代码大概不是严格意义上正确的 但是一般场景用用应该没问题 而且支持dotnet core public static class Pinyin region 拼音对照表 private static string py 一 yi 丁 d
  • Unity 调用系统键盘

    using System Diagnostics using UnityEngine public class KeyboardEvent MonoBehaviour private Process keyboard
  • 第十章 内部类(下)

    第十章 内部类 下 随着后面所讲的内容越来越深入 所以可能理解得比较慢了 同时这里边的文字描述和示例也越来越多 希望大家能够坚持下去 慢慢看完 相信会有所收获 当然如果像我一样一个字一个字的敲一遍 印象会更深的 不骗你 因为有的东西开始真的
  • SpringCloud Alibaba 框架背后的故事

    前言 Spring Cloud Alibaba是Spring Cloud的一个子项目 它是由阿里巴巴公司推出的 用于构建基于微服务架构的分布式应用程序的开源框架 它与Spring Cloud的其他组件 如Netflix OSS 相结合 为开
  • sqli-labs Less5-6(布尔盲注)

    目录 前言 一 Less 5 1 布尔型的注入相比前四关 思路上最大的不同就是通过对错来获取对你来说有用的信息 1 先找到注入点 2 先判断数据库长度 3 判断数据库名中的每一个字母是什么 4 同样得方法测试表名 5 根据第四步得出表名 推
  • 人性的弱点

    附 本作品来自互联网 本人不做任何负责 内容版权归作者所有 人性的弱点 by Dale Carnegie雷吟译 目录 这本书对你有十二种功用 译者序 前言 原著序 如何从这本书里获得最大效益 第一篇 待人的基本技巧 第一章 如欲采蜜 勿蹴蜂
  • QT槽函数的使用

    QT槽函数的使用 例如 在头文件中设置槽函数 public slots void OnClickedButtonEnsure void OnClickedButtonExit cpp文件 构造函数中写入 connect ui pushBut
  • STM32F103ZET6【标准库函数开发】------配置定时器参数的几个常用函数

    TIM TimeBaseInitTypeDef 基本初始化 TIM OCInitTypeDef 比较输出初始化 TIM ICInitTypeDef 输入捕获初始化 TIM BDTRInitTypeDef 断路和死区初始化 TIM TimeB
  • pycharm创建的虚拟环境为什么用conda env list命令查询不到?

    问题描述 pycharm创建的虚拟环境为什么用conda env list命令查询不到 pycharm开发环境可以创建虚拟环境 目的是为隔绝其他环境种库带来的版本干扰 但是发现一个问题 无论是在windows终端 anaconda终端 Py
  • Java课程设计-学籍信息管理系统

    一 系统分析 学生的学籍信息是记录学生的重要信息档案 如何以电子文档形式记录下学生的学籍信息是每个学校必须做的事情 该学生学籍信息管理系统就是为了方便学校记录下每一个学生的基本信息 生成电子数据库 并且能够做到查询 更改 删除 浏览等功能操
  • Unity 移动端触摸屏操作

    Unity 触屏操作 当将Unity游戏运行到IOS或Android设备上时 桌面系统的鼠标左键可以自动变为手机屏幕上的触屏操作 但如多点触屏等操作却是无法利用鼠标操作进行的 Unity的Input类中不仅包含桌面系统的各种输入功能 也包含
  • 关于类和对象

    1 面向对象是一种技术的开发模式 但是最早的时候所使用的模式是面向过程 面向对象就是一种组件化的设计思想 面向过程 指的是针对于某一问题单独提出解决方案及代码开发 面向对象 以一种组件化的形势进行代码的设计 这样开发出来的代码有一个最大的好
  • Python Tkinter实现简单文本编辑器

    下面看看如何利用Tkinter实现一个文本编辑器 语言 python 运行效果 在 Python 代码中使用 Tkinter 的简单文本编辑器应用程序 这 使用Tkinter的简单文本编辑器应用程序 是编码在 python 程序设计语言 该
  • [编写高质量代码:改善java程序的151个建议]建议103 反射访问属性或方法时将Accessible设置为true...

    转载于 https www cnblogs com akingseu p 3506576 html
  • canvas小练习之鼠标粒子特效

  • Qt 笔记5--Qt 拉伸窗体

    Qt 笔记5 Qt 拉伸窗体 正常情况下 Qt主窗体拉伸 但内部子窗体大小及位置并未发生该表 导致出现一部分空白区域 因此实际中为了美观需要实现其动态拉伸和调整效果 以下为笔者通过重新resizeEvent方法实现的一个简单拉伸案例 相应学