Qt
文章平均质量分 77
小喻同学i
这个作者很懒,什么都没留下…
展开
-
信号和槽对值传递参数和引用传递参数的总结
(测试时,打印传递前后的地址不同) 2、connect时使用DirectConnection,测试结果和在同一线程中的结果相同。如果信号的参数是值类型,则在内部会自动处理拷贝,而如果是引用类型,则会自动生成相应的拷贝。这样可以在单线程环境中避免不必要的拷贝,在多线程环境中Qt会自动处理拷贝,保证线程安全性。但是在某些情况下,如果你确定参数是简单类型(例如int,char等),值传递也可以接受,因为这些类型的拷贝开销很小。在上述情况下,text参数不会被拷贝,直接传递引用,这样效率更高,尤其是对于大对象。原创 2024-06-12 14:00:14 · 260 阅读 · 0 评论 -
Qt 中文乱码
1.如果源文件采用的UTF-8不带BOM的编码格式,一般可执行程序不会出现中文乱码;如果UTF-8不带BOM的编码格式,加上。注意:msvc必须是小写,亲测大写MSVC无效。另外,运行之前,建议清除一下,重新构建,删除之前的缓存。execution-charest表示执行字符集,source-charset表示源码字符集。源文件字符集:源文件本身也是文本文件,所以源文件字符集是指源文件保存时采用哪种字符编码。1.可以将以上代码放入一个单独的头文件,在需要使用处,包含此头文件;原创 2023-10-13 10:13:44 · 99 阅读 · 0 评论 -
Qt 库的生成和使用
在pro文件中设置TARGET字段就行了。原创 2023-09-19 10:54:29 · 333 阅读 · 0 评论 -
Qt 嵌入外部窗口
1.在 Windows 系统中,每个窗口都有一个唯一的窗口句柄(Window Handle/HWND),用于在底层操作系统中标识和引用该窗口。3.在 Qt 中,为了与底层窗口系统进行交互,可以通过 WId 类型来传递和操作窗口句柄。WId 可以用于获取底层窗口系统的原生窗口句柄,从而实现与其他平台相关的功能。在Qt窗口中嵌入外部应用程序的窗口,可以利用QT中的QWindow类和WId(Window Identifier)来处理;2.而在Qt框架中,WId 正是用于表示窗口句柄的类型;原创 2023-09-14 13:24:27 · 1741 阅读 · 0 评论 -
QThread与事件循环
QThread与事件循环原创 2023-09-07 19:20:12 · 654 阅读 · 0 评论 -
Qt事件处理流程
Qt事件处理Qt的事件处理大概大概可以分为四个步骤:事件派发 ->事件过滤 ->事件分发 ->事件处理事件派发:事件派发 是由Qt框架(QApplication 对象)来完成的,它将当前应用程序产生的事件派发给对应的窗口事件过滤:事件在到达对应的窗口之前,可以被其他对象过滤、拦截、处理事件分发:每个窗口都会有一个事件分发器,事件分发器会对时间进行分类,再将分好类的事件分发给对应的事件处理函数进行处理,每个事件处理函数的功能其实是非常单一的,只处理当前这一类事原创 2022-05-14 21:39:15 · 1594 阅读 · 0 评论 -
Qt MouseMove与HoverMove
鼠标在button和label上移动时,MainWindow都不能收到mouseMove事件,除非对button和label都执行。3.举例,QMainWindow若想捕捉客户区域的mouseMove事件,则QMainWindow和其中的centralWidget子部件都需要执行。Qt中的mouseMove事件,默认情况下是需要按住鼠标左键移动时,才会相应Qt::mouseMoveEvent;则父窗口是捕捉不到子窗口(控件)的mouseMoveEvent。原创 2023-09-04 09:37:39 · 937 阅读 · 0 评论 -
Qt自定义属性样式
这是因为:Qt在第一次设置QWidget的样式时,会进行"polish"操作,这个操作会把样式信息缓存起来。之后如果只是设置属性;比如设置select属性的值,并不会重新触发样式的计算,导致QLabel无法感知select属性的变化,还是使用之前缓存的样式。调用unpolish可以清除之前的样式缓存。再调用polish就会重新计算QWidget的样式,此时会根据当前select属性值选择合适的qss规则进行渲染。原创 2023-08-31 16:48:23 · 262 阅读 · 0 评论 -
Qt 绘制图片
这可能会导致一些不必要的绘制操作,特别是在显示大量图片或者在复杂的界面布局下。为了解决这个问题,我们可以自定义一个控件,重写paintEvent,使用drawPixmap或者drawImage来绘制图片,这样效率会比使用QLbael有所提高,也可以实现与QLabel一样的setPixmap()效果。在Qt开发中,经常会遇到显示图片的需求;QLabel的setPixmap方法是一个非常简单易用的方法,可以快速地将图片显示在界面上。的图片,并且不需要进行太多的自定义操作,那么这种方式可能是最好的选择。原创 2023-08-31 15:20:09 · 776 阅读 · 0 评论 -
QThread(QThreadPool)与std::thread比较
现在有一个函数 fun(), 且希望将此函数运行在子线程中。原创 2023-08-02 19:34:00 · 143 阅读 · 0 评论 -
Qt TLS initialization failed
Qt TLS initialization failed原创 2022-08-18 17:36:50 · 520 阅读 · 1 评论