怎样学好QT
文章平均质量分 72
分享学到的QT知识
半醒半醉日复日,花落花开年复年
这个作者很懒,什么都没留下…
展开
-
【QT】Qt的随身笔记(持续更新...)
总结的一些Qt小知识原创 2023-09-20 13:56:23 · 834 阅读 · 0 评论 -
【QT】如何自定义QMessageBox的窗口大小,通过继承QDialog重新实现美观的弹窗
可以看出QMessageBox原有的弹窗看起来非常的不美观,有时候大有时候小,只能使用QMessageBox自带的图标,而且**不能自定义**窗口的**大小**,那是因为在源码中将其弹窗大小设置成了比较合适的大小,所以不能自定义改变弹窗大小。可以看出通过样式表的方法也不太美观,其中text没有居中。在对某一个组件设置了setObjectName()属性之后,我们可以通过objectName在外面获得这个组件。可以看出在布局时,其icon总是处在第0行第0列的位置,且其Aliment设置的是Top,所以原创 2023-06-30 15:12:44 · 8050 阅读 · 9 评论 -
【QT】枚举常用宏(Q_ENUM,Q_FLAG,Q_DECLARE_FLAGS,Q_DECLARE_OPERATORS_FOR_FLAGS)
1. 使用Q_ENUM之前,必须在类中先声明Q_OBJECT或Q_GADGET宏。2. Q_ENUM(枚举类型)必须放在枚举声明之后,放在前面编译器会报错。3. 用Q_ENUM声明的枚举,会自动注册到Qt元类型系统,可以使用静态函数QMetaEnum::fromType()来获取QMetaEnum。4. Qt 中,模板类 QFlags 提供了类型安*的方式保存 enum 的逻辑运算结果,来解决类型不安全的问题。原创 2023-06-25 17:02:02 · 3617 阅读 · 0 评论 -
【QT】如何检测目录或文件中的内容被修改,可以使用QFileSystemWatcher类进行检测
QFileSystemWatcher类提供了一个接口,用于监视文件和目录以进行修改。QFileSystemWatcher通过观察指定路径的列表来监视文件系统中文件和目录的更改。调用addPath()来监视特定的文件或目录。可以使用addPaths()函数添加多个路径。现有的路径可以通过使用removePath()和removePaths()函数删除。QFileSystemWatcher检查添加到它的每个路径。原创 2023-04-24 09:11:03 · 2304 阅读 · 2 评论 -
【QT】如何为自定义的Dialog添加确定取消按钮,可以使用QDialogButtonBox类
如果你想在MainWindo界面中得到Dialog中按下确定键时的一些业务,例如,在Mainwindow界面新建项目,弹出新建项目的dialog,然后将新建项目界面获得的信息显示到MainWindow界面中,此时,你就需要在Dialog中发送一个信号,即。来判断dialog按下的是哪个按钮,而不用connect再传递一个信号给外面,也就不用接收确定按钮的connect函数和槽函数。QDialogButtonBox在添加按钮时可以为按钮添加Role角色,这个非常重要,这样的话在外面调用时,直接使用。原创 2023-04-21 11:23:10 · 2584 阅读 · 0 评论 -
【QT】如何调整 comboBox下拉列表的间距或高度以及使下拉列表的字体居中
默认的QComboBox的下拉列表看起来非常的拥挤,且不美观。那怎样调整comboBox下拉列表的间距或高度呢?请看下面的方法:原创 2023-04-19 11:21:19 · 6834 阅读 · 0 评论 -
【QT】详细介绍Qt的窗口属性:Qt::WA_DeleteOnClose属性
如果widget接受了关闭事件,窗口将会隐藏(实际上调用hide())。默认情况下widget会接受关闭事件,我们可以重写QCloseEvent事件,可以选择接受或者不接受。即接收到QCloseEvent事件后,除了调用hide()方法将窗口隐藏,同时会调用deleteLater()方法将窗口释放掉,不会再占用资源。当我们创建一个窗口(MainWindow, Widget, Dialog, QMessageBox, 等等)后,我们一般会调用close()方法来关闭窗口。对比该应用程序所占用的资源大小。原创 2023-04-17 11:41:14 · 2075 阅读 · 0 评论 -
【QT】MainWindow中如何为菜单栏或工具栏中的Menu或Action设置快捷键
在为QMenu或Action设置text时,在text中的某个字母前加上&,在界面显示时你会发现:显示的text中没有&这个符号,只会显示text。这是因为在text中某个字母前加上&的作用是设置快捷键,当你按下Alt键时,其相应的text中&符号后面的字母会显示下划线,快捷键的使用方法是。第一种:先按住Alt,再按P,其显示的N会有下划线,再按N就会触发新建项目。在使用setShortcuts时,其action的后面会显示快捷键。按下Alt键时,其p下面会有下划线,表示是有快捷键的,快捷键为P。原创 2023-04-14 17:33:25 · 2448 阅读 · 1 评论 -
【QT】在公司为了统一代码的风格,那如何在Qt Creater中进行设置
试着想一下,一个程序员写一个程序,commit到团队的程序管理库里面,如果团队中的其他开发者需要这个功能,那么他就会去阅读这个源码,正所谓一千个读者,一千个哈姆雷特。就算是代码这样对于计算机来说非常严格的语言,而在我们人类看来绝对无法抛开我们固有的逻辑思维,而像计算机一样去思考,像程序编译器一样去理解这段程序,我们可以做到的就是阅读源码,梳理出自己的一套逻辑,然后理解这段程序的作用是干什么。设置好统一的代码风格之后,无论你自己写代码的习惯是怎样的,在你保存之后,其代码的格式都会统一,非常的方便。原创 2023-04-06 11:03:10 · 695 阅读 · 0 评论 -
【QT】详细解释一下QDialog中exec与open的区别
使用exec进行显示,即按钮Btn3实现的窗口,可以看到:对话框是模态的,并且在对话框显示之后,其后面的代码并不会执行,即“333”并不会打印,也就是说exec显示的窗口会一直阻塞后面的代码不会执行,直到用户关闭它之后,才会执行后面的代码,此时”333“会打印出来。使用对象的方式实现一个对话框的显示,并使用open进行显示,即按钮Btn1实现的窗口,可以清晰的看到:对话框窗口是一闪而过的,但不影响open之后的代码的运行,其“111”还是会打印出来。中,在函数体中被构造,在函数结束的时候被析构。原创 2023-03-27 10:21:41 · 2289 阅读 · 2 评论 -
【QT】QByteArray、QString、char* 的相互转化(文本形式、二进制、十六进制)
在C语言中,系统都会默认在字符串末给我们加上\0用于结束字符串,所以在打印输出时候,只要你打印格式是%s,系统知道我们要输出字符串,而且系统也可以确定字符串的长度,所以当你用%s打印字符指针p的时候就会输出字符串,如果你是以地址打印格式输出的话,系统就会给我们打印出地址, 如果你是解指针(*p),那么系统就取p指针指向的内容,此时看你自己以什么格式输出,就用什么格式打印。新建一个记事本命名为1.txt,并在里面随便写入数据,使用ZIP进行压缩为1.zip,zip压缩文件是16进制的数据格式。原创 2023-03-20 09:16:22 · 7558 阅读 · 0 评论 -
【QT】JSON如何保存(序列化)QByteArray二进制或十六进制类型的数据
其QJsonValue存储数据的类型有:bool,double,int,QString等。对于网上的QByteArray直接转化为QString类型的方法,是对于文本字符串的。QString只有在数据是文本的时候才能使用,而不是二进制或十六进制的。原创 2023-03-17 15:59:14 · 2216 阅读 · 0 评论 -
【QT】如何获取屏幕(桌面)的大小或分辨率
注意:如果是多屏幕,其每个屏幕的rect是不一样的,起始坐标不同,第一个屏幕的起始坐标是(0, 0),第二个屏幕的起始坐标是(1920, 0)QDesktopWidget 提供了详细的位置信息,其能够自动返回窗口在用户窗口的位置和应用程序窗口的位置。Qt 6.0 及之后版本,QDesktopWidget 已从QtWidgets 模块中被彻底移除。Qt5开始,QDesktopWidget官方不建议使用,改为QScreen。Qt5开始,QDesktopWidget官方不建议使用,改为QScreen。原创 2023-03-06 11:40:43 · 11485 阅读 · 1 评论 -
【QT】如何快速查找和获取界面上的控件(findChild 和 findChidren)
(2)Qt::FindChildrenRecursively:查看对象的所有子对象(递归搜索)(默认值)。例如:返回parentWidget的一个名为"button1"的子QPushButton。(1)Qt::FindDirectChildrenOnly:只查看对象的直接子对象。例如:返回所有父parentWidget中所有的QpushButton。返回该对象的子对象,该子对象可以转换为类型T。T为模板,需要查找什么类型就写什么类型。返回一个该对象的所有子对象的列表。原创 2023-02-27 09:45:30 · 6736 阅读 · 0 评论 -
【QT】史上最全最详细的QSS样式表用法及用例说明
Qt样式表支持各种属性、伪状态和子控件,可以自定义小部件的外观。QSS示例,如何为全局添加QSS样式(全局加载QSS的方法)selector { attribute: value }selector:选择器,如 QWidget、QPushButton、QGroupBox等attribute:属性,如color、background-color、border、padding等value:值,与属性对应原创 2023-02-22 10:59:19 · 49132 阅读 · 10 评论 -
【QT】正则匹配 与 QRegExp
IPv4地址格式,总长度 32位=4段*8位,每段之间用.分割, 每段都是0-255之间的十进制数值。例如:正则匹配 D类IP:224.0.0.0~239.255.255.255。例如:为一个LineEdit限制输入只为数字。原创 2023-02-20 09:07:19 · 895 阅读 · 0 评论 -
【QT】UDP通信QUdpSocket(单播、广播、组播)
UDP是无连接、不可靠、面向数据报(datagram)的协议,可以应用于对可靠性要求不高的场合。与TCP通信不同,UDP通信无需预先建立持久的socket连接,UDP每次发送数据报都需要指定目标地址和端口。QUdpSocket以数据报传输数据,而不是以连续的数据流。发送数据报使用函数,数据报的长度一般少于512字节,每个数据报包含发送者和接收者的IP地址和端口等信息。UDP数据接收,首先要使用绑定一个端口,绑定端口后,socket的状态会变为已绑定状态“BoundState”。原创 2023-02-16 17:17:13 · 15618 阅读 · 2 评论 -
【QT】TCP通信(QTcpServer 和 QTcpSocket)
TCP是一种被大多数Internet网络协议(如HTTP)用于数据传输的低级网络协议,它是可靠的、面向流、面向连接的传输协议,特别适合于连续数据传输。TCP通信必须先建立TCP连接,分为服务器端和客户端。Qt提供QTcpServer类和QTcpSocket类用于建立TCP通信。服务器端必须使用QTcpServer用于端口监听,建立服务器;QTcpSocket用于建立连接后使用套接字进行通信。原创 2023-02-13 11:45:59 · 4671 阅读 · 0 评论 -
【QT】QHostInfo 和 QNetworkInterface 的使用
QHostInfo 和 QNetworkInterface 的使用原创 2023-02-10 14:31:18 · 692 阅读 · 0 评论 -
【QT】treeView列宽设置无效 或 设置标题文字无效
设置列宽之后再去按模型设置treeview会导致列宽设置失败。所有的set都必须在setModel之后,否则无效。正确演示如下,先设置模型,再去设置列宽。原创 2022-11-23 13:19:38 · 1374 阅读 · 1 评论 -
【QT】splitter实现界面部件的左右滑动
在.ui上添加一个treeView,一个Label和一个TableView。在构造函进行设置实现部件的左右滑动。原创 2022-11-22 09:26:53 · 1121 阅读 · 0 评论 -
【QT】QAbstractItemView的选择模式(SelectionMode)
QAbstractItemView的选择模式(SelectionMode)原创 2022-11-04 13:47:42 · 1085 阅读 · 0 评论