- 博客(132)
- 资源 (12)
- 收藏
- 关注
原创 Qt之信号槽机制
信号槽机制所谓信号槽,实际上跟观察者模式(公众号的发布-订阅)比较类似。信号槽的实现是借助“元对象编译器”Moc。这个工具被集成到Qt的编译工具链qmake中,再开始编译QT时,会先去执行moc将信号、槽及宏定义进行编译生成一个moc_xx.cpp文件,之后就是C++常规的编译链接了。简单的理解为C++要对QT的语言进行编译,就要利用元对象编译器将其翻译为C++认识的语言。moc的本质是反射,java中有,C++是没有的,简单的来说就是在程序运行时,获取对象的构造函数、成员函数以及成员变量。并
2021-11-11 18:04:02 651
原创 Qt之事件机制
事件机制(也称消息机制)事件循环,也成为消息循环;QT中事件循环涉及到了类的话是QEVENTLOOP流程:启动事件循环>获取事件>分发事件>处理时间QApplication>获取事件>eventfilter>event>启动事件循环并阻塞:QApplication::exec()发送事件:sendevent()和postevent()前者发出的事件会立即被执行,也就是同步执行;后者发出的事件会先加入事件队列中,在下一轮事件循环时才处理,也就是异步执行
2021-11-11 16:08:06 2994
原创 Qt之预编译宏用法
Qt之预编译宏用法传统包含头文件的方式1)直接包含头文件形式;2)类前申明方式;预编译宏的形式主要看下预编译宏方式的用法:例如,//test.hQT_BEGIN_NAMESPACEclass QPushButton;class QLineEdit;QT_END_NAMESPACE;//chartsQT_CHARTS_START_NAMESPACEclass QChartView;class QChart;QT_CHARTS_END_NAMESPACE//test.cpp
2021-11-09 17:07:07 1575
原创 C++面试题之问题归纳
基础知识点1.C与C++有什么区别,C++有哪些特征?说说多态是怎么实现的(C++内存模型)?2.构造函数可以是虚函数吗,为什么?3.析构函数可以是虚函数吗,什么时候必须为虚函数,为什么?4.子类析构要调用父类的析构函数吗?5.C++空类默认有哪些成员函数(提示6种)?6.什么情况下需要调用拷贝构造函数?7.类的静态成员与非静态成员有哪些区别?8.说说纯虚函数,虚函数,多态(虚指针,虚函数表),this指针9.说说堆和栈(内存布局,内核空间,用户空间)10.重载,重写(覆盖)与隐藏的区别
2020-09-11 18:19:14 548
原创 C++面试题之设计模式及设计原则
六大设计原则1)单一职责原则类的职责单一,对外提供一个功能,函数也支持;2)里氏替换原则任何抽象类的出现都可以用他的实现类进行替换。3)依赖倒置原则依赖于抽象,不要依赖具体实现,也就是针对接口编程4)接口隔离原则一个接口对外应该只提供一种对外功能,不应该把所有操作都封装到一个接口里。5)开闭原则对扩展开放,对修改关闭;//代码实现class AbstractCaculator{public: virtual int getResult() = 0; virtual void s
2020-09-11 18:15:08 2616
原创 C++编程题之新特性
1. 语言可用性的强化1)nullptr:本质还是0,但相对于NULL提供了类型;2)范围for;3)auto自动推导类型;4)迭代器遍历;5)继承构造与委托构造;6)override:修饰虚函数,编译器将检查基类的函数是否存在这样的虚函数;7)final:修饰类,表示该类不可继承;修饰虚函数,表示该函数不能被重载;8)四种类型转化static_cast:1)用于基础类型之间的转换,与C语言强制类型转换一样,没有安全类型检查;2)用于上行转换(子类转父类);const_cast:用
2020-09-11 17:45:10 282
原创 C++面试题之字符串改错
1. 字符串越界问题void test1(){ char string[10]; char* str1 = "0123456789"; strcpy(string, str1);}错误分析:[C代码可编译过]1)string不能作为变量使用,是C++中的string类库;2)str1是一个指向字符的指针,字符串所占长度为11,strcpy函数是将str1拷贝给string,但string大小只有10,str1大小为11,导致数组越界。void test2(){ char str[
2020-09-11 17:36:48 1310
原创 C++面试题之排序算法编程
//冒泡排序#include<iostream>using namespace std;void print(int arr[], int n){ for(int j= 0; j<n; j++) { cout<<arr[j] <<" "; } cout<<endl; } void BubbleSort(int arr[], int n){ for (
2020-09-11 17:29:24 367
原创 C++面试题之字符串编程
题目描述: 计算字符串最后一个单词的长度,单词以空格隔开。输入描述: 一行字符串,非空,长度小于5000。输出描述: 整数N,最后一个单词的长度。示例1: 输入: hello world 输出: 5#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char s[5000]; int count = 0; int index = 0; wh
2020-09-11 17:26:27 1638
原创 在Qt中使用SQLite数据库
前言SQLite是一种无需服务器、无需进行任何配置的数据库,所有的数据表、索引等数据库元素全部存储在一个文件中,在应用程序中使用SQLite数据库就完全当做一个文件来使用。SQLite可以跨平台使用,在不同的平台上可以随意复制数据库。一、SQLite用法1、引入SQL模块QT += sql2、添加头文件#include <QtSql>#include <QSqlD...
2020-08-11 09:54:35 523
原创 Qt调试弹出The CDB process terminated
Qt调试弹出The CDB process terminated解决办法将Qt MinGw环境下的项目移植到msvc下,程序运行时报的错,遇到这种问题,可以从以下两方面入手:一种是查下是否引用了第三方库文件,若有引用,可去项目配置中添加lib和include相关文件(第三方库文件可在pro文件中添加,也可在系统环境变量中添加);另一种是直接双击生成的exe文件,会提示该项目缺少哪些dll文件,须一一添加,直到运行通过为止。...
2020-08-11 09:46:51 2598
原创 Qt 生成dump文件
1.生成dump文件Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。当我们的程序发布出去之后 , 在上位机上是无法跟踪自己代码的 BUG 的 ,, 所以 Dump 文件对于我们来说特别有用,最快的解决方式是生成dump文件,通过生成dump文件使用调试工具进行调试,还原程序崩溃时的状态,能够起到快速定位排查问题的作用 。//生成dump代码#inclu
2020-08-11 09:31:08 1532 2
原创 error C2491-不允许 dllimport 静态数据成员 的定义
error C2491-不允许 dllimport 静态数据成员 的定义
2020-08-11 09:22:14 4417
原创 Qt Quick 实例(二)
@TOCQtQuick 自定义信号与使用实例简述在界面上添加两个按钮和一个text文本,点击按钮切换文本字体颜色,此处通过自定义信号来实现(在上一节基础上添加按钮)实例效果实例代码import QtQuick 2.5import QtQuick.Controls 1.4import QtQuick.Dialogs 1.2Rectangle { id: window visible: true width: 800 height: 600 col
2020-05-23 22:05:55 441
原创 Qt Quick 实例(一)
QtQuick 无边框 透明窗体main.cpp#include <QCoreApplication>#include <QApplication>#include <QQmlApplicationEngine>#include <QColor>#include <QQmlContext>#include <QQuickView>int main(int argc, char *argv[]){ QCoreA
2020-05-23 22:05:17 611
转载 Qt使用UAC权限
转载:沙漠飞鱼在做Qt应用程序时,有时会需要程序以管理员身份运行,Qt下的开发方法如下。一、mingw编译器环境1、添加uac.manifest文件,文件内容如下:<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1...
2020-03-11 09:46:30 997
原创 Qt之界面换肤的两种方式
概述像现在市面上有很多软甲都有换肤功能,例如:QQ、360、迅雷等。换肤其实很简单,并没有想象中那么难,下面介绍两种实现换肤的方式,仅供参考!方式一1. 实现原理 创建多个QSS文件 每一个QSS文件编写对应控件的样式 界面换肤时,进行切换方式二1. 实现原理 创建一个QSS文件首先,创建一个后缀名为QSS文件,例如style.qss,将其加载到资源文件中(qrc)。...
2020-03-05 09:50:44 3737
转载 Python之Anaconda介绍、安装及使用教程
转载:https://www.jianshu.com/p/62f155eb6ac5Anaconda介绍、安装及使用教程概述Python是一种面向对象的解释型计算机程序设计语言,其使用,具有跨平台的特点,可以在Linux、macOS以及Windows系统中搭建环境并使用,其编写的代码在不同平台上运行时,几乎不需要做较大的改动,使用者无不受益于它的便捷性。此外,Python的强大之处在于它的应...
2020-02-22 13:14:20 3671
原创 Qt之通过点击位置获取QTableWidget的行列信息
通过点击位置获取QTableWidget的行列信息直接上代码//通过勾选表格中的复选框,设置当前行高亮QCheckBox* checkitem = qobject_cast<QCheckBox*> (sender());if(checkitem&& checkitem->isChecked()){ QModelIndex index = ui-&g...
2020-02-20 10:23:37 4813
原创 Qt之QTableWidget表中插入复选框
QTableWidget表中插入复选框下面给出两种方式1. 直接通过QTableWidgetItem来设置复选框类型QTableWidgetItem *item = new QTableWidgetItem(QString(""));ui->tableWidget->item(row, col)->setCheckState ( Qt::Unchecked);2....
2020-02-20 09:41:17 5791
转载 Qt之动态属性unpolish()和polish()
Qt的动态属性unpolish()和polish()1. Qt中的属性属性是指窗口或控件的属性,比如opacity属性表示“透明度”,geometry指的是“位置和大小”,pos属性代表“位置”。qt中的控件有自带的属性,我们也可以自己定义属性。QObject这个类有一个函数setProperty,我们可以通过这个函数定义自己的属性,使用方法很简单,setProperty(constcha...
2020-02-16 19:59:01 8616
原创 error: undefined reference to `_imp__glShadeModel@4
error: undefined reference to `_imp__glShadeModel@4错误截图解决方案在PRO文件中添加LIBS += -lopengl32 -lglu32 -lglut \
2019-10-10 16:10:02 562
转载 构造函数隐式转换
转载博客:http://blog.csdn.net/thefutureisour/article/details/7705771构造函数隐式转换构造函数会引起一个不引人注意的问题:用单个实参来调用的构造函数定义了从从形参类型到类类型的一个隐式转换。举个例子说:class Sales_item { public: std::istream& input(std...
2019-09-18 10:22:49 1165
转载 平面中,一个点绕任意点旋转θ度后的坐标(C++实现)
转自:https://blog.csdn.net/maitianpt/article/details/84983599平面中,一个点绕任意点旋转θ度后的坐标平面中,一个点(x,y)绕任意点(dx,dy)顺时针旋转a度后的坐标xx= (x - dx)*cos(-a) - (y - dy)*sin(-a) + dx ;yy= (x - dx)*sin(-a) + (y - dy)*cos(-...
2019-09-15 11:30:22 2434
原创 Qt Quick快速入门(下) 02
Quick基本元素1. 响应按键前面提到Item可以处理按键,所有从Item继承的元素都可以处理按键,比如Rectangle、Button。Item通过附加属性Keys来处理按键。Keys对象是Qt Quick提供的、专门供Item处理按键事件的对象。它定义了很多特定按键的信号,如returnPressed,还定义了普通的pressed和released信号。2. Text3. Butt...
2019-09-13 17:39:51 357
原创 Qt 网络编程
一、Qt 网络编程QNetworkAccessManager提供了发送请求的各种API,以及网络配置相关的方法;QNetworkReply是QNetworkAccessManager根据你提交的QNetworkRequest构造的一个应答对象,一旦请求发出,就可以获取网络操作中的各种状态;QNetworkRequest代表一个网络请求,包括URL、HTTP访问的User-Agent、用户名...
2019-08-27 11:10:52 422
原创 VS2013 运行release版本正常,直接执行exe文件会闪退
问题:VS2013 运行release版本正常,直接执行exe文件会闪退解决方法:右键点击“属性”,选中“兼容模式”;在开始菜单中打开运行(cmd),输入gpedit.msc,点击确定;依次展开:计算机配置/管理模板/windows组件/应用程序兼容性;选中,右键启用 “关闭应用程序兼容性引擎”,和“关闭程序兼容性助理”;...
2019-08-26 17:14:51 3675
转载 Q_DECL_EXPORT的作用
转自:https://blog.csdn.net/bxd1314/article/details/46966857?utm_source=copyQ_DECL_EXPORT的作用global.h#ifndef FitVCam_GLOBAL_H#define FitVCam_GLOBAL_H #include <QtCore/qglobal.h> #ifdef FitVC...
2019-08-15 16:40:32 2618
原创 Qt Quick快速入门(上) 02
Qt Quick基本元素前面我们已经接触了Qt Quick元素,例如Rectangle、Text、MouseArea等,这节就来看看它们吧。1. RectangleRectangle用来绘制一个填充矩形,可以带边框,也可以不带,可以使用纯色填充,也可以使用渐变色填充,甚至还可以不填充只提供边框… …Rectangle有很多属性,下来来说下常见的几个属性,如果有兴趣的伙伴可以查看相关文档。...
2019-08-10 18:58:03 341
原创 Qt Quick快速入门01
Qt Quick快速入门1. Qt Quick基本程序结构下面先来看一段程序import QtQuick 2.2import QtQuick.Window 2.1Window{ vasible: true; width: 600; height: 400; MouseArea{ anchors.fill: parent; onClicked: { Qt.quit(...
2019-08-10 14:35:58 1138
转载 SQLite全面学习-sqlite安装
转自:https://www.cnblogs.com/oukele/p/9540293.html下载地址:https://www.sqlite.org/download.html(下载相对应自已电脑的配置的数据库)(这里 我的电脑是 windows 64位操作系统)下载完后 解压出来下来进行环境变量配置打开cmd输入sqlite3,出现这个说明 sqlite3数据库已经能使用了...
2019-08-05 18:04:10 319
转载 VS 的链接库的设置
在VS开发环境上,其实经常会遇到一写项目环境的配置问题,有时会经常困扰我们项目的进展,以及开发人员。因为我刚刚开始接触VS项目的开发,所以把一些困扰自己的问题记录下来,以便日后学习以及和大家进行分享。以下内容为“原创”+“转载”首先,解决方案和项目文件夹包含关系(c++项目):VS解决方案和各个项目文件夹以及解决方案和各个项目对应的配置文件包含关系,假设新建一个项目ssyy,解决方案起名f...
2019-08-05 18:03:02 1153
转载 QTableWidget交换两行的数据,实现按键数据上/下移
转自:https://blog.csdn.net/DoleH/article/details/85243175QTableWidget交换两行的数据,实现按键数据上/下移预备操作在QT designer中添加一个tableWidget在QT designer中添加两个PushButton双击tableWidget可以对表头进行修改在程序中,对表格进行初始化//初始化table...
2019-07-27 12:41:48 2573
原创 QTableWidget中添加button
QTableWidget中添加QPushButton在QTableWidget中可以添加多种Qt的空间信息,本文只以QPushButton为例进行说明:// 创建QPushButton控件QPushButton *pBtn = new QPushButton(); // 绑定信号connect(pBtn, SIGNAL(clicked()), this, SLOT(OnBtnClic...
2019-07-20 12:45:56 10256 2
转载 任意斜率的中点画线算法
转自: https://blog.csdn.net/qq_37935516/article/details/62951977一、中点画线算法的基本原理在画直线的过程中,当前像素点P(xp,yp),则下一个点与直线最接近的像素只能是P1或者P2,即P点的正右方或者右上角的点。设M(xp+1,yp+0.5)为P1与P2的中点,Q为与理想直线与x=xp+1线相交的点。当M在Q的下方时,则P2应为下一...
2019-06-26 22:13:26 2007
转载 抛物线、导弹线轨迹计算
转自:https://www.cnblogs.com/sevenyuan/p/8444109.html算法思想三、代码示例void UParabolicMovementComponent::InitComputeParams() { //无目标时 if (!bHasTarget) { // 指定出射角度时计算方法 // FQuat...
2019-06-26 22:04:57 11928 4
SQLite3学习-1.docx
2020-09-11
QtGLWidegt.rar
2019-10-11
QtTcp网络-TCP/IP网络编程
2019-08-09
Sqlite增删改查操作
2019-01-27
Qt 自定义标题栏
2019-01-23
Unity 游戏设计与实现(附带源码)
2019-01-23
基于浩辰的ObjectGRX2019SDK
2019-01-09
vs2013 Qt5.7安装配置
2018-11-16
窗口多次释放后,智能指针出现异常
2024-04-01
QT IFW 自定义界面添加lineedit小键盘输入数字无效果
2024-03-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人