【Qt】通过创建ui界面类成员变量的方式显示窗体

2023-05-16

【Qt】通过创建ui界面类成员变量的方式显示窗体

  • 1、背景
  • 2、实例
  • 3、验证

1、背景

将.ui 文件转化为.h 头文件参考:
【Qt】将QtDesigner生成的.ui文件转化为.h头文件

https://jn10010537.blog.csdn.net/article/details/128589666

其生成的.h头文件的显示,如果通过自定义class继承ui界面类的方式加载,
参考如下博客:
【Qt】通过继承ui界面类的方式加载.ui转化的.h头文件显示窗体

https://jn10010537.blog.csdn.net/article/details/128597580

本博客介绍第二种方式加载界面的.h头文件显示。
即在创建的class种创建ui界面类成员变量的方式。

本博客可以与以下博客进行对比,仅有jnWidget.h、jnWidget.cpp文件上的区别:
【Qt】加载.h文件显示窗体并添加交互逻辑

https://jn10010537.blog.csdn.net/article/details/128597580

2、实例

本博客涉及的Test.pro、ui_widget.h、main.cpp 请参考如下博客:
【Qt】通过继承ui界面类的方式加载.ui转化的.h头文件显示窗体
https://jn10010537.blog.csdn.net/article/details/128590376

修改后的jnWidget.h头文件内容如下:

//jnWidget.h
#ifndef JNWIDGET_H
#define JNWIDGET_H
#include <QWidget>
#include <QTimer>      //QTimer提供了定时器信号 和 单触发定时器。
#include "ui_widget.h" //导入ui界面头文件

// 采用创建ui界面类成员变量
class jnWidget :
        public QWidget
{
    Q_OBJECT
public: // 共有继承
    jnWidget(void);  // 构造函数
    ~jnWidget(void); // 析构函数,用于释放ui指针;

private slots:                      //槽函数
    void on_buttonStart_clicked();  // 开始按钮点击事件
    void on_buttonStop_clicked();   // 暂停按钮点击事件
    void onTimeOut();               // 定时器超时触发的槽函数

private: // 私有继承
    Ui::Widget *ui;  // 申明一个对象指针
    QTimer *myTimer ;//申明一个定时器对象指针
};
#endif // JNWIDGET_H

修改后的jnWidget.cpp源文件内容如下:

//jnWidget.cpp
#include "jnWidget.h"

// 构造函数
jnWidget::jnWidget(void)
{
    // 创建界面类的成员变量
    ui=new Ui::Widget();

    // 调用ui_widget.h界面类中的setupUi函数;
    // 其中参数this是父窗口的指针;
    // ui_widget.h文件产生子控件,需要给子控件指定父控件。
    ui->setupUi(this);

    myTimer=new QTimer(this);    //QTimer对象指针
    // 连接函数,将信号槽连接,即将信号timeout()与相应的槽函数相连
    connect(myTimer,SIGNAL(timeout()), this, SLOT(onTimeOut()));
}

jnWidget::~jnWidget(void)
{
    delete ui;
}

// "开始"按钮,启动定时器
void jnWidget::on_buttonStart_clicked()
{
    // 如果定时器未激活,则启动定时器,时间间隔是1000毫秒,
    // 即每隔1000毫秒,定时器myTimer自动触发timeout()
    if(false==myTimer->isActive())
    {
        myTimer->start(1000);
    }
}

// "暂停"按钮,停止定时器
void jnWidget::on_buttonStop_clicked()
{
    if(true==myTimer->isActive())
    {
        myTimer->stop();
    }
}

// 定时器触发的槽函数
void jnWidget::onTimeOut()
{
    static int i=0;
    i++;
    if (6<=i)
    {
         myTimer->stop();
         i=0;
    }
    ui->lcdNumber->display(i);
}

3、验证

编译运行,点击"开始"按钮 开始间隔1秒计数,当计数到6则归零暂停。
运行示例如下:
在这里插入图片描述

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

【Qt】通过创建ui界面类成员变量的方式显示窗体 的相关文章

随机推荐

  • Android:LeakCanary原理的简单理解和使用

    LeakCanary原理的简单理解和使用 1 背景2 LeakCanary2 1 LeakCanary 工作原理2 1 1 检测未被 GC 回收的对象2 1 2 转储堆2 1 3 分析堆2 1 4 对泄漏进行分类 2 2 LeakCanar
  • 【opencv-c++】cv::filter2D图像卷积操作

    opencv c cv filter2D图像卷积操作 1 背景 2 示例 1 背景 图像卷积的示意图如下 以上操作描述为 一个窗口区域在另外一个大的图像上移动 对每个窗口覆盖的区域都进行点乘得到的值作为中心像素点的输出值 窗口的移动顺序是是
  • 【opencv-c++】cv::GaussianBlur高斯滤波

    opencv c cv GaussianBlur高斯滤波 1 背景 2 示例 1 背景 高斯滤波首先要知道高斯函数 在图像采集的过程中 经常会有噪声出现 这些噪声满足高斯分布 我们简称为高斯噪声 对于高斯噪声 我们采用高斯滤波来去噪 高斯滤
  • 【opencv-c++】cv::bilateralFilter双边滤波

    opencv c cv bilateralFilter双边滤波 1 背景 2 示例 1 背景 由于高斯滤波去降噪 会较明显地模糊边缘 对于高频细节的保护效果并不明显 而双边滤波 Bilateral filter 是一种非线性的滤波方法 是结
  • 【深度学习】模型过拟合的原因以及解决办法

    深度学习 模型过拟合的原因以及解决办法 1 背景2 模型拟合3 简述原因4 欠拟合解决办法5 过拟合解决办法 1 背景 所谓模型过拟合现象 xff1a 在训练网络模型的时候 xff0c 会发现模型在训练集上表现很好 xff0c 但是在测试集
  • 【python中级】Pillow包在图像中绘制中文

    python中级 Pillow包在图像中绘制中文 1 背景 2 python图像中绘制中文 3 下载 1 背景 opencv python到目前为止 还不支持在图像中绘制中文 目标检测类项目一些场景需要在界面上绘制文字信息 而中文的显示需求
  • 【python中级】裁剪1、2寸电子照片

    python中级 裁剪1 2寸电子照片 1 背景 2 物理以及像素尺寸 3 补充说明 4 代码 1 背景 办理业务的时候会用到各种照片 特别是新工作入职 提交个人评审材料等 经常会遇到提供照片的情况 本博客简述如何快速制作1 2寸电子照片
  • 扫描型PDF进行反色打印

    对于扫描出来的图片型pdf xff0c 白花花的白底黑字很难受的 xff0c 怎么办呢 xff1f Acrobat 11 0 10 设置 打印机 为Adobe PDF 点击 34 高级 34 复合灰度 勾选 负片 34 缺点是反色打印后 x
  • 【python中级】强行kill杀掉进程

    python中级 强行kill杀掉进程 1 背景 2 代码 1 背景 如果程序涉及到主进程开子进程 并在一定条件下关闭子进程 大概率就是需要kill杀掉进程 2 代码 以下示例代码 kill杀掉进程 py 可在windows以及linux下
  • 【应用开发】关于串口和通信协议

    开发扩展 关于串口和通信协议 1 背景 2 串口 3 通信协议 1 背景 在做设备开发的时候 会遇到通信相关的开发 这时候经常会有串口 RS232 RS485 modbus modbus RTU等名词在交流中环绕 如果不去理解这些概念 就像
  • 【应用开发】关于ASCII码的进制对照表

    应用开发 关于ASCII码的8 10 16进制对应关系 1 背景 2 ASCII码对照表 3 说明 1 背景 ASCII American Standard Code for Information Interchange美国信息交换标准代
  • 【python初级】10进制与2进制8进制16进制的转换

    python初级 10进制与2进制8进制16进制的转换 背景代码 背景 在做串口通信的时候发送的字符串都是16进制编码的 本博客就介绍10进制与2 8 16进制的相互转换 10进制是我们生活中默认使用的最常用的数值表示方式 所谓十进制就是逢
  • 【Qt】通过共享内存实现应用程序的单实例检查

    Qt 通过共享内存实现应用程序的单实例检查 1 背景2 示例3 运行 1 背景 在开发Qt程序的时候 xff0c 我们往往不希望一台计算机上同一个程序被多次打开 xff0c 即一台计算机上有且只有一个应用程序实例存在 应用程序的单例化 xf
  • 【Qt】SetUnhandledExceptionFilter设置程序异常筛选器函数

    Qt SetUnhandledExceptionFilter设置程序异常筛选器函数 1 背景2 示例3 运行 1 背景 SetUnhandledExceptionFilter设置未处理的异常筛选器函数 xff08 或者叫设置异常捕获函数 异
  • 【Qt】自动查找Qt应用程序缺少的依赖库

    Qt 自动查找Qt应用程序缺少的依赖库 1 背景2 实例3 验证 1 背景 操作系统 xff1a windows10专业版 xff0c 如下图 xff1a Qt版本 xff1a qt opensource windows x86 msvc2
  • 【Qt】将QtDesigner生成的.ui文件转化为.h头文件

    Qt 将QtDesigner生成的 ui文件转化为 h头文件 1 背景2 实例3 附件 1 背景 操作系统 xff1a windows10专业版 Qt版本 xff1a qt opensource windows x86 msvc2013 6
  • 【Qt】通过继承ui界面类的方式加载.ui转化的.h头文件显示窗体

    Qt 通过继承ui界面类的方式加载 ui转化的 h头文件显示窗体 1 背景2 实例3 验证 1 背景 将 ui文件转化为 h头文件参考如下博客 xff1a Qt 将QtDesigner生成的 ui文件转化为 h头文件 https jn100
  • 【Qt】加载.h文件显示窗体并添加交互逻辑

    Qt 加载 h文件显示窗体并添加交互逻辑 1 背景2 实例3 验证 1 背景 加载 ui转化的 h头文件显示窗体 xff0c 以及Test pro ui widget h main cpp请参考如下博客 xff1a Qt 通过继承ui界面类
  • qingnse64.dll的问题(没有完全解决)

    文件夹1文件夹232位windows系统 system xff08 16位dll xff09 system32 32位dll 64位windows系统 syswow64 32位dll system32 64位dll 下面是一系列操作 xff
  • 【Qt】通过创建ui界面类成员变量的方式显示窗体

    Qt 通过创建ui界面类成员变量的方式显示窗体 1 背景2 实例3 验证 1 背景 将 ui 文件转化为 h 头文件参考 xff1a Qt 将QtDesigner生成的 ui文件转化为 h头文件 https jn10010537 blog