
QT
文章平均质量分 60
QT知识点
云中飞鸿--**峰
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如果编译不通过,且感觉代码没有问题,大概率就是中文引起的问题
1、设置编码为 UTF-8(带BOM)。(如果下方没有出现“高级保存选项”,只需要修改一下代码(加一个空格/空行),使得代码有新的修改(不要保存),就会出现“高级保存选项”!2、只设置编码格式,有时候仍然会报错!还要设置“行末格式”windows环境下选中CR LF即可,之后编译就正常了!二、如果中文正常,编译还是有莫名其妙的问题。原创 2024-11-08 16:29:46 · 389 阅读 · 0 评论 -
QT中 update()函数无法实时调用 paintEvent
update可以更新界面,但是使用Timer连续快速调用会卡主,可以考虑使用线程+信号槽的方式进行界面更新!信号槽函数:接收到信号,在槽函数内设置界面数值(更新界面);线程内:进行++操作,满足条件后用emit发送信号;=》后台任务++操作,和更新界面操作分离!原创 2024-11-08 15:01:32 · 993 阅读 · 0 评论 -
QT对话框
Qt 支持模态对话框和非模态对话框。使用QDialog::exec()实现应用程序级别的模态对话框使用QDialog::open()实现窗口级别的模态对话框使用QDialog::show()实现非模态对话框。通过继承QDialog类并添加控件来创建自定义对话框。使用QLayout布局管理器来组织控件,并设置适当的信号与槽来响应用户操作。转载 2024-08-19 10:49:47 · 85 阅读 · 0 评论 -
2D绘图:QPainter绘制器 与 (QPen、QFont及QBrush等属性)的使用方法
重置使用 translate(),scale(),shear(),rotate(),setWorldTransform(),setViewport() 和setWindow() 进行的所有转换。请注意,在调用 begin()时,所有绘画工具设置(setPen()、setBrush()等)都将重置为默认值。在save()之后必须有一个相应的restore()。设置了两个变换矩阵,一个效果是平移,一个效果是旋转,第一次设置平移效果,第二次设置旋转和平移效果合并,即有平移和旋转两种效果。原创 2024-08-13 14:27:01 · 997 阅读 · 0 评论 -
QTextStream文本流
QDataStream 、QTextStream 二者区别:(1)QTextStream 类:用于对数据进行文本格式的读/写操作,可在 QString、QIODevice或 QByteArray 上运行,比如把数据输出到QIODevice或QByteArray对象上,或进行相反的操作。(2)QDataStream 类:用于对数据进行二进制格式的读/写操作,QDataStreamQIODevice或QByteArray上运行,因为 QString 只存放字符数据。篇一、原创 2024-08-12 14:52:52 · 1180 阅读 · 0 评论 -
QDataStream数据流
而在实际开发过程中,时刻关注上述注意事项,有助于预防潜在的运行时错误,提升程序的稳健性。原文链接:https://blog.csdn.net/jason_thinking/article/details/137613929。原文链接:https://blog.csdn.net/qq_45303986/article/details/128200640。在设计自定义数据结构时,若要在网络间传输,通常需要在数据头部添加类型标识字段,以便接收方知道如何解析收到的数据。// 设置数据流的版本。原创 2024-08-12 14:36:29 · 2021 阅读 · 0 评论 -
拖放2:基本原理
3、 放下点(drop site): 被拖动的对象放下的位置,若部件不能接受拖动的对象, Qt 会改变光。1)、启动拖放:拖放通过调用 QDrag::exec()函数而启动,该函数是一个阻塞函数(但不会。6)、 QLeaveEvent:当拖放操作离开部件时发送该事件,注意:要使部件能接收到该事件,阻塞主事件循环),这意味着在拖放操作结束之前,不会返回该函数,调用 QDrag::exe()对象时,发送此事件。键盘的修饰键(比如 Ctrl)时, 发送该事件, 要使部件能接收到该事件,则该部件必须接。原创 2024-08-09 10:48:10 · 999 阅读 · 0 评论 -
拖放1:QMimeData类型(拖放数据)
将与mimeType给出的MIME类型关联的数据设置为指定的数据。对于最常见的数据类型,可以调用更高级别的函数setText()、setHtml()、setUrls()、setImageData()、setColorData()。通用data()获取器和便捷函数(text(),html(),urls(),imageData()和colorData())调用此函数。对于最常见的数据类型,可以使用hasText()、hasHtml()、hasUrls()、hasImage()、hasColor()。转载 2024-08-08 16:57:04 · 235 阅读 · 0 评论 -
中心部件 存在的意义
上几篇文章我们使用 QMainWindow 添加了菜单栏、工具栏、状态栏等控件,他们分别在窗口中起到不同的作用。但千万别忽略了中间位置,因为中间位置是我们用来添加其他控件的位置,如果你直接在对象中new了某些其他控件(比如一个button),那么这个控件会覆盖菜单栏导致不能正常显示。这就需要我们来创建一个中心部件,以保证各个控件之间不会冲突。QMainWindow 添加中心部件。转载 2024-07-29 13:38:50 · 80 阅读 · 0 评论 -
setObjectName和setText的主要区别
方法用于设置对象(widget)的对象名。例如,将复选框对象的对象名设置为"checkBox_4",这样可以通过对象名来引用和操作这个复选框。总结来说,setObjectName设置对象名用于标识和查找对象,而setText设置对象的文本内容用于显示相应的文本。这两个方法在不同的方面发挥作用,setObjectName用于对象的标识,setText用于对象的文本内容的设置1。它用于设置对象的文本显示内容,如将复选框的文本内容设置为"库存管理",并通过翻译函数进行文本翻译。原创 2024-07-26 14:24:57 · 474 阅读 · 0 评论 -
setstylesheet详解
在setstylesheet中,我们可以通过设置控件的palette属性,来改变控件的颜色。2、在这个例子中,我们定义了一个伪类:hover,当用户将鼠标悬停在QPushButton上时,将其背景色设置为红色,并将文字颜色设置为白色。2、与传统的编程方式相比,使用样式表可以使UI样式更容易维护和修改,因为我们可以将UI控件的样式从UI定义中分离出来,并将样式表嵌入到应用程序中。3、在这个例子中,我们为QLabel控件指定了“微软雅黑”字体,也可以在样式表中设置其他字体,如宋体、黑体等。转载 2024-07-26 13:35:51 · 2014 阅读 · 0 评论 -
QMouseEvent事件中的:局部坐标pos()和全局坐标globalpos()
1.重新实现QWidget::contextMenuEvent()函数,创建一个QMenu窗口部件,在其中添加所期望的那些动作,并用再对该窗口调用exec()函数。默认情况下,mouseMoveEvent响应你按下鼠标的某个键(拖动,但不局限于左键拖动)的鼠标移动。所以p的值没变,但相对于桌面我们点的地方已经变了,只是相对窗口的坐标p一直是(1000,0),所以pos是相对窗口的。局部坐标(pos())即是相对当前active widget的坐标,左上角坐标为(0, 0)。//menu在头文件声明。转载 2024-07-25 16:38:15 · 551 阅读 · 0 评论 -
信号槽的连接
连接信号。原创 2024-07-25 14:54:04 · 274 阅读 · 0 评论 -
窗口通过dragEnterEvent和dropEvent拖拽操作 导入文件
原文链接:https://blog.csdn.net/weixin_38734534/article/details/132234449。dragEnterEvent函数对拖动的文件进行过滤,如果不符合过滤条件按将无法拖拽进入窗口。【QT】窗口通过dragEnterEvent和dropEvent拖拽导入文件。dropEvent函数为拖进来后放下的事件,放入窗口后继续后续的处理。在界面的构造函数中设置接受拖拽放置文件。转载 2024-07-23 14:51:20 · 190 阅读 · 0 评论 -
Qt 的 d_ptr (d-pointer) 和 q_ptr (q-pointer)解析;Q_D和Q_Q指针
一方面,Qt在公类中定义了一个指针d_ptr指向私类,在宏Q_DECLARE_PRIVATE中定义了一个函数获取这个指针,用宏Q_D将这个指针重新命名为d,以便于访问私类对象。另一方面,Qt在私类中定义了一个指针q_ptr指向公类,在宏Q_DECLARE_PUBLIC中定义了一个函数获取这个指针,用宏Q_Q将这个指针重新命名为q,以便于访问公类对象。此时,就需要用到Qt定义的4个宏:Q_DECLARE_PRIVATE与Q_DECLARE_PUBLIC、Q_D和Q_Q。Qt中大量使用Q_D和Q_Q。原创 2024-06-02 19:34:17 · 1749 阅读 · 1 评论 -
QVariant
QVariant 可以保存很多Qt的数据类型,包括QBrush、QColor、QCursor、QDateTime、QFont、QKeySequence、 QPalette、QPen、QPixmap、QPoint、QRect、QRegion、QSize和QString,并且还有C++基本类型,如 int、float等。当您需要存储不同类型的数据时,可以使用QVariant。QVariant是Qt中一个强大的变体类,提供了一种通用的方式来存储Qt对象及其他类的值,可以以类似于指针的方式存储任意类型的值。原创 2024-05-15 13:44:08 · 1166 阅读 · 0 评论 -
Qt Tab键切换焦点顺序:setTabOrder()
原文链接:https://blog.csdn.net/wzz953200463/article/details/124110142。焦点先在ui->lineEdit上,当按下Tab键时,焦点跑到ui->lineEdit_2上。按照设定顺序依次向后!原创 2024-05-11 13:23:13 · 936 阅读 · 0 评论 -
Qt 中 :deleteLater 总结
deleteLater 依赖于事件循环,调用 deleteLater 后本质是发送了一个 DeferrerDelete 事件,在事件循环处理中把对象删除。②.代码示例。原创 2024-03-31 12:07:21 · 1981 阅读 · 0 评论 -
Qt:常见的exec()函数
作用是开启一个循环,执行一个事件,相当于while(1)和for(;),相对于的种植事件的方法是quit(),exec()内部会执行一个任务队列,对所以已经排队的任务依次执行。类似于while(1)嵌套while(1),exec()同样可以嵌套,不同的是,部件的exec()继承了主界面的exec()很大一部分操作,所以界面不会因为内部嵌套exec()而卡死。使用示例:使用临时变量实现的dialog,不能保持模态属性,可以使用事件循环实现模态。那么,这些exec()的作用是什么呢?函数在Qt中是:用于。原创 2024-03-31 11:51:15 · 2014 阅读 · 0 评论 -
QT:如何在程序密集响应时,界面不会卡住?
如果在处理一个特定事件上耗费的事件过多,那么用户界面将变得无法响应。例如,在应用程序把一个文件保存到磁盘的过程中,直到文件保存完毕,才会处理那些由窗口系统产生的事件;实际上,QApplication::processEvents()就是一个不停调用processEvent()函数的while循环。使用这个方法的时候存在一个潜在的问题:应用程序还在执行的时候,就关闭了主窗口或者点击了其他响应,会产生预料不到的后果。操作(或任意其他耗时的操作),这样的话,在保存文件的时候,应用程序的用户界面仍可以保持响应。原创 2024-03-30 20:41:20 · 802 阅读 · 0 评论 -
QT - 日志:qDebug/qInfo/qWarning/qCritical
在 Qt 中,信息输出机制用于在程序运行时输出各种信息,包括调试信息、提示信息、警告信息和错误信息等。qDebug:最常用的信息输出机制,用于输出各种调试信息,例如变量的值、函数的返回值和对象的状态等。可以通过在代码中添加 qDebug() 语句来输出信息。qInfo:用于输出提示信息,例如程序启动信息和操作成功信息等。可以通过在代码中添加 qInfo() 语句来输出信息。qWarning:用于输出警告信息,例如一些异常但不致命的错误信息。可以通过在代码中添加 qWarning() 语句来输出信息。原创 2024-03-30 13:34:09 · 2937 阅读 · 0 评论 -
Qt定时器类QTimer
2. 在大多数情况下,建议将定时器连接到QObject::startTimer()函数,并在哪里实现`timerEvent()`事件,这种方式能够避免多个计时器事件同时达到时可能引起的不稳定现象。要使用它,只需创建一个QTimer类对象,然后调用其 start() 函数开启定时器,此后QTimer对象就会周期性的发出 timeout() 信号。4. 如果QTimer的间隔设置过小,也可能会出现定时器的不稳定性,所以在应用程序需要精细定时的情况下,应小心使用QTimer。//每间隔一秒向控制台发送一条信息。原创 2024-03-28 16:04:07 · 1242 阅读 · 0 评论 -
Qt智能指针--QScopedPointer
QScopedPointer和C++中的智能指针std::unique_ptr其概念是一样的,它包装了new操作符在堆上分配的动态对象,能够保证动态创建的对象在任何时候都可以被正确地删除。但它有更严格的所有权,并且不能转让,一旦获取了对象的管理权,你就无法再从它那里取回来。而使用T *QScopedPointer::take()也是返回对象指针,但QScopedPointer不再拥有对象所有权,而是转移到调用这个函数的caller,同时QScopePointer对象指针置为NULL。转载 2024-03-26 15:38:16 · 581 阅读 · 0 评论 -
QDialog的成员函数exec() 的返回值
如果希望在按钮按下后让QDialog::exec()返回QDialog::Accepted或QDialog::Rejected,可以使用QDialog::accept()和QDialog::reject()函数。在这个示例中,当用户点击“登录”按钮时,如果用户输入有效,则调用accept()函数,让QDialog::exec()返回QDialog::Accepted。否则,调用reject()函数,让QDialog::exec()返回QDialog::Rejected。// 处理用户点击了取消按钮的逻辑。原创 2024-03-21 10:01:10 · 1351 阅读 · 0 评论 -
QLibrary:加载动态库
项目中需要对操纵手柄进行读取,在网上找了几篇博客,基本都是依赖winmm.lib,但其中一篇直接加载它的动态库,从里面把函数解析出来,虽然麻烦,但还是眼前一亮,竟然可以这么做!一般只有对某个dll非常熟悉,知道dll中包含哪些函数、函数参数个数及类型、返回值类型才使用这种方式加载并调用函数,否则,还是使用头文件+lib的方式调用函数。由于不太熟悉typedef的这种操作,一开始没看懂,后来查了下,这是使用typedef定义的函数指针,并简单整理了这篇文章。,通过resolve进行解析,resolve。原创 2024-03-17 19:41:41 · 1358 阅读 · 0 评论 -
VS2019加QT5.14中Please assign a Qt installation in ‘Qt Project Settings‘.问题的解决
机器上装有Qt5.12.9和Qt5.12.2,以及Qt5.7,因为不同的工程使用的Qt不一样,所以工程中Qt版本没有匹配,我里工程使用Qt5.7。选择后会弹出如下窗体,选择编译机器版本msvc2015 64即可(如果是单纯的qt项目,可以直接选择出现的自己qt版本)如果上述修改后,问题仍然没有解决。那么先将Qt Versions的名称删掉,之后重新命名一个不同的名称!一般是直接将工程复制到另一台电脑上所导致,系统可能默认不选择使用的qt版本。右键工程——qt——convert project to。原创 2024-03-17 14:03:36 · 742 阅读 · 0 评论 -
Win7 VS2015+Qt5.9 编译出现MSB3758 MSB4036 NMAKE : fatal error等各种错误问题记录
解决方式:首先升级qt-vsaddin到支持VS2015的最后一个版本qt-vsaddin-msvc2015-2.4.3,然后升级.NET Framework到4.7及以上,这里用的是4.7.2,参考原文链接:https://blog.csdn.net/xinhuahappy/article/details/108645112。3.1 升级qt-vsaddin,下载qt-vsaddin-msvc2015-2.4.3。1、第一种错误(error MSB3758、error MSB4036)原创 2024-03-17 13:53:14 · 636 阅读 · 0 评论 -
QT中connect()的参数5:Qt::DirectConnection、Qt::QueuedConnection区别
Qt::BlockingQueuedConnection:槽函数的调用时机与Qt::QueuedConnection一致,不过发送完信号后发送者所在线程会阻塞,直到槽函数运行完。Qt::QueuedConnection:槽函数在控制回到接收者所在线程的事件循环时被调用,槽函数运行于信号接收者所在线程。发送信号之后,槽函数不会立刻被调用,等到接收者的当前函数执行完,进入事件循环之后,槽函数才会被调用。Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。原创 2024-03-11 15:39:18 · 1344 阅读 · 0 评论 -
QSettings
用户通常希望应用程序能够记住其跨会话的设置(窗口大小和位置、选项等)。此信息通常存储在 Windows 上的系统注册表中,以及 macOS 和 iOS 上的属性列表文件中。创建 QSettings 对象时,可传递公司或组织的名称以及应用程序的名称。QSettings 的 API 是基于 QVariant 的,可以让用户便捷地保存大多数基于值的类型,例如 QString、QRect 和 QImage。QSettings 是对这些技术的抽象,使用户能够以可移植的方式保存和恢复应用程序设置。原创 2024-03-11 14:51:48 · 388 阅读 · 0 评论 -
QT: 获取CPU序列号、硬盘序列号、主板序列号 (采用wmic命令)
很强大,在win10上系统上wmic命令被powershell的“ help Get-WmiObject ”代替,但是wmic 命令还是正常可以使用的。创建新进程: wmic process call create "C:\Program Files\Tencent\QQ\QQ.exe"通过wmic 命令获取CPU序列号、硬盘序列号、主板序列号、CPU名称等信息。查询cpu序列号: wmic cpu get processorid。查看cpu详细信息: wmic cpu list brief。原创 2024-03-11 14:21:55 · 1657 阅读 · 0 评论 -
QT 对话框
二、原创 2024-02-04 16:49:20 · 302 阅读 · 0 评论 -
QT VS Tools插件安装后:无法在QT Version中添加msvc(添加后重新打开就消失了!)
原因是:当前的VS版本 和 QT VS Tools插件版本 不匹配。比如我在VS2015中按照2.7.2版本QT VS Tools,均无法正常添加msvc(添加后重新打开就消失了!=》下载尝试后,发现2.4.3版本的QT VS Tools可以正常添加msvc;原创 2023-12-21 16:15:43 · 911 阅读 · 0 评论 -
Qt VS Tools打开.pro文件:弹出“未将对象引用设置到对象的实例”
原创 2023-12-21 16:10:42 · 905 阅读 · 0 评论 -
QT中常见的deleteLater,和delete有什么不同?
合理的利用”delete“可以有效减少应用对内存的消耗。但是delete的不合理使用常常导致应用crash。而”deleteLater()“可以更好的规避风险, 降低崩溃。原创 2023-11-27 15:45:18 · 476 阅读 · 0 评论 -
QT中:会发现new的对象,有时候不需要delete的原因
结论:如果是从QObject创建的对象, 则只要顶层的父对象确保能正确delete就不用担心内存泄漏的问题;子对象析构时会从父对象的对象树中把自己移除, 所以就算我们先delete了自己new的对象, 再delete父对象也没问题;但是, 如果先delete父对象, 然后又delete子对象就会出问题, 因为delete父对象时子对象已经被析构;父对象析构时会delete所有的子对象, 所以我们new的子对象就不用手动delete了, 也不会内存泄漏;QObject维护了一个对象树, 所有。原创 2023-11-23 16:44:29 · 705 阅读 · 0 评论 -
QTableWidget中cell 和 item区别
通过调用 itemClicked()信号函数和cellClick()信号函数来看看点击“cell相当于一个容器,如箱子。里面不管有没有东西,cell都在那里。,即cell箱子中所放置的东西,即实实在在的东西。2.item:item是某行某列单元格中的。1.cell:某行某列中。原创 2023-10-13 10:05:01 · 632 阅读 · 0 评论 -
布局--QT Designer
再将需要布局的控件拖入到红色的框中,也就是Horizontal Layout控件中。使用方式是先把布局控件拖入界面中,之后再把其它需要的控件拖入到布局控件中,则这些控件就会自动调整为相应的布局。Form Layout:表单布局,控件以两列的形式布局在表单中,其中左列包含标签,右列包含输入控件。Grid Layout:网格布局或栅格布局,将页面上的控件按照网格的样式分布;等等,为此Qt为界面设计提供了基本布局功能,使用基本布局可以使组件。layoutName :布局名(所使用的布局管理器的名称)原创 2023-10-12 17:34:53 · 2481 阅读 · 0 评论 -
QT 中文乱码
在.cpp文件上方写头文件处,输入#pragma execution_character_set(“utf-8”)这行代码即可正常显示运行界面中的汉字。原创 2023-10-10 10:21:02 · 109 阅读 · 0 评论 -
QPainterPath
QPainterPath原创 2023-08-27 16:40:18 · 652 阅读 · 0 评论 -
使用VS2015打开.pro文件后,编译报错
2. 在Chart项目上,右键打开属性页。在当前页面中Configuration properties->General->Target Platform version中设置自己的平台版本。1.右键点击 Solution上,在弹出的框中点击“Retarget solution”原创 2023-08-19 17:36:42 · 583 阅读 · 0 评论