Qt(跨平台:PC端+MAC端)
编译器在win经常崩溃,调试体验差,
大树学长
多年专业音响、乐器行业经验,PC端、MAC端、安卓端软件开发,精通上位机软件制作。
展开
-
【QT开发】乒乓球碰撞反弹demo
一个类似乒乓球碰撞反弹的demo原创 2024-07-02 20:30:56 · 229 阅读 · 0 评论 -
QT开发之串口通信(四)
QT开发,串口通信时遇到的一些问题原创 2023-09-07 00:17:54 · 930 阅读 · 0 评论 -
QT开发关于多线程相关使用
几种线程使用方式原创 2023-05-26 17:37:53 · 981 阅读 · 0 评论 -
Qt开发之串口通信(三)
VS+QT中获取COM口的方式原创 2022-12-02 14:51:37 · 777 阅读 · 0 评论 -
VS+QT错误集合
关于VS+QT中遇到的无法解析等外部符号类型问题解决方式原创 2022-11-18 14:55:35 · 2045 阅读 · 0 评论 -
QT开发PingIP
QT开发PingIP原创 2022-10-24 18:39:52 · 618 阅读 · 0 评论 -
VS2015+Qt5.13.1安装教程
VS2015+Qt5.13.1安装教程原创 2022-09-29 18:47:50 · 1875 阅读 · 0 评论 -
QImage相关
QImage的一些简单使用介绍原创 2022-09-29 17:47:23 · 743 阅读 · 0 评论 -
Qt开发基础之安装目录文件解析
记录一下Qt安装目录中各文件夹内容作用我使用的是Qt5.9.0版本,安装包是qt-opensource-windows-x86-5.9.0,系统是windows10在完成安装后打开安装目录解析:Docs:帮助文档Examples:示例代码Licenses:许可协议Tools:开发工具集,其中mingw530_32为MinGW工具集,QtCreator为集成开发环境vcredist:VC运行库MaintenanceTool.exe:Qt安装管理工具原创 2022-03-28 11:23:47 · 1803 阅读 · 1 评论 -
Qt开发之MAC版本程序打包2
1、程序打包使用dropDMG工具,直接将app拖进去,然后选择一个路径和名称就可以直接生成2、为什么使用dmg发布,为什么不带证书签名①、如果是要走app store就需要带签名,但是MAC版本一般用户会选择网上下载,②、同时签不签名,在MAC bigsur系统都会出现安全性与隐私,旧系统签名后不会3、打包后检测一般打包后要检测app使用的那些库查找路径是否正确,因为在用户电脑上可能没有这些库就需要自己带上检测软件需要库的路径:①、进入到软件路径②、使用otool原创 2021-08-12 10:54:27 · 370 阅读 · 0 评论 -
QT开发之QML
1、路径folder: shortcuts.desktop // 桌面folder: shortcuts.homefolder: "file:///firmware"//exe所在路径2、文件对话框fileDialog.open();//调用//使用FileDialog { id: fileDialog; title: qsTr("Open File"); folder: shortcuts..desktop原创 2021-07-06 09:50:20 · 413 阅读 · 0 评论 -
QT开发之文件操作
1、保存数据//用IODevice方式保存文本文件 QFile aFile(Path); if (!aFile.open(QIODevice::WriteOnly | QIODevice::Text)) return; QString str = "123456789"; QByteArray strBytes=str.toUtf8();//转换为字节数组 aFile.write(strByte原创 2021-06-03 15:08:28 · 339 阅读 · 0 评论 -
QT开发之使用ini文件读存中文
1、头文件#include <QFontDatabase>#include <QFileInfo>#include <QFile>#include <QTextStream>2、声明QString ReadINI(QString ObjSection, QString ObjKey, QString ObjPath); void WriteINI(QString ObjSection, QString ObjKey, QStrin转载 2021-03-09 11:36:34 · 1770 阅读 · 0 评论 -
QT开发之主界面变暗功能
软件在使用时有时候需要对比强烈的提示一些内容或者其它操作,要将整个主界面变暗,然后提示的内容不变,就会显示很突出的效果实现方式:整个界面变暗使用一张带透明的黑色图片或者画一个变暗背景代码:QWidget *m_widget = new QWidget(this); m_widget->resize (this->width(), this->height()); m_widget->move (0,0); QPalet原创 2021-02-26 14:45:01 · 1696 阅读 · 0 评论 -
QT开发之控件添加阴影效果
未加阴影效果:添加阴影效果:代码:#include <QGraphicsDropShadowEffect>QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect(this);shadow->setOffset(5, 5);shadow->setColor(QColor(43, 43, 43));shadow->setBlurRadius(8);ui->pu原创 2021-01-28 18:18:54 · 2031 阅读 · 0 评论 -
QT开发之exe增加管理员权限
1、适用于mingw32编译器创建一个txt文档,然后在里面添加<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> &原创 2021-01-11 17:21:58 · 463 阅读 · 0 评论 -
QT开发之系统时间相关
1、获取系统时间,并写入文档中//注意,读取的时候也要使用相同的类型读出QFile file(strPresetFilePath);file.open(QIODevice::WriteOnly | QIODevice::Truncate);QDataStream out(&file); //将数据序列化 out << QDate::currentDate();file.close();2、读取时间原创 2021-01-11 11:10:29 · 144 阅读 · 0 评论 -
QT开发之界面(二)
1、设置主界面为圆角在主界面构造函数中添加:1240为主界面长770为主界面宽QDesktopWidget* desktopWidget =QApplication::desktop();QRect deskRect =desktopWidget->availableGeometry();int nWidth = deskRect.width();int nHeight = deskRect.height();this->setGeometry((QRect((nWid原创 2020-11-04 16:19:38 · 561 阅读 · 0 评论 -
QT开发之全局窗口和相关问题
1、原因有时候在主界面需要操作其它子对话框里面的控件,使用信号和槽或者其它方法都没有效果这样原因就是创建显示对话框的对象和信号槽中使用的子对话框对象不是同一个导致的,有时候子对话框的对象显示可能也不在主界面中,所以使用全局对象这种方式保证在任何地方都能调用子对话框中的所有控件,2、创建全局窗口的方式extern EQDialog *g_Eqdig;EQDialog *g_Eqdig = NULL;然后在构造函数中添加:g_Eqdig = new EQDialog(this);.原创 2020-11-04 15:45:43 · 477 阅读 · 0 评论 -
QT开发之各种参数格式转换
1、QString转unsigned char*QString add = ui->lineEdit->text();unsigned char b[25];memcpy(b,(unsigned char*)qstrdup(add.toLatin1().constData()),25);原创 2020-11-02 14:04:55 · 326 阅读 · 0 评论 -
QT开发之过滤器
1、使用需要先添加:ui->lineEdit->installEventFilter(this); //在窗体上为lineEdit1安装过滤器头文件声明:bool eventFilter(QObject *,QEvent *); //过滤器bool prompt::eventFilter(QObject *watched, QEvent *event){ if (watched == ui->lineEdit) //首先判断控件(原创 2020-09-21 10:59:00 · 278 阅读 · 0 评论 -
QT开发之获取文件大小
获取一个音频文件大小(字节)long int size = 0; QFile myFile(User_wav_path[0]); if (myFile.open(QIODevice::ReadOnly)) { size = myFile.size(); //when file does open. myFile.close(); } qDebug() << size;后续如果能获取波特率等,就可以算出音频文件的原创 2020-09-16 17:06:25 · 3648 阅读 · 0 评论 -
QT开发之使用动画效果和相关问题
1、使用GIF格式的动画这里需要用到QLabel控件头文件添加:#include <QMovie>在public:中声明QMovie *pMovie;//不知道什么原因在私有中声明,会导致程序无法生成在构造函数中添加:pMovie = new QMovie(":/png/gif1.gif"); ui->label_gif->setMovie(pMovie);//QLabel控件 pMovie->start();结束动画使用pMovie-原创 2020-09-14 09:32:48 · 523 阅读 · 0 评论 -
QT开发之获取指定目录下的指定格式的所有文件名称
1、要注意语种,有些获取的会是乱码,获取的带名称带格式QString Path = QCoreApplication::applicationDirPath();//exe所在路径 //判断路径是否存在 QDir dir(Path); if(!dir.exists()) return; QStringList filters; filters<<"*.mp3" << "*.wav" << "*.fl原创 2020-09-11 17:56:09 · 535 阅读 · 0 评论 -
QT开发之橡皮筋界面的使用
将橡皮筋界面类放入项目文件夹中1、pro中添加include(FramelessWindow/FramelessWindow.pri)2、头文件中添加#include "FramelessWindow/frameless_helper.h"使用函数声明void enableDragAbleWidget();//橡皮筋界面3、使用函数,构造函数中添加void Core::enableDragAbleWidget(){ this->setWindowFla原创 2020-09-07 16:08:35 · 685 阅读 · 0 评论 -
QT开发使用QML后无法打开生成的exe的问题
原因是使用windeployqt会修改里面的DLL解决办法:将Qt5Core.dll和Qt5Widgets.dll替换为QT安装目录里面的同名库安装目录位置替换掉后就可以正常运行了原创 2020-09-03 17:49:22 · 593 阅读 · 0 评论 -
QT开发之多线程创建使用
创建一个线程类,保存运行、退出和继续运行的功能函数myThread.h#ifndef MYTHREAD_H#define MYTHREAD_H#include <QThread>class MyThread : public QThread{ Q_OBJECTpublic: MyThread(); void closeThread(); void startThread();protected: virtual void ru原创 2020-09-03 16:40:04 · 217 阅读 · 0 评论 -
QT开发之QTimer
1、按钮长按一秒钟的响应头文件中申明:QTimer *m_timer;connect(ui->pushButton_Harmony_type,&QPushButton::pressed,[=]() { qDebug() << "按下"; m_timer = new QTimer(this); connect(m_timer, &QTimer::timeout, [=] {原创 2020-08-18 09:14:39 · 238 阅读 · 0 评论 -
QT开发之自动配置exe
1、windeployqt命令,复制类似的路径然后我的电脑->属性->在path中点击编辑,然后讲前面的路径填进去就可以了,记得加’;‘2、将Release生成的exe放到单独的位置,进入命令模式,直接输入:windeployqt+空格+exe名称.exe就可以了,自动生成exe的配置文件,我上面的截图就是已经生成好了的,...原创 2020-07-28 23:02:45 · 425 阅读 · 0 评论 -
QT开发之HID通信
使用hid和快传速原创 2020-07-20 15:35:47 · 3204 阅读 · 0 评论 -
QT开发之串口通信(一)
QT上使用串口通信非常简单的,已经有串口类,只需要在pro添加,然后添加头文件就可以正常使用了,环境:QT5.9.0+Creator4.3.1,WIN101、添加代码QT += serialport.h头文件:#ifndef QMYSERIALPORT_H#define QMYSERIALPORT_H#include <QMainWindow>#include <QSerialPort> //提供访问串口的功能#inc转载 2020-07-20 15:32:38 · 775 阅读 · 0 评论 -
QT开发之菜单
1、添加菜单项和响应功能QMenu *pMenu = new QMenu(this); connect(pMenu->addAction("菜单项1"), &QAction::triggered, [=]() { //菜单项1对应功能 });QSSpMenu->setStyleSheet( "QMenu {" "background-color: white;" /* sets background of原创 2020-06-04 17:46:18 · 262 阅读 · 0 评论 -
QT开发之文件操作
1、根据软件目录路径来操作文件QString fileName = QCoreApplication::applicationDirPath();fileName = fileName + "/abc.json";QFile file(fileName );if(!file.open(QIODevice::ReadWrite))//如果abc文件不存在就创建{ qDebug() << "File open error"; exit(1);}else{原创 2020-06-04 13:50:36 · 397 阅读 · 0 评论 -
QT开发之生成动态库
1、创建2、完成创建后直接运行,会弹出这个对话框,不用管,已经生成成功了3、打开生成的位置,找到DLL原创 2020-05-29 09:51:59 · 395 阅读 · 0 评论 -
QT开发之打开文件对话框getOpenFileName
Qt 打开文件的默认路径 QFileDialog::getOpenFileName()为了说明QFileDialog::getOpenFileName()函数的用法,还是先把函数签名放在这里:QString QFileDialog::getOpenFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir ...转载 2020-05-19 11:43:23 · 856 阅读 · 0 评论 -
Qt开发之添加注释模板方便使用
一般代码中都会带上注释,但是有些注释很简陋,没有统一的格式,这个时候如果能有一个注释模板就能更方便了。1、方法工具菜单->选项->文本编辑器->片段选项卡点击添加按钮,填写触发的字符串,然后在下发编辑输入区填写注释模板/******************************************** @projectName %{CurrentProject:Name}* @Features 摘要* @author BT* @da.原创 2020-05-11 16:34:22 · 413 阅读 · 1 评论 -
Qt开发之添加Qt源码调试
1、首先在安装Qt的时候选中Sources安装源码2、随便新建一个工程,然后工具->选项->调试器添加后会像图1显示原路径和目标路径3、调试这样就可以了原创 2020-05-11 15:56:37 · 703 阅读 · 0 评论 -
QT开发之ini文件的读写
1、写入ini文件数据int a = 0;//tool.ini为路径,根据exe的路径位置存放,第二个参数为操作iniQSettings *configIniWrite = new QSettings("tool.ini", QSettings::IniFormat);//dialog为健值,第二个为写入的参数 configIniWrite->setValue("d...原创 2020-04-28 16:37:31 · 365 阅读 · 0 评论 -
QT creator使用
1、在项目中增加功能类文件夹原创 2020-04-20 16:37:24 · 151 阅读 · 0 评论 -
QT开发之JSON数据读写
1、写JSON文件:头文件:#include <QJsonObject>#include <QJsonArray>#include <QJsonDocument> //fileName为路径 if (!fileName.isNull()) { // 以读写方式打开路径下文件,若该文件不存在则会自动...原创 2020-01-16 16:50:54 · 321 阅读 · 0 评论