自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 QML学习记录:并排页面切换效果的实现

定义一个ApplicationWindow窗口,通过添加SwipeView和PageIndicator来实现页面切换效果和显示当前页面位置的指示器。

2024-04-08 08:45:04 138

原创 QML学习记录:嵌套页面的实现

当StackView的深度大于1时,ToolButton文本显示为"◀",表示返回上一页;否则,文本显示为"☰",表示打开Drawer。当点击其中一个ItemDelegate时,它会通过stackview.push()方法将相应的页面推送到StackView中,并关闭Drawer。它提供了向前和向后导航的功能,可以在堆栈中推入新页面,并在不需要时将页面弹出。在上面的代码中,它设置为填充父项,并且初始页面是Home。这段代码展示了一个带有侧滑菜单和标题栏的界面,在StackView中显示多个页面。

2024-04-02 14:03:00 269

原创 QML学习记录:移动版风格的侧滑菜单Drawer和工具栏实现

要在QML中使用Material风格,需要引入QtQuick.Controls.Material模块,并在ApplicationWindow或Window中添加Material样式。QML中可通过使用Qt Quick Controls 2中的Material风格来实现移动版风格。Material风格提供了一套现代化、响应式的移动版界面组件和样式。

2024-04-01 16:53:41 192

原创 QML学习记录:菜单栏的实现

首先,你需要创建一个MenuBar元素作为菜单栏的容器。然后,在MenuBar中添加多个Menu元素来表示不同的菜单项。每个Menu都可以包含一个MenuItem元素,用于显示下拉菜单。可以根据需要嵌套Menu元素来创建多级子菜单。在QML中,可以使用MenuBar,Menu,和MenuItem元素来实现菜单栏。

2024-04-01 13:45:49 138

原创 QML学习记录:通过鼠标拖动Rectangle的位置

当通过鼠标拖动Rectangle 的位置时,可以使用Qt Quick的MouseArea组件来实现。

2024-03-29 11:03:56 276

原创 QML学习记录:背景半透明但字体不透明的效果实现

使用一个带有rgba值的颜色来设置矩形的背景颜色。rgba中的alpha通道值设置为0.5,表示半透明的效果。这样矩形的背景颜色就会半透明显示。同时,Text元素的背景将设置为透明,字体颜色设置为不透明的黑色。

2024-03-29 10:30:01 159

原创 QML学习记录:实时显示当前日期和时间到标签(Label)上

在上述代码中,创建了一个Timer对象来每秒触发一次定时器,并在定时器触发时调用updateDateTime()函数来更新日期和时间。通过定时器的interval属性,可以调整更新频率,此处设置为每秒钟更新一次。在Label的text属性中,我们将当前日期和时间的字符串设置为标签的文本。可以使用Timer组合Date对象来定时更新标签的文本。

2024-03-29 09:08:44 186

原创 QML学习记录:播放视频文件

MediaPlayer的source属性添加要播放的视频文件。source属性接受一个URL类型的值,可以是本地文件路径或远程文件的URL。只需要两个类MediaPlayer和VideoOutput,MediaPlayer加载需要播出的视频文件,注意2:windows和linux播放视频常常需要安装视频解码器,,应该改成"file:///video.webm".这里使用的是文件的绝对路径,并使用URL编码(:实际验证中发现示例中的文件路径写法会报错。windows:安装K-Lite。

2024-03-29 08:40:37 237

原创 QML新建QML后编译出错的解决方法

将编译文件夹下的.qmake.stash文件删掉,重新编译,发现可以编译通过,且不提示该错误了。以上方法,仍未解决问题的话,可以删掉Release文件夹或Debug文件夹的东西,如下图所示。重新构建工程,错误仍未解决。

2024-03-23 11:43:51 245

原创 QMediaplayer播放本地文件mp4和avi失败

https://blog.csdn.net/chyuanrufeng/article/details/108021404

2024-03-19 13:40:22 353

原创 C++线程饥饿

意思是多个线程都在执行任务,但是只有一个cpu,如果想要大家都有机会执行自己的任务,那么必须是每个人执行一会之后,让出资源让别人执行,谁都不能一直占着cpu,如果某个线程一直占着cpu,那么造成的结果就是别的线程一直没有机会运行,从而导致饿死。这会导致其他线程无法被执行并出现线程饥饿。:当某个高优先级的线程不断占用CPU资源而不释放时,低优先级线程可能无法获得足够的CPU时间,从而导致线程饥饿。:线程调度策略可能不公平地分配CPU时间,导致某些线程无法得到充分的执行时间,从而出现线程饥饿现象。

2024-03-08 08:34:48 346 1

原创 C++的原子操作

对于复杂的操作或者需要多个操作组合的情况,原子操作可能无法满足需求,需要2.使用其他同步机制。原子操作提供了一种机制,可以确保对共享数据的操作是原子的,即不会被中断或交叉干扰。2.简单易用:原子操作提供了直接的语法和API,相对来说更加简单易用,并且不需要显式地进行加锁和解锁的操作,减少了编程的复杂性。不提供上下文切换:原子操作不能提供像互斥锁那样的上下文切换能力,因此无法保证线程的顺序执行或者防止饥饿等问题。1.性能较低:互斥锁的实现通常涉及线程的上下文切换和资源竞争,因此相对于原子操作来说,性能较低。

2024-03-07 14:00:27 399

原创 std::lock_guard的使用

std::lock_guard 是 C++ 标准库中提供的一个RAII风格的互斥锁封装类,用于简化互斥锁的使用。需要注意的是,一旦std::lock_guard对象被创建,它将自动上锁,并且无法手动解锁。std::lock_guard时要确保作用域内的代码不会需要手动解锁的情况。的方式,确保在退出作用域时始终正确地释放互斥锁。即 lock 互斥量后应该尽早 unlock,需要互斥访问共享资源的那段代码称为。,临界区范围应该尽可能的小,

2024-03-06 13:53:06 410

原创 遍历QMap的方式

3.使用常量迭代器:如果你不需要修改 QMap 中的值,你可以使用常量迭代器,这可以提高代码的效率。1.使用范围基础的 for 循环:这是最简单的方法,但是只能在 C++11 或更高版本中使用。在 Qt 中,你可以使用多种方式来迭代 QMap。2.使用迭代器:这是一个更传统的方法,可以在任何版本的 C++ 中使用。

2024-02-28 13:39:12 584

原创 删除 QWidget 的所有布局和控件

在这个例子中,widget 的所有控件和布局都会被删除。请注意,deleteLater() 函数会在事件循环的下一次迭代时删除控件,这样可以防止在控件还在被使用时就被删除。1.获取 QWidget 的布局。2.删除布局中的所有控件。

2024-02-23 16:49:28 509

原创 Qt 关闭窗口时窗口被隐藏,而不是被销毁。

在Qt中,通过调用窗口的hide()函数可以将窗口隐藏起来,从而实现关闭窗口的效果。

2024-02-19 09:08:15 418

原创 将QStringList按指定分隔符连接为一个字符串

类提供的**join()**函数,我们可以直接将字符串列表strList按照指定的separator分隔符连接起来,无需手动遍历和拼接字符串。

2024-02-18 14:06:50 504

原创 Qt 通过回调遍历指定层数的文件夹

【代码】Qt 通过回调遍历指定层数的文件夹。

2023-12-14 14:01:29 102

原创 Qt报错:未声明的函数

有多的删除,构建目录也要确认是否正确,特别是从其他地方copy的程式,构建目录不对会产生莫名其妙的问题。头文件里面声明了函数但是使用时编译报错,显示使用了未声明的函数,但F2又能跳转到头文件中去。这时要考虑是不是你本地有两个一样名字的头文件,但是内容不同。一般都会手动取消shadow build。默认不选中Shadow build设置方法。

2023-06-14 14:08:40 226

原创 qt 获取groupbox的子控件

这里父控件是QGroupBox,子控件是QLabel。

2023-06-13 09:56:30 452

原创 将sqlite数据库中的空格都去掉

比如我现在有表 person,其中的一个字段是 name,name中有些是“张三”,但是有些是“张 三”。请执行以下SQL语句。

2023-06-09 11:36:33 275

原创 QTableView添加复选框快速勾选

这样点击单元格确实可以实现勾选和取消勾选目的,但是发现点击复选框位置时没有反应,这是为什么呢?来看看鼠标点击单元格和直接点击复选框会触发如的信号。原来是因为点击复选框位置时由于我们的on_tableView_clicked参函数 ,勾选的动作会做两次,状态从未勾选>勾选>未勾选。现在想要点击单元格内的任何地方都能实现勾选的动作。第一步响应tableview的click信号。使用起来发现勾选不太方便,必须点到复选框,

2023-06-02 18:28:49 1865

原创 C++中的符号常量

【代码】C++中的符号常量。

2023-05-30 10:11:21 57

原创 C++动态类型识别

今天学习到使用typeid的方式。typeid关键字能够获得任意变量的类型信息,也是C++专门提供用于类型识别的方式。程序执行过程中有时我们需要知道基类指向的对象到底是子类还是基类,也就是动态类型识别。//获取到的是Child的类型名。// 获取到的是Base的类型名。进行动态类型识别的方法挺多的,比如利用多态对派生类进行相应ID的标识等等。C++中允许基类指针指向子类的对象。

2023-05-26 13:07:16 66

原创 C++可变模板参数的使用

这里注意我们还要准备一个递归终止函数,参数包Args…在展开的过程中递归调用自己,每调用一次参数包中的参数就会少一个,直到所有的参数都展开为止,当没有参数时,则调用非模板函数终止递归过程。最近在封装打印函数,需要支持不同参数个数和类型,用了函数重载感觉有点麻烦且不太能满足所有的条件。**可变模版参数函数:**可变模版参数传进来的是一个参数包,我们需要将参数包展开。:声明可变参数模板时需要在typename或class后面带上省略号“…由于包里面的参数个数是不确定的,可以使用递归的方法展开。

2023-05-25 17:00:22 63

原创 错误C 4700 使用了未初始化的局部变量

同样的代码Qt creator编译时不会报错,这样更加危险,程序执行时产生的bug往往不好排查.编译器不允许对x进行++运算操作;这是visio studio上的效果;变量在声明或定义的时候尽量做到赋初值,因为使用未赋初始的变量会发生意想不到的错误。如下面代码:x y两个未赋初值的int型变量,编译时报错,

2023-05-25 15:15:32 646 1

原创 Qt::WA_DeleteOnClose 属性

如果它忽略该事件,则什么也不会发生。QWidget::closeEvent() 的默认实现接受关闭事件。首先它向Widget发送一个 QCloseEvent。如果Widget接受关闭事件,则Widget将被。QWidget控件在点击关闭按钮时会自动触发槽函数close(),Qt给出帮助文档。关闭此Widget。如果Widget已关闭,则返回 true;Qt::WA_DeleteOnClose的帮助文档中指出其功能是。如果想要关闭时删除Widget而不是仅仅隐藏,可以通过设置属性。

2023-05-24 08:36:43 313

原创 QT 向资源文件中添加新的图片并使用

最近遇到一个问题,向资源文件中添加新的图片用作控件ion,由于操作手法不对导致编译运行后界面并没有显示icon出来。经过上面的流程以后新的图片就被加入到资源文件中了。

2023-05-09 10:19:31 207

原创 QTreeWidget常用方法使用和属性设置

QHeaderView *QTreeView::header() const 返回标题,获得该对象后可以对TreeWidget 的标题做设置。设置选择模式,QAbstractItemView::ExtendedSelection:支持按ctrl键自由单选,按Shift键连续多选。如果模型包含大量节点,此功能将需要一些时间来执行。返回给定索引处的顶级节点,如果该节点不存在则返回 0。递归方法获取给定节点以及其所有上层节点的节点名。为了使节点可见,滚动视图到指定节点处。返回给定坐标处的节点。

2023-05-08 14:06:02 1365

原创 QTableView常用属性设置

12.当控件的setContextMenuPolicy设置为Qt::CustomContextMenu时,右键后会发出信号customContextMenuRequested(),实现信号槽的绑定后就可以时间右键菜单功能。如果该属性为真,项目背景将使用QPalette::Base 和QPalette::AlternateBase 绘制;5.选择item模式,此属性控制用户是否可以选择一个或多个项目,以及在多项目选择中,选择是否必须是连续范围的项目。否则背景将使用 QPalette::Base 颜色绘制。

2023-05-06 18:20:56 1525

原创 QTreeWidget的遍历选择和取消上一次的选择

遍历选择和取消上一次的选择。

2023-05-05 15:58:55 553

原创 QTableview实现界面数据的复制粘贴

这个类通过setText(),setImage()或者setPixmap()函数可以将数据放置到剪贴板内,也就是通常所说的剪贴或者复制的操作;使用text(),image()或者pixmap()函数则可以从剪贴板获得数据,也就是粘贴。的快捷键都能实现,使用**QApplication::clipboard()**函数获得系统剪贴板对象。这个函数的返回值是QClipboard指针。

2023-05-05 13:42:57 1775 6

原创 Qt 打开文件路径

项目中遇到一种情况,打开文件夹目录但并不需要选择文件,

2023-04-26 14:09:27 725

原创 C++ time_t和string的相互转换

时间格式:“YYYY-MM-DD 11:11:11”string转日期时间。日期时间转string。

2023-04-20 09:42:44 384

原创 C语言实现时间的加减

【代码】C语言实现时间的加减。

2023-04-19 18:45:04 1373

原创 Qt::遍历tableview中的数据

最近有个需求将tableview中的数据 导出到Excel表。

2023-04-07 16:10:53 654

原创 Qt::导入Excel表格类QXlsx的下载和使用

1.下载QtXlsx源代码。2.在项目中直接加入源码。

2023-03-30 18:58:21 919

原创 c++ 子类构造函数初始化及父类构造初始化

子类创建对象调用自己的构造函数时,一定会先调用父类的构造函数.所以我们一定要保证父类有可以调用的构造函数。

2023-03-30 16:43:20 171

原创 c++11的新特性强类型枚举

最近遇到一个新的枚举写法,enum class ,一查才晓得是c++11的新特性强类型枚举,强在哪里呢?旧的写法是支持隐士类型转换的,我们可以直接给int型的变量赋值;这是因为enum的成员名字全局可见。我们来定义两个枚举类型。

2023-03-15 13:53:14 50

原创 jsoncpp中文乱码问题

最近用jsoncpp遇到了保存文件中带中文会乱码的问题,找了很多方法最终解决这个问题。为了Qt默认msvc编译器使用utf-8编码,在pro添加。法一为原来的写法,法二为修改后的。

2023-03-08 09:15:15 611 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除