- 博客(36)
- 收藏
- 关注
原创 QT-文件模块(ver6.7.2)还没写完
QIODevice::Append 在文件中添加内容,不改变原始内容。QIODevice::WriteOnly 只写。QIODevice::ReadWrite 读写。QIODevice::ReadOnly 只读。
2025-02-18 01:49:36
213
原创 QT- HTTP + JSON(还需完善)
QJsonDocument:读取json数据;将json数据转化为字符串或字符数组。,而 HTTPS 的 URL 则是由 https:// 起始与默认使用端口。HTTP 的 URL 是由 http:// 起始与默认使用端口。QJsonObject:表示JSON对象,键值对的集合。如200表示成功,404表示资源未找到。QNetworkReply 接受请求的响应。QNetWorkRequest 用于请求。QJsonArray:表示JSON数组。QJsonValue:表示JSON值。
2025-02-18 01:49:17
387
原创 QT鼠标、键盘事件
只会在按下一次键盘后执行一次jump函数,在游戏中就只会让角色跳跃一次。鼠标双击 mouseDoubleClickEvent。鼠标释放 mouseReleaseEvent。注:qt5是event->delta();鼠标点击 mousePressEvent。鼠标移动 mouseMoveEvent。键盘松开keyReleaseEvent。键盘按下 keyPressEvent。
2025-01-08 18:22:26
387
原创 QPainter
是QT的基类函数,用于响应窗口系统发出的重绘请求,每当一个窗口部件需要更新其显示内容时,例如窗口首次显示、部分窗口从被遮挡变为可见、或者你显式地调用了update()或repaint()函数,Qt会自动调用这个方法。
2025-01-05 18:15:32
355
原创 VS+QT运行界面乱码解决
2、头文件添加 #pragma execution_character_set("utf-8")1、属性 -> C/C++ -> 所有选项->附加选项,改为/UTF-8。
2024-12-18 23:10:18
158
1
原创 C++参数传递
x = &value;表示x是一个指向int型变量的指针,&value表示吧value这个变量的地址赋给x。目的:1、避免拷贝带来的开销,适合大型对象;2、为了通过这个函数修改原始参数。int *x 表示x是一个指针,它指向一个整数型变量的地址,而不是这个整数。:创造一个副本,函数内部的操作都是对此副本的操作。目的:为了高效传递参数,而且不改变原始数据。对原始数据直接操作,会改变原始数据。对原始数据操作,会改变原始数据。目的:简单直观,适合小型对象。(在函数内部对它修改会报错)
2024-12-10 03:16:16
220
原创 QT - (qrc->binary)
问题:.qrc资源文件过大。.qrc:QT用来定义资源的XML格式文件,包括图片、音频、文本等。终端中输入命令:这个命令的作用是将。-o A.rcc:表示输出的文件的名称为A.rcc。文件中定义的资源编译成二进制格式,并保存为。.\res.qrc:这个是输入的资源文件的路径。-binary:表示输出二级制格式的文件。解决方法:将.qrc转为二进制文件。rcc:Qt资源编译器的命令。
2024-12-02 01:39:00
330
原创 vs+qt+modbus报错(断言302,response timer active)
解决方案:调查之后,感觉是qt的版本问题,之前用的是5.12.10,大概率是bug没修复。后更换版本5.15.2后目前没有报错过。问题描述:这种情况在程序运行过程中时不时会出现,但是不影响程序跑。点击界面或者拖动表格就会一直报错,其他情况也会报错。
2024-09-19 10:17:39
330
原创 VS运行库断言(908)
同时调试台报错:1>MSVCRTD.lib(initializers.obj) : warning LNK4098: 默认库“msvcrt.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library。解决方法:属性 -> c/c++ -> 代码生成 -> 运行库(debug:多线程调试DLL;release:多线程DLL)问题描述:上述断言是在release版本下出现的,debug并没有出现。
2024-09-19 10:00:17
297
原创 vs+qt一些问题
因为前后端分离,前端写完了,后端还在一直修改,但是每次都是单独打开的后端的sln,所以会出现这个,把前端的模块删掉就好了。尝试用管理员身份打开vs,并且检查一下debug和release中qt的版本对不对。2、打开vs项目,很多报错,但在另一台电脑上没问题。一直遇到的两个问题,今天解决了。
2024-08-05 17:23:25
386
原创 VS+QT 打包可执行文件.exe
2、移植到其他电脑上时,总是出现缺文件,可以尝试检查vs中qt的版本,各种设置,然后重新生成重新打包。第一行 路径是进去运行程序所用的qt环境的bin路径(就是windeployqt所在的地方)切换成release版本,同时更改项目属性中release配置下的各个属性,确保匹配。1、如果报错有关VCINSTALLDIR,系统变量中新建。重新生成解决方案,将生成的.exe复制到一个空白文件夹中。变量值是vs的安装路径,基本都在x86里面。第二行 路径是上述空白文件夹的。
2024-07-18 10:23:10
744
原创 端口号被占用
netstat -ano 找到8080对应的PID。在任务管理器的详细信息中找到对应的进程,关掉。tasklist 找到PID对应的进程名称。
2024-07-11 13:53:55
379
原创 打开github
3、进入C:\Windows\System32\drivers\etc\hosts ,修改文件权限为可修改。⭐如果还是卡 输入ipconfig/flushdns。,然后保存即可(IP地址和网站之间有一个空格)1、输入 ping github.com。2、复制ping到的ip地址。4、在最下面输入 ip地址。
2024-06-24 14:13:56
131
原创 关于编码(中文是乱码的问题)
方法二: 这个方法是依赖当前系统的本地编码(wins的GBK,posix的UTF-8.),和os和area有关。Question:在写串口助手时发现接受(sscom发送的中文)是乱码。后使用以下两种方法得以解决:其实就是wins下是GBK形式。方法一:因为没有toGBK,所以用QTextCodec。总结:收发编码要一致,不确定就一个一个试或者写个日志。
2024-06-19 09:08:27
1253
原创 C++传递参数 选择&,*,值
取决于多个因素,包括性能考量、资源管理、参数修改的需求,数据的复制,修改,生命周期,内存管理等。通过修改指针所指向的数据可以直接访问且会影响原始数据。因为指针和原始变量引用的是同一块内存地址。修改函数内的引用类型变量会影响原始变量。因为它们引用的是同一块内存地址。实际数据的引用(即内存地址),而不是实际数据本身。而不是原始数据本身。
2024-06-06 15:54:18
277
原创 抽象类(接口)
抽象类可以包含具体实现的方法和数据成员,这些可以直接在抽象类中定义并供所有子类使用,实现代码复用。这些抽象方法没有具体的实现细节,需要由继承该抽象类的具体子类来提供实现。纯虚函数是在基类中声明的虚函数,声明纯虚函数的方式是在函数声明后面加上。(除非它自己也声明为抽象类),不是纯虚函数可以不实现,这保证了继承层次结构的统一性。3、抽象方法通常是以纯虚函数的形式存在,至少包含一个纯虚函数的类就是抽象类。1、是一种不能被实例化的类,即不能直接创建抽象类的对象。如果一个类从抽象类继承,它必须实现。
2024-06-05 14:10:52
172
原创 entern
这意味着变量的实际存储空间是在其他文件或同一文件的较前部分分配的;声明可以多次,但定义只能一次。关键字用于声明一个变量或函数是在别处定义的;仅是声明该变量的存在。
2024-06-04 13:24:57
182
原创 HTTP 与 HTTPS 对比
HTTP: HTTPS: 超文本传输协议 超文本传输安全协议 加入SSL/TLS协议,依靠证书来验证服务器的身份 需要到CA申请证书,需要一定费用 TCP 协议 80 端口 TCP 协议 443 端口 更耗费服务器资源
2024-05-27 14:12:32
516
原创 QT 掩码 InputMask
如IP输入框可以简单设置为 IP->setInputMask("000.000.000.000");就会有80%的相似度。另外设置掩码用 ui.edtIP->setInputMask(“这里面是字符格式”);而不是ui.edtIP->clearMask;
2024-05-27 11:01:08
831
原创 QT-信号槽有多个重载版本{ QOverload<_>::of(&_::_) }
因为 currentIndexChanged 信号有多个重载版本(根据参数的不同),因此需要使用 QOverload 来明确指定要连接的重载版本。Text:监视组合框中的文本改变,不论哪种方式。Index:更注重用户通过界面交互当。
2024-05-24 13:27:02
516
1
原创 Wins系统没有有效ip地址解决方案
1、win+r: services.msc,找到Wired AutoConfig。启动类型 -> 自动;服务状态 -> 启动。3、win+r: cmd,输入 netsh winsock reset。2、打开更改适配器,禁用以太网,然后重新启用。
2024-05-20 09:27:33
367
原创 QT-进度条()
totalCount : 总行数有很多种方法,如.size(),rowcount,.next什么的,但在我的程序中都不起效。上述是读取数据库的进度条(因为查询的数据量较大,所以需要进度条给客户展示)。代码,进度条所需部分如下,其他地方根据需求自行填充。
2024-04-17 18:33:12
581
1
原创 QT-复选框checkbox全选设置
槽函数中,你可以实现选择表格中所有行的逻辑。这段代码的效果是,在表格的左上角添加了一个 "全选" 的复选框,用户点击它时,会触发。通过这段代码,你可以在表格中的每一行中添加一个复选框,并实现根据用户点击复选框来动态选择或取消选择行的功能。(通过这个函数,你可以实现全选功能,当用户点击全选复选框时,表格中的所有行都会被选择或取消选择。1、在表头第一列添加全选框(checkbox)以及“全选”文字(需要自定义表头)点全选复选框,下面所有的复选框都会跟着选中,取消选中也一样。2、表格内第一列添加复选框。
2024-04-11 13:33:03
1593
2
原创 VS中用ODBC连接SQL报错driver not loaded
原因:运行目录下没有驱动文件夹,我是因为没有打包好的文件夹,是自己一个一个复制粘贴,导致少了两个文件导致连接失败。报错:“ Driver not loaded Driver not loaded ”报错图:ODBC连接成功,vs中自带的数据库也连接成功,但是写了代码运行就失败。搞了很久,网上的教程其实大部分对我没啥用,可能有用是我看不懂。sqldrivers文件夹内容(自己在mysql里找吧)前言:qt能连接上,但vs+qt失败。
2024-04-03 10:05:51
612
1
原创 VS创建新类;QT-在一个已有的窗口上点击按钮出现新界面
在vs上新建一个cpp+h+ui,然后实现标题功能。这本来是一个很简单的东西,写代码写傻了搞了半天没搞出来。然后就是vs创建类有点恶心,会报很多错LNK2019,2011等等,目前就是->选中新建的类->属性->需求:点击MainWindow上的pushbutton(btnDataSql),然后跳出SqlWindow的界面。然后还是会有莫名其妙的问题,但我运行了两边之后就ok了,可能vs的自适应自己解决了问题吧。解决方案:MainWindow.cpp添加。头文件什么的补齐就好了。
2024-04-01 14:01:28
455
1
原创 for (auto& iter : m_lstCommu)和for (auto iter : m_lstCommu)的区别
for循环,m_lstCommu是一个容器(std::vector,std::list等),iter是循环变量名。&即使用引用直接修改容器中的元素,循环体内对iter的修改会直接影响到容器中的值。而不使用&,iter就只是一个副本,不会更改原始容器。适合只需要读取元素。作用是遍历容器中的每个元素,将值赋给iter,然后执行循环体中的内容。
2024-03-18 15:42:39
448
1
原创 QT-IP地址输入框(inputmask结合信号槽)
和wins中ip输入框基本相同。判断数字0-255;如果有错误会报错......p是QString的引用,用p来读取所引用的QString对象的内容.parts是一个QStringList 类型的容器,里面存储了被。中的QString,QStringList有a.isEmpty。(这个水印能不能去掉。中的string有a.empty,分隔开的 IP 地址的各个部分;
2024-03-18 15:37:43
1612
3
原创 QT-qobject_cast
将发送信号的对象转换为QLineEdit类型的指针,并将结果存储在QLineEdit变量中。用于将一个QObject类型的指针转换为另一个继承自QObject的类的指针。我们首先需要确保发送信号的对象是一个QLineEdit对象,因为槽函数onIPTextChanged。1、 进行安全的向下转型(派生类到基类),而不能用于向上转型(基类到派生类),否则返回空指针。4、对象必须是通过 new 运算符创建的堆对象,而不是栈对象或全局对象。sender()是一个用于获取发送信号的对象指针的方法。
2024-03-18 15:24:41
576
2
原创 QT-LineEdit:textChanged&textedited区别
触发信号,不会对程序代码或者其他非用户交互的方式引起的文本改变作出响应。两者都是响应文本框内容发生用来检测用户输入内容的合法性。textChanged是只要。textEdited是。
2024-03-18 13:51:29
718
1
原创 C++中使用 . 和 ->和 :: 的区别
3、::运算符:访问类的静态成员变量和静态成员函数,以及命名空间中的变量,函数,类等。2、->运算符:通过指针访问类的成员变量和成员函数。运算符:访问类的对象的成员变量和成员函数。
2024-03-13 15:52:39
1059
1
原创 QT-登录框相关内容
它的参数依次为:父窗口指针(this)、对话框标题("Warning",警告)、显示的消息内容(" ")和按钮选项(QMessageBox::Yes,显示一个确认按钮)。QMessageBox::warning (this, tr("对话框标题"), tr("显示的消息内容"), QMessageBox::Yes);它的主要作用是将需要进行本地化处理的字符串进行翻译,以便在多语言环境下显示正确的文本。类的构造函数中使用setEchoMode(QLineEdit::Password)。
2024-03-08 11:15:07
533
1
原创 QT-两个文本框同步
设计界面使用了两个控件:Text Edit 和 Text Browser,然后利用信号槽连接。通过 lambda 表达式,我们可以方便地在连接信号槽时编写少量的代码,而不必创建额外的槽函数。setText()用来设置文本,toPlainText()用来获取文本。Text Browser(文本浏览框*只读)的使用:用于显示富文本格式的内容。QTextEdit,QPlainTextEdit,这些是用。Text Edit(文本编辑框)的使用:用于编辑和显示富文本格式的内容。
2024-03-06 10:14:08
1335
1
原创 C++中类与Struct的区别
struct可以继承class,同样class也可以继承struct,继承方式的默认访问权限与基类无关,而是由继承中的子类决定的。类: class A{int a;结构体:struct A{int a;class可以用在模板中替代typename,struct不能。继承,结构体外的函数调用时可使用B.a 进行访问。继承,类外的函数调用时无法通过B.a进行访问。如果想要写成公有继承,改成。继承类的默认访问级别不同。
2024-03-01 09:23:13
411
1
vs+qt+modbus中遇到报错,
2024-07-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人