Qt工程文件分离、Qtimer定时器、Qt Creator 常用快捷键

Qt 工程文件分离

不含 UI 的文件分离

以堆栈窗体的代码为例。
在这里插入图片描述

firstpagewidget.h
#ifndef FIRSTPAGEWIDGET_H
#define FIRSTPAGEWIDGET_H#include <QtWidgets>				// 记得修改class firstPageWidget : public QWidget
{Q_OBJECT
public:explicit firstPageWidget(QWidget *parent = 0);signals:public slots:};#endif // FIRSTPAGEWIDGET_H
firstpagewidget.cpp
#include "firstpagewidget.h"firstPageWidget::firstPageWidget(QWidget *parent) :QWidget(parent)
{QWidget *firstPageWidget = new QWidget;QPushButton *btn1 = new QPushButton("Page 1", this);		// 记得改 this// button 在后期可能实现较多的逻辑,需要将其分离出来
}
widget.cpp
#include "widget.h"
#include "firstpagewidget.h"Widget::Widget(QWidget *parent): QWidget(parent)
{firstPageWidget *first = new firstPageWidget;QWidget *secondPageWidget = new QWidget;QWidget *thirdPageWidget = new QWidget;// 去新分离出的文件中定义 buttonQPushButton *btn2 = new QPushButton("Page 2", secondPageWidget);QPushButton *btn3 = new QPushButton("Page 3", thirdPageWidget);QStackedWidget *stackedWidget = new QStackedWidget;stackedWidget->addWidget(first);stackedWidget->addWidget(secondPageWidget);stackedWidget->addWidget(thirdPageWidget);//    QListWidget *listWidget = new QListWidget;
//    QListWidgetItem *firstItem = new QListWidgetItem(tr("First"), listWidget);
//    QListWidgetItem *secondItem = new QListWidgetItem(tr("Sencond"), listWidget);
//    QListWidgetItem *thirdItem = new QListWidgetItem(tr("Third"), listWidget);//    listWidget->insertItem(0, firstItem);
//    listWidget->insertItem(1, secondItem);
//    listWidget->insertItem(2, thirdItem);QListWidget *listWidget = new QListWidget;listWidget->addItem(tr("First"));listWidget->addItem(tr("Second"));listWidget->addItem(tr("Third"));QHBoxLayout *layout = new QHBoxLayout;layout->addWidget(listWidget, 1);layout->addWidget(stackedWidget, 3);this->setLayout(layout);connect(listWidget, SIGNAL(currentRowChanged(int)), \stackedWidget, SLOT(setCurrentIndex(int)));this->resize(960, 600);}Widget::~Widget()
{
}

带 UI 的文件分离

以 UI 实现堆栈窗体为例。
在这里插入图片描述

form.cpp
#include "form.h"
#include "ui_form.h"Form::Form(QWidget *parent) :QWidget(parent),ui(new Ui::Form)
{ui->setupUi(this);ui->pushButton->setText("Page 1");		// 先往 UI界面 拖入一个 pushButton,然后写此行// 其他逻辑
}Form::~Form()
{delete ui;
}
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QtWidgets>
#include "form.h"
//#include "form2.h"
//#include "form3.h"namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;Form form1;
//    Form2 form2;
//    Form3 form3;
};#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);f1 = new Form;
//    f2 = new Form2;
//    f3 = new Form3;ui->stackedWidget->addWidget(f1);QObject::connect(ui->listWidget, SIGNAL(currentRowChanged(int)), \ui->stackedWidget, SLOT(setCurrentIndex(int)));
}Widget::~Widget()
{delete ui;
}

QTimer 定时器

QTimer(QObject * parent = 0);  // parent 可以传界面的指针,但是没有父子窗体关系,仅用作内存管理// 建议参数填上 this,否则需要在析构函数中 deletevoid	start(int msec);  		// 参数为 ms,定时一次,永久生效
void	stop();  				// 停止定时器Signals:
void	timeout();// 一次定时
void QTimer::singleShot(int msec, const QObject *receiver, const char *member) [static]receiver:接收者member:执行函数		1s = 1000ms 		1ms = 1000μs  		1μs = 1000ns

在这里插入图片描述

💡

做一个时间显示 Label / LCDNumber,增加“开始”和“结束”按钮,点击开始,每 1s 记录一次时间。

QDateTime

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

QDateTime time = QDateTime::currentDateTime();				// 获取系统此刻的日期和时间
QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd");	// 将系统时间转换成字符串类型// QTime 同理。

QTime

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

QLCDNumber

在这里插入图片描述
在这里插入图片描述

实现

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QtWidgets>namespace Ui {
class Widget;
}class Widget : public QWidget
{Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;QTimer *timer;public slots:void mySlot();void recvSlot(QString);signals:void sendSignal(QString);private slots:void on_startBtn_clicked();			// 自动生成的槽void on_stopBtn_clicked();			// 自动生成的槽
};#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);timer = new QTimer(this);			// 必须填上 this,否则需要在析构函数中 deleteconnect(timer, SIGNAL(timeout()), this, SLOT(mySlot()));connect(this, SIGNAL(sendSignal(QString)), this, SLOT(recvSlot(QString)));
}void Widget::mySlot()
{QTime time = QTime::currentTime();QString str = time.toString("hh:mm:ss");//    QDateTime time = QDateTime::currentDateTime();    
//	  QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd"); emit sendSignal(str);
}void Widget::recvSlot(QString str)
{ui->lcdNumber->setDigitCount(12);		// 设置显示的数字位数ui->lcdNumber->display(str);
}Widget::~Widget()
{delete ui;
}void Widget::on_startBtn_clicked()			// 自动生成的槽函数
{timer->start(1000);			// 自加内容
}void Widget::on_stopBtn_clicked()			// 自动生成的槽函数
{timer->stop();				// 自加内容
}

在这里插入图片描述

Qt Creator 常用快捷键

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/209154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI隆重软件,AI原创文章隆重软件

随着信息量的急剧增加&#xff0c;许多写作者、网站管理员和内容创作者们纷纷感受到了文章降重的压力。原始文本的降重&#xff0c;需要保留关键信息的同时避免重复&#xff0c;这是一项既繁琐又耗时的任务。 改写软件的批量降重功能 147SEO改写软件在降重领域的卓越表现主要体…

计算机概论第十三章

Answers are in blue. Computer Science Illuminated, Seventh Edition Nell Dale, PhD; John Lewis, PhD CHAPTER 13 EXERCISES AND ANSWERS For Exercises 1–5, match the type of ambiguity with an example. Lexical词汇歧义Referential指代歧义Syntactic句法 “Stand up…

docker资源限制

目录 系统压力测试工具stress 1. cpu资源限制 1.1 限制CPU Share 1.2 限制CPU 核数 1.3 CPU 绑定 2. mem资源限制 3. 限制IO 二、端口转发 三、容器卷 四、部署centos7容器应用 五、docker数据存储位置 六、docker网络 容器网络分类 在使用 docker 运行容器时&…

【TiDB理论知识04】TiKV-分布式事务与MVCC

分布式事务 下面一个事务 里面有两个更新,分别将id1的Tom改为Jack,将id2的zhangsan 改为 lisi。在MySQL中这个事务很普通&#xff0c;但是在分布式数据库TiDB 中的会遇到什么问题呢&#xff1f; begin; (1,Tom) --> (1,Jack) (2,zhangsan) --> (2,lisi) commit; 比如(…

玩转大数据11:数据可视化与交互式分析

1. 引言 数据可视化和交互式分析是大数据领域中的重要方面。随着大数据时代的到来&#xff0c;数据量越来越大&#xff0c;数据类型越来越复杂&#xff0c;传统的数据处理和分析方法已经无法满足我们的需求。数据可视化可以将复杂的数据以简单、直观的方式呈现出来&#xff0c…

JVM 性能调优及监控诊断工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解

目录 一. 前言 二. jps&#xff08;Java Virtual Machine Process Status Tool&#xff09; 三. jstack 四. jmap&#xff08;Memory Map&#xff09;和 jhat&#xff08;Java Heap Analysis Tool&#xff09; 五. jstat&#xff08;JVM统计监测工具&#xff09; 六. hpro…

EMC VNX Unified存储NAS控制台常见问题解答

每次遇到VNX unfied的case就是一坨屎&#xff0c;很多客户根本不理解什么是Unifed storage&#xff0c;EMC的Clariion中端存储系统还分Block和Unified的产品。这个blog就是简单介绍一下VNX Unified存储的管理控制台&#xff0c;英文是 control station, 简称为CS。 顾名思义&a…

苍穹影视V20七彩视界/免授权开源源码/热门影视APP源码带后台+带安装教程

源码简介&#xff1a; 苍穹影视V20七彩视界&#xff0c;它是免授权开源源码&#xff0c;作为影视APP源码&#xff0c;它带后台&#xff0c;也带安装教程。 苍穹影视 V20 全新后台七彩视界免受权开源源码此版本为天穹公益版开源无解密安装教程 全新后台很是都雅&#xff0c;源码…

pair的用法,详解

1.pair是什么 pair名为二元组&#xff0c;顾名思义&#xff0c;就是储存二元组的。 2.pair的初始化 pair<第一个值类型, 第二个值类型> pr 第一个值类型&#xff1a;要储存的第一个值的数据类型第二个值类型&#xff1a;要储存的第二个值的数据类型pair<int, int&g…

伦茨科技宣布ST17H6x芯片已通过Apple Find My「查找」认证

深圳市伦茨科技有限公司&#xff08;以下简称“伦茨科技”&#xff09;发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家&#xff0c;该平台提供可通过Apple Find My认证的Apple查找&#xff08;Find My&#xff09;功能集成解决方案。…

年底不同外贸客户催单模板分享

最近工厂又爆单了&#xff0c;有些小的订单都没时间管了。时间过得很快&#xff0c;眼看就剩一个多月就春节&#xff0c;大家可以抓住这段时间催一下还有机会成单的客户&#xff0c;好为来年做准备&#xff01; 1.老客户模板 Dear xxx, Greetings. Do you have any new inqu…

FIR IP 学习记录

工具&#xff1a; matlab filterdesigner 工具箱 vivado FIR IP核 实现&#xff1a; 1.matlab设计与测试 先用matlab设计目标滤波器&#xff0c;得到滤波器的抽头系数。 如图&#xff0c;根据需求选择 低通/高通/带通/带阻。 由于vivado用的是FIR IP核&#xff0c;所以设…

什么是HTML?

✨前言✨ 本文主要介绍什么是HTML以及W3C &#x1f352;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f352;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 文章目录 什么是HTMLHTML发展史HTML的特点什么…

Linux权限理解(1)

目录 1.shell命令以及运行原理 2.Linux权限的概念 Linux权限管理 01.文件访问者的分类&#xff08;人&#xff09; 02.文件类型和访问权限&#xff08;事物属性&#xff09; a) 文件类型 b)基本权限 03.文件权限值的表示方法 04.文件访问权限的相关设置方法 a)chmod …

FPGA设计时序分析概念之Timing Arc

目录 1.1 Timing Arc概念 1.2 Timing Arcs的类型 1.3 Timing Sense(时序感知) 1.4 参考资料 1.1 Timing Arc概念 在时序工具对设计进行时序分析时&#xff0c;经常会看到一个概念Timing Arch(时序弧)。Timing Arc是一个信号一个单元Cell的输入引脚Pin到该单元输出引脚Outpu…

Redis主从架构中从节点的master_link_status:down

项目场景&#xff1a; 在搭建Redis的主从架构时&#xff0c;查看Redis的从节点状态时发现其连接的主节点的状态为down&#xff0c;并且查看主节点的状态时发现连接的从节点数量为0。 问题描述 原因分析&#xff1a; 可能在主节点中配置了密码&#xff0c;即requirepass。 解决…

算法:常见的链表算法

文章目录 链表算法两数相加两两交换链表中的节点重排链表合并K个升序链表K个一组翻转链表 总结 本篇总结常见的链表算法题和看他人题解所得到的一些收获 链表算法 关于链表的算法&#xff1a; 画图&#xff1a;画图可以解决绝大部分的数据结构的问题&#xff0c;任何的算法题…

视觉学习笔记12——百度飞浆框架的PaddleOCR 安装、标注、训练以及测试

系列文章目录 虚拟环境部署 参考博客1 参考博客2 参考博客3 参考博客4 文章目录 系列文章目录一、简单介绍1.OCR介绍2.PaddleOCR介绍 二、安装1.anaconda基础环境1&#xff09;anaconda的基本操作2&#xff09;搭建飞浆的基础环境 2.安装paddlepaddle-gpu版本1&#xff09;安装…

语言模型GPT与HuggingFace应用

受到计算机视觉领域采用ImageNet对模型进行一次预训练&#xff0c;使得模型可以通过海量图像充分学习如何提取特征&#xff0c;然后再根据任务目标进行模型微调的范式影响&#xff0c;自然语言处理领域基于预训练语言模型的方法也逐渐成为主流。以ELMo为代表的动态词向量模型开…

在线教育小程序正在成为教育行业的新生力量

教育数字化转型是目前教育领域的一个热门话题&#xff0c;那么到底什么是教育数字化转型&#xff1f;如何做好教育数字化转型&#xff1f; 教育数字化转型是利用信息技术和数字工具改变和优化教育的过程。主要特征包括技术整合、在线学习、个性化学习、大数据分析、云计算、虚拟…