![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
qt
文章平均质量分 62
ccloud11
分享技术就如同分享快乐一样,独乐乐不如众乐乐。
展开
-
Qt实现画笔、擦除、保存功能
使用Qt的QPainter类,我们很容易就可以实现一个类似于画笔的功能,再重载QPaintEvent函数我们就可以使用这个画笔绘制图形到界面上。原创 2024-04-01 16:12:10 · 936 阅读 · 0 评论 -
Qt实现无边框圆角窗口
这时候我们可以看到圆角是没有生效的(这是在windows11下,windows10下是有圆角的,但是还是有背景色)。解决方法:我们可以使用另外一个widget覆盖在QDialog窗口上,但是这个widget也需要设置圆角和背景色。我们在使用QDialog的时候许多场景下都不需要默认的标题栏,这时候我们需要设置他的标志位。由于现代的窗口风格,我们一般会设置窗口为圆角边框的样式,我们可以使用qss的方式来进行设置。但是这时候我们的窗口都不见了,因为背景色是透明色。这时候我们可以将背景色设置为透明的。原创 2024-04-01 15:33:08 · 616 阅读 · 0 评论 -
Qt之QLabel介绍
QLabel是QT界面中的标签类,它从QFrame下继承,QLabel 类代表标签,它是一个用于显示文本或图像的窗口部件。我们主要介绍一下QLabel的一些简单的使用。原创 2024-01-30 22:51:57 · 903 阅读 · 0 评论 -
Qt使用中文字符串乱码的问题
我们在使用qt的时候有时候会遇到打印中文字符串的时候出现中文乱码的问题,主要是由于Qt的QString字符串存储的方式是使用utf-8的编码方式,如果我们本地的文件是使用GBK方式的编码再使用中文字符串的话就会出现打印乱码的情况。原创 2024-01-27 17:28:25 · 1352 阅读 · 0 评论 -
QtCMake工程提升类后找不到头文件
我们都知道qt6版本现在主推用cmake进行构建工程,但是使用Qt的ui文件后想要自己定义一个类然后提升界面的控件为这个类,通常会提示找不到头文件,出现问题的原因是Qt creator通过ui文件生成的程序和存放头文件的目录不在一起,但是生成的程序里会在生成目录下找头文件,所以肯定是找不到的。解决办法,在cmake文件中添加向工程目录查找的命令。原创 2023-11-30 23:29:47 · 1437 阅读 · 4 评论 -
qml制作简单的播放器--MediaPlayer
在QML应用程序中,最基本的媒体应用是播放媒体。使用MediaPlayer元素可以完成它,如果源是一个图片或者视频,可以选择结合VideoOutput元素。MediaPlayer元素有一个source属性指向需要播放的媒体。当媒体源被绑定后,简单的调用play函数就可以开始播放。一旦主要部件完全初始化,例如在Component.onCompleted中,播放器的play函数被调用。如果你想播放一个可视化的媒体,例如图片或者视频等,你需要配置一个VideoOutput元素。原创 2023-11-19 15:54:36 · 653 阅读 · 0 评论 -
qml之ui控件
该用户界面的关键组件是StackView。它允许我们将页面放在一个堆栈(stack)上,当用户想要返回时,可以弹出(pop)该堆栈。PageIndicator(底部的三个点)显示用户当前处于活动状态的页面,这有助于导航。对于这个示例,我们创建了一个用户界面,该界面由三个页面组成,用户可以在其中切换。Qt Quick控件用于创建由标准化组件(如按钮、标签、滑块等)构建的用户界面。这边贴出main.qml的代码,具体控件可以查看底部仓库代码链接。我们将创建一个页面树,可以通过上级页面访问下级页面。原创 2023-10-28 16:45:25 · 312 阅读 · 0 评论 -
qml之动态元素类型
第二个对象使用Behavior on动画。此行为告诉属性它应该为值的每个更改设置动画。可以使用SequentialAnimation或ParallelAnimation元素,它们充当其他动画元素的动画容器。这些分组动画本身就是动画。为了使UI更具吸引力,应该添加一些带有动画效果的过渡。动画被定义为其自己的元素,几乎可以位于文档中的任何位置。分组动画也可以嵌套。例如,一个连续动画可以有两个并行动画作为子动画。属性的值更改可以由动画控制。缓动属性允许影响属性更改的插值曲线。点击不同的曲线会有不同的动画效果。原创 2023-10-22 16:06:44 · 277 阅读 · 0 评论 -
qml介绍
从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。QML 是一种基于 JavaScript 的声明式语言。在 Qt 5 中, QML 有了长足进步,并且同 C++ 并列成为 Qt 的首选编程语言。也就是说,使用 Qt 5,我们不仅可以使用 C++ 开发 Qt 程序,而且可以使用 QML。原创 2023-10-15 17:39:20 · 138 阅读 · 0 评论 -
qml之基础语法
问题是,当焦点转移到input2元素时,TlineEditV1内的顶级项接收到焦点,并且没有将焦点转发到TextInput。Item是所有视觉元素的基础元素,因此所有其他视觉元素都从Item继承。4、可以使用property限定符向元素添加新属性,后跟类型、名称和可选的初始值(property<类型><名称>:<值>)。例如,要移动和缩放一个正方形,我们可以使用上、下、左和右键来平移元素,使用加号和减号键来缩放元素。2、对于单行注释,可以使用//,对于多行注释,可以通过/* */进行注释。原创 2023-10-15 19:07:51 · 785 阅读 · 0 评论 -
Qt实现简单的漫游器
漫游器的实现主要是通过Qt的窗口事件触发后将触发产生的位置偏量给摄像机类进行计算,从摄像机类中得到视图矩阵将模型的位置进行改变。由于是最简单的漫游器,所以我们实现的版本只需要一个顶点着色器和一个片段着色器即可。这边实现了一个可以对模型进行上下左右移动,移动视角,放大缩小的操作。Qt主要是使用QOpenGLWidget来实现opengl的功能。偏航角默认为90度,灵敏度主要用于控制鼠标移动时视角的变化量。以上是最简单的实现版本。摄像机类初始化了几个变量。原创 2023-08-19 18:12:26 · 1130 阅读 · 1 评论 -
c++实现Qt信号和槽机制
信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁。信号和槽机制是 Qt 的核心机制,可以让编程人员将互不相关的对象绑定在一起,实现对象之间的通信。观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。原创 2023-08-06 22:57:38 · 585 阅读 · 0 评论 -
c++实现Qt对象树机制
Qt 运用对象树模式,当父对象被析构时,子对象自动就 delete 掉了,不用再写一大堆的代码了。比如创建一个 QObject 并指定父对象时,就会把自己加入到父对象的 childre() 列表中,也就是 QList 变量中。我们知道Qt对象在创建的时候都可以指定一个父指针,Qt就是通过这个操作将子对象添加到父对象的容器中进行管理,当父对象析构的时候就会遍历这个容器对子对象进行析构,这样子的话用户就不需要自己进行析构子对象。所以,对象树在 GUI 编程中是非常非常有用的。原创 2023-08-05 17:55:41 · 279 阅读 · 1 评论 -
Qt Creator创建控制台项目显示中文乱码
今天在使用Qt Creator创建c++项目的时候显示中文乱码,这里分享一下解决办法,主要是由于我们的电脑大部分是GBK编码格式的是,然后Qt默认创建的一般是utf-8编码类型的。编码类型不一致就会导致中文乱码的现象。从控制台的属性可以看到我们的程序当前使用的编码方式是GBK。但是我们的Qt编译器使用的是utf-8。选择GBK按编码保存即可。原创 2023-07-22 11:52:37 · 671 阅读 · 1 评论 -
Qt实现扫雷
int m_x;int m_y;int m_mine;这个类是地雷类,主要是利用一个二级指针来管理地雷。当用户点击扫雷区后会在该类进行处理 ,并改变存储的值。mainwindowprivate ://鼠标点击事件 public slots : void onTimer();该类主要负责绘制操作i ++) {j ++) {原创 2023-06-17 16:48:04 · 747 阅读 · 0 评论 -
qt之信号与槽
使用connect()可以让我们连接系统提供的信号和槽。但是,Qt 的信号槽机制并不仅仅是使用系统提供的那部分,还会允许我们自己设计自己的信号和槽。原创 2023-02-06 21:50:31 · 407 阅读 · 2 评论 -
qt创建项目的流程及基本介绍
但是我们发现如果使用的是show方法这样子按钮就不在界面上,而是重新创建一个新的窗口显示出来,这是由于show方法是以顶层方式弹出窗口的。这边我们通过源码可以发现 QPushButton也是继承于QWidget类的,所以他也有show方法,这边选择的是构建套件,MSVC版本即在VS中进行编译,我们选择MinGW使用qt编译器进行编译。TARGET = 01_FirstProject //目标 生成的.exe程序的名称。然后我们创建一个按钮在显示界面上,qt的按钮类叫QPushButton。原创 2023-02-05 00:07:17 · 1066 阅读 · 0 评论 -
利用qt播放音频数据
这边写入即是利用c语言打开二进制文件的方式进行读取后写入缓冲区,这边需要注意的是,缓冲区的大小是有大小限制。由于磁盘读取文件的速度很快,如果超出缓冲区大小的话播放音频会出现问题,所以在这边做出限制,当缓冲区的剩余空间小于本次要写入的大小时就跳过本次写入,代码如下。首先需要准备好一段pcm的原始音频数据,这边可以通过ffmpeg的命令将mp4视频格式中的音频提取出来并按照pcm的格式进行保存。保存的安装short类型,即16位的数据,字节存储格式为小端模式。最后利用QIODevice类向缓冲区中写入数据。..原创 2022-07-31 23:48:07 · 2026 阅读 · 0 评论 -
opencv播放视频显示在qt的gui界面上
按下打开视频利用opencv的read函数将读取到的一帧一帧的图像显示在qt的gui界面上线程类利用信号将图片一帧一帧的传给gui界面gui界面接收到线程发送过来的图片后利用重绘事件来更新画面接下来是源码哦//线程类#ifndef PLAYVIDEOTHREAD_H#define PLAYVIDEOTHREAD_H#include <QThread>#include <opencv2/opencv.hpp>#include &l...原创 2021-10-27 17:05:47 · 793 阅读 · 2 评论 -
opencv透视变换的一个小demo
上图经过透视变换后贴到下图红色框选的那个位置先介绍一下opencv的鼠标点击事件吧,opencv有自带的鼠标点击事件的函数void setMousecallback(const string& winname, MouseCallback onMouse, void* userdata=0)winname:窗口的名字onMouse:鼠标响应函数,回调函数。指定窗口里每次鼠标时间发生的时候,被调用的函数指针。 这个函数的原型应该为void on_Mouse(i...原创 2021-10-22 10:06:27 · 807 阅读 · 0 评论 -
在qt上实现qq的客户端(附源码)
最近做了一个qq的项目,在qt上实现qq的客户端,在vs上实现qq的服务器,先让大家看看效果图吧登录模块,按下登录后会连接服务器登录后的好友列表,会显示所有的在线好友有新好友上线会自动更新好友列表双方进行聊天,互相收到消息群聊功能,一个人发送消息其他在线的人都会收到#ifndef CHATWIDGET_H#define CHATWIDGET_H#include <QWidget>#include <QPushButton&g...原创 2021-10-14 11:10:47 · 3774 阅读 · 8 评论