![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT开发专栏
QT开发记录
Briant_ccj
专注于物联网 人脸识别 人工智能
展开
-
【QT学习笔记】QT的事件机制
在我们做UI界面时,经常会重写mousePressEvent,wheelEvent等函数,根据不同情况要对事件event进行特殊处理。当执行event->accept()时,意味着这次的事件已经被“我”接受啦,只有我使用。当执行event->ignore()时,意味着这次的事件“我”不要接受他,函数执行完event给我的父窗口,他会需要的。差别也就是要不要传递给父窗口,accept不传递,ignore传递,注意是父窗口,不是基类。初学Qt的小坑记录(5)——事件的accept(原创 2022-05-28 21:49:23 · 449 阅读 · 0 评论 -
【QT学习笔记】QThread的使用
QT中通过创建一个继承于QThread的类,实现其中的虚函数void run()的方式来使用线程。使用方式1.创建一个继承于QThread的类2.定义一个bool类型的变量,和StopThread函数,让外部能够控制线程的结束2.重写虚函数void run()3.调用start启动4.在关闭对话框的时候(closeEvent事件)关闭并等待线程的退出#include <QThread>class MyThread : public QThread{ Q原创 2022-05-21 17:01:17 · 344 阅读 · 0 评论 -
【Qt学习笔记】对QPainter中setWindow和setViewport的理解
理解了一些概念也就理解了这两个函数看的见的物理坐标即创建的Widget中的坐标,左上角为原点(0,0),宽和高就是Widget的宽和高看不见的逻辑坐标QPainter是在看不见的逻辑坐标中进行绘图的在不调用setWindow和setViewport的时候物理坐标和逻辑坐标是一样的setWindow将逻辑坐标的哪一部分区域拿出来映射到物理坐标,其中的参数矩形区域是对于逻辑坐标来说的...原创 2022-05-14 20:42:15 · 1013 阅读 · 0 评论 -
【Qt学习笔记】Model/View设计模式
什么是Model/View设计模式,该模式解决了什么问题一个好的有图形界面的应用程序的软件架构应该是显示和数据是分离的,显示部分不应该去处理数据,数据处理部分更不应该去做显示相关的事情。Qt提供的Model/View设计模式就能很好完成改任务。其实更好的应该叫做Data/Model/View设计模式。这样能看出这个结构就是Model在Data和View之间提供了一个桥梁,来将数据和显示分离开。如何显示Qt提供的这个模式使用起来非常方便,Data部分的代码不需要开发者自己实现,View中的原创 2022-05-07 16:44:39 · 1185 阅读 · 0 评论 -
【QT学习笔记】QAction和QToolButton的使用
QAction可以在QT Creator中Action Editor中创建QAction创建之后的两个使用方式放到tool bar中 跟QToolButton绑定(ui->tBtnListIni->setDefaultAction(ui->actListIni))tool bar中的QAtion实现下拉菜单的功能 QMenu *menu = new QMenu(this); menu->addAction(ui->actSelAl...原创 2022-04-24 16:54:08 · 2251 阅读 · 0 评论 -
【QT学习笔记】右键菜单功能的实现
右键菜单功能是QWidget层面的功能,那么所有的控件都可以实现右键菜单的功能右键菜单步骤设置右键菜单属性为自定义菜单定义菜单中的动作实现action 点击后的槽函数实现菜单槽函数,在槽函数的实现中定义右键菜单的内容void ItemWidgets::on_listWidget_customContextMenuRequested(const QPoint &pos){ QMenu *menu = new QMenu(this); ...原创 2022-04-24 16:15:46 · 1064 阅读 · 0 评论 -
【QT学习笔记】connect的使用
connect有主要有两种形式方式一connect(*SenderObj, &SenderClass::signalMethod, *ReceiveObj, &ReceiveClass::slotMethod)比如connect(ui->pushButton, &QPushButton::clicked,this, &MainWindow::slot_clicked);这种方式不必写参数,那么缺点就是不能以参数区分信号方式二connect(*原创 2022-04-23 15:42:14 · 786 阅读 · 0 评论 -
【QT学习笔记】QT Creator的编译系统
使用QT Creator新建一个窗口类的项目时,会自动生成四个文件main.cpp widget.h widget.cpp widget.ui其中widget.h和widget.cpp的内容是#ifndef WIDGET_H#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public原创 2022-04-17 21:50:38 · 979 阅读 · 0 评论 -
【QT问题解决】运行时出现QMetaObject::connectSlotsByName: No matching signal for XXX
在使用QTimer的时候定义了一个槽函数void on_timer_timeout(),然后运行的时候就出现了QMetaObject::connectSlotsByName: No matching signal for on_timer_timeout的信息。原因分析:QT信号和槽的关联方式分两种:1.显式连接自己手动写代码使用connect去连接信号和槽就是显式连接2.隐式连接隐式连接是QT的编译系统自动的连接信号和槽,我们自己并没有相应的code去连接信号和槽,此时编译系统会自原创 2022-04-17 17:35:43 · 2911 阅读 · 0 评论 -
【QT问题解决】在QT中使用中文
使用中文的时候遇到了编译出错或乱码的问题1.如果中文字符数是奇数,出现编译错误2. 如果中文字符数字是偶数个,一般能编译过,但是显示的时候乱码3.不论中文字符有多少个,编译能通过,但是显示的时候有乱码编译出错原因分析查看QT Creator使用的编译器,可以看到这里使用的编译器是MSVC编译出问题则说明编译器使用的编码方式和QT Creator的编辑器使用的编码方式不一致。QT Creator的编辑器默认使用UTF-8编码MSVC在编译时解读文件时会根据文件有没.原创 2022-04-17 17:13:12 · 2244 阅读 · 0 评论 -
【QT学习笔记】QSpinBox QDoubleSpinBox的使用
QSpinBox用于整数的显示与输入,一般显示为十进制,也可以显示二进制和十六进制的数,而且可以在显示框增加前缀和后缀QDoubleSpinBox用于浮点数的显示和输入,可以设置显示小数位数,也可以设置显示的前缀和后缀QSpinBox和QDoubleSpinBox的主要属性如下:以下属性都可以在属性编辑框中进行设置的。prefix //数字显示的前缀suffix //数字显示的后缀m...原创 2022-04-16 15:56:01 · 3131 阅读 · 0 评论 -
QString的使用
QString("%1,%2").arg(prop.name()).arg(propValue)原创 2022-04-09 22:06:54 · 450 阅读 · 0 评论 -
【QT学习笔记】QString和数字之间的转换
QString和数字之间有方便的接口可以使用可以将整数(十进制,二进制,十六进制),浮点数方便的转换成字符串可以将字符串方便的转换成整数(十进制,二进制,十六进制),浮点数QString转数值字符串转换成整数(十进制,二进制,十六进制)int toInt(bool *ok=nullptr, int base=10) const;参数二base用于指定字符串中的数字字符的进制字符串转浮点数float toFloat(bool *ok=nullptr) const;原创 2022-04-10 15:36:14 · 2770 阅读 · 0 评论 -
【QT学习笔记】元对象系统
QT的元对象系统基于以下三个组件:类:QObject,所有需要使用元对象系统的基类 宏:Q_OBJECT,在类的private部分声明 编译器:元对象编译器(moc),为每个QObject子对象自动生成必要的代码来实现元对象特性在程序编译的时候,会先使用元对象编译器读入C++的源文件,如果它发现了类里有Q_OBJECT声明,它就会创建一个C++源文件,为该类生成包含元对象实现的代码。基于这样的一个元对象系统,QT实现了对象间的通信机制信号和槽运行时获取类的名称const QM原创 2022-03-26 21:26:59 · 239 阅读 · 0 评论 -
【QT学习笔记】文件对话框
选择单个文件QFileDialog::getOpenFileName返回QString选择多个文件QFileDialog::getOpenFileNames返回QStringList QString fileName = QFileDialog::getOpenFileName(this, tr("文件对话框!"),原创 2022-03-18 22:18:42 · 339 阅读 · 0 评论 -
【QT学习笔记三】在VS中使用QT
如果希望使用VS开发带有QT的项目的时候虽然能够在VS中创建QT的界面,但是想使用QT Creator中方便的跳转到槽等功能的时候,我自己用了多种办法,试验下拉是没有办法使用的。但是这个功能确实能让我们少些很多代码,毕竟这些都是体力活,我们又希望使用,要怎么办呢?1.创建工程的时候QT Creator来创建项目,这样会生成一个*.pro的文件2.项目创建完成之后,使用VS导入*.pro文件即可这样就可以使用VS来编译调试运行项目需要使用跳转到槽的功能,就是用QT Creato原创 2022-03-17 21:07:28 · 4368 阅读 · 0 评论 -
【QT学习笔记二】响应键盘事件
在窗口的类定义中声明#include <QKeyEvent>void keyPressEvent(QKeyEvent *event);在窗口的实现中处理void glWidget::keyPressEvent(QKeyEvent * event){ switch (event->key()) { case Qt::Key_W: { } break; case Qt::原创 2022-03-13 13:35:06 · 853 阅读 · 0 评论 -
【QT学习笔记一】资源文件
如果需要将文件(比如图片,二进制文件等)编译进可执行文件内部,可使用QT提供的资源系统。在QT Creater中把文件放到资源文件中的步骤工程上点右键,选择“添加新文件...”之后按照引导,设置资源文件的名称和路径即可完成资源文件的创建Qt 学习之路 2(9):资源文件 - DevBean Tech World...原创 2022-01-12 13:31:45 · 346 阅读 · 0 评论