- 博客(22)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Qt自定义tableview控件,使用QSortFilterProxyModel进行表格数据过滤与排序
qtableview使用QSortFilterProxyModel进行搜索过滤排序
2024-01-25 17:03:05
786
原创 C++中的死锁问题
上述代码中,线程1先锁定mtx1,然后暂停1秒,在线程1暂停的这1秒时间内,由于线程1与线程2是并发执行的,因此,线程2有机会开始执行并锁定mtx2,然后线程2在锁定mtx2后,暂停1秒,然后在这1秒内,线程1开始试图锁定mtx2,此时,mtx2已经被线程2锁定中,而线程2试图锁定mtx1,而此时,mtx1已经被线程1锁定中,这样线程1与线程2都在等待对方释放锁,就形成了死锁。上面代码,线程2与线程1以相同的顺序获取锁,这样两个线程就不会互相等待对方释放锁,从而避免了死锁问题。
2023-10-17 16:16:09
139
原创 什么是内存溢出,与栈溢出有什么区别?什么又是内存泄漏?
堆内存是动态分配内存区域,程序员可以通过malloc、new等函数手动分配内存空间,并在使用完毕后通过free、delete等函数手动释放内存空间。(stack overflow)指程序在栈上分配了过多的内存空间,超过了栈的大小,导致占空间不足而引发的异常。(memory overflow)是指程序在申请内存空间时,超过了系统能够提供的空间大小,导致无法分配内存空间,使程序运行出现错误的现象。(Memory Leak)指程序在申请内存空间后,未能释放不再使用的内存空间,导致系统中可用空间逐渐减少,
2023-10-16 10:25:17
296
1
原创 Qt MainWindow中布局出现:QLayout: Attempting to add QLayout ““ to MainWindow “MainWindow“, which already解决
QLayout: Attempting to add QLayout "" to MainWindow "MainWindow", which already解决
2023-06-19 10:40:10
655
原创 QSet使用
QSet还提供了其他函数,如size()获取元素个数,isEmpty()检查是否为空,unite()合并两个QSet等。它提供了高效的插入、查找、删除操作,并且之确保每个元素只出现一次。2、查找元素:可以使用contains()函数,判断元素是否在QSet中。QSet中的元素是无序的,QSet中的存储元素不会按照插入顺序进行排序。1、插入元素:可以使用insert()函数进行插入。4、遍历元素:可以使用迭代器或者foreach。3、删除元素:可以使用remove()函数。
2023-05-31 19:13:47
3039
原创 QVector频繁插入操作会有什么结果
QList对于插入操作的开销较小,因为它使用了链表数据结构,在插入元素时只需要调整指针,而不需要进行数据复制和内存分配。频繁的插入操作可能导致大量的数据复制,特别是在向已经存满的 QVector 中插入元素时。最佳选择取决于你的具体需求和使用场景。性能下降:由于频繁的内存分配和数据复制操作,频繁插入操作可能导致性能下降。频繁的插入操作可能导致多次内存分配和复制操作,增加了内存管理的开销。然而,对于大量元素的存储和访问操作,QVector可能更有效率,因为它提供了连续内存存储,并且支持通过索引快速访问元素。
2023-05-31 18:31:49
299
原创 VMware 安装报错问题Failded to install the hcmon driver
网上搜了很多相关问题,大多都是说要删掉注册列表或者hcmon.sys,可是电脑找了很久,硬是没有,Vmware变鸡贼了,这个问题隐藏的很深,其实就是删掉hcmon.cat这个文件就行了,以后可能还会改,那就直接在C盘搜索hcmon相关文件直接删掉就行了,VMware 15是删掉hcmon.cat这个文件,在C:\Windows\System32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}这个目录下...
2021-11-11 20:02:55
1576
原创 Qt调用winapi时,涉及到UNICODE宏问题
在Qt默认UNICODE编码,在调用WINAPI时会涉及到UNICODE宏问题,此时在.pro文件中添加:DEFINES -= UNICODE 即可屏蔽掉UNICODE宏调用函数
2021-09-15 19:33:29
481
原创 Qt 表格 搜索
通过Qt构建model/view,模型视图模型,在主界面生成linedit搜索框核心代码:信号槽 connect(search,&QLineEdit::textChanged,this,&MainWindow::onsearch);搜索槽函数:void MainWindow::onsearch(){ if(search->text() == ""){ for(int i=0;i<procStatus->getMo
2021-09-15 19:25:41
565
原创 使用git时将代码拉下来以后放在另一个本地仓库,在上传远程仓库冲突问题
在新建仓库中操作:git initgit add filegit commit -mgit push origin master报错:! [rejected] master -> master (fetch first) error: failed to push some refs to 'ssh:..."可以把远程库同步下来:执行:git pull origin master --allow-unrelated-histories在本地库里打...
2021-09-06 18:05:11
277
原创 Qt Installer Framework桌面上创建快捷方式
在installscript.qs中添加:Component.prototype.createOperationsForPath = function(){ if (installer.value("os") === "win") { try { component.addOperation("CreateShortcut", "@TargetDir@/App.exe", "@DesktopDir@/App.lnk"); } catch (e) {
2021-08-25 18:32:48
1214
原创 C++ extern “C“的作用
1、extern 与"C"在一起时,用于修饰代声明码部分在编译的时候执行C语言逻辑。在C与C++混合编程时,由于C语言是不具有重载功能的,在与C++混合编程过程中同名函数会被误操作,比如函数void func(int a,int b);void func(float a,float b);不加extern "C"修饰,在代码编译后会被重命名为_func_int_int,与_func_float_float,如果使用C语言标准进行编译,则两个函数的名称都为_func。因此在C/C++混合编程过程中必须使用
2021-08-24 17:25:11
187
原创 C++空类产生默认产生哪些类成员函数
一个空类:class Empty{ Empty(); //缺省构造函数 Empty(const Empty&); //拷贝构造函数 ~Empty(); //析构函数 Empty& operator = (const Empty&); //赋值运算符 Empty* operator&(); //取址运算符 const Empty* operator&() const; //取址运
2021-08-20 13:06:59
269
原创 C++ struct与class的区别
可以归纳为:struct A{ char a;};struct B : A{ char b;};1、struct作为数据结构实现体,它的数据访问默认是Public公有的,class作为对象的实现体,它的成员变量访问默认是Private私有的。struct A{};class B : A{};//私有继承struct C : B{};//公有继承 struct可以继承class,class也可以继承struct,是Public公有继承还是Private私有继承
2021-08-19 13:04:08
406
原创 Qt tabWidget切换tab时会触发tab页面的LineEdit 的editingFinished()信号函数
在使用tabWidget时在tab页内嵌子界面,子界面中添加lineEdit输入框控件,实现输入回车得出结果的设计,很容易想到用lineEdit的信号函数editingFinished(),但是使用时发现,这个函数会触发两次,当按返回或者回车键时,或者行编辑失去焦点时,发出此信号。如果:QLineEdit设置了validator() orinputMask()函数,验证器or输入掩码,并按了返回或回车键,信号只有在 输入内容符合输入掩码 或验证器返回 QValidator::Acceptable时 发出
2021-07-02 11:08:14
2793
原创 完全卸载visual studio community2015
在控制面版找到应用程序卸载与更改找到vs2015应用程序,卸载等待卸载完全后,下载github上的vs卸载工具TotalUninstaller,下载解压后,用管理员权限运行Setup.ForcedUninstall输入Y/y,就能完全卸载vs2015了,卸载完全后再次安装便可以修改安装路径。...
2021-06-22 14:27:04
1934
原创 vscode 使用安装C/C++插件,无法使用终端编译问题
下载Mingw-w64编译器下载点击,下载后解压,解压后进入bin目录下,复制路径,将路径添加到系统环境变量中Path中,关闭vscode重启即可
2021-06-21 16:26:25
581
原创 QLabel添加gif动态图片
包含头文件:#include <QMovie> QMovie * movie = new QMovie("E:\\Project\\LuClient\\09\\addOrder\\gif\\4.gif");//路径要用双斜杠 ui->label->setMovie(movie); ui->label->setScaledContents(true); movie->start();...
2021-06-15 11:00:35
950
原创 Qt 使用glog时中文乱码问题
使用谷歌的glog有时候会遇到一些中文乱码问题,原因其实归结为以下几种:1、中文字符串C++ string类型与QString类型的转换问题。这个问题可以通过:toStdString()这个函数来进行转换:例如stirng str1;QString str2 = str1.toStdString();122、字符编码问题,比如之前是GB2312或者GBK编码,可以通过,.fromUtf8()。3、如果字符串类型之前为char类型,可通过.c_str()来转换。4、如果打印字符串为字符数
2021-06-04 14:26:51
1355
原创 Qt 使用model/view来构建tableview代码,如何清理table数据
在使用model/view来实现表格数据显示时,有时候涉及清理数据,可以通过使用Qt库函数来实现,比如clear()函数,调用这个函数就将表格数据全部清理了首先可以通过QList定义你用来缓存数据的结构,比如QList<TableData> m_data,然后在model.cpp里面编写调用chear()函数方法,void model::removeData(){ m_data.clear();}然后通过界面new出的table对象调用这个方法,gradeTabl
2021-05-25 14:45:29
1937
原创 Qt Creator运行程序时,如何调出控制台
方法一: 在工程.pro文件里面添加CONFIG += console.方法二: 注意:使用方法二之后方法一就不管用了,比如你想在工程运行的时候去掉控制台,忘了是否勾选 方法二中的 Run in terminal ,在pro文件中如何修改都是没用的,以及网上其他通过代码方法去掉控制台都是不可行的。...
2021-05-25 13:36:28
6872
Qt tableview 模型/视图结构,使用QSortFilterProxyModel实现表格过滤排序
2024-01-25
程序员有哪些赚钱渠道
2021-07-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人