Qt5开发从入门到精通
文章平均质量分 81
东.'
学习笔记
展开
-
Qt5开发从入门到精通——终章、数据库基本概念(后续篇章升级为 QT常规应用开发)
本节简要介绍关于数据库系统的基本概念和术语,以及进行数据库应用开发中常用的数据库管理系统。Qt5开发从入门到精通基础篇系列,至此篇后不再更新,有关QT篇章将升级为以常规界面开发为主要篇章、继而去深入了解Qt的API接口以及C++庞大的库函数。原创 2022-11-27 17:08:36 · 1156 阅读 · 26 评论 -
Qt5开发从入门到精通——第十二篇三节(Qt5 事件处理及实例——多线程应用、服务器端编程、客户端编程)
本章节会给大家带来Qt5 事件处理及实例——多线程应用、服务器端编程、客户端编程详解。通过实现一个多线程的网络时间服务器,介绍如何综合运用多线程技术编程。每当有客户请求到达时,服务器将启动一个新线程为它返回当前的时间,服务完毕后,这个线程将自动退出。同时,用户界面会显示当前已接收请求的次数。Qt5 事件处理及实例——多线程应用、服务器端编程、客户端编程会在应用程序开发中经常用到的。原创 2022-11-27 12:02:13 · 1073 阅读 · 15 评论 -
Qt5开发从入门到精通——第十二篇二节(Qt5 事件处理及实例——多线程控制、互斥量、信号量、线程等待与唤醒)
本章节会给大家带来Qt5 事件处理及实例——多线程控制、互斥量、信号量、线程等待与唤醒详解。介绍 Qt 线程同步、互斥控制的基本方法。线程之间存在着互相制约的关系,具体可分为互斥和同步这两种关系。实现线程的互斥与同步常使用的类有 QMutex 、 QMutexLocker 、 QReadWriteLocker 、QReadLocker 、 QWriteLocker 、 QSemaphore 和 QWaitCondition。++ key;原创 2022-11-26 17:46:22 · 1178 阅读 · 20 评论 -
Qt5开发从入门到精通——第十二篇一节(Qt5 事件处理及实例——多线程及简单实例)
本章节会给大家带来Qt5 事件处理及实例——多线程及简单实例。通常情况下,应用程序都是在一个线程中执行操作。但是,当调用一个耗时操作(例如,大批量 I/0 或大量矩阵变换等 CPU 密集操作)时,用户界面常常会冻结。而使用多线程可解决这一问题。多线程具有以下优势。(1) 提高应用程序的响应速度。这对于开发图形界面的程序尤为重要,当一个操作耗时很长时,整个系统都会等待这个操作,程序就不能响应键盘、鼠标、菜单等的操作,而使用多线程技术可将耗时长的操作置于一个新的线程,从而避免出现以上问题。原创 2022-11-22 20:25:51 · 1167 阅读 · 8 评论 -
Qt5开发从入门到精通——第十一篇三节(Qt5 事件处理及实例——事件过滤及实例)
本章节会给大家带来Qt5 事件处理及实例——事件过滤及实例详解。Qt 的事件模型中提供的事件过滤器功能使得 一个 QObject 对象可以监视另 一个 QObject 对象中的事件,通过在一个 QObject 对象中安装事件过滤器,可以在事件到达该对象前捕获事件,从而起到监视该对象事件的作用。例如, Qt 已经提供了 QPushButton 用千表示一个普通的按钮类。如果需要实现一个动态的图片按钮,即当鼠标键按下时按钮图片发生变化,则需要同时响应鼠标按下等事件。原创 2022-11-21 21:56:49 · 1027 阅读 · 21 评论 -
Qt5开发从入门到精通——第十一篇二节(Qt5 事件处理及实例——键盘事件及实例)
本章节会给大家带来Qt5 事件处理及实例——键盘事件及实例详解。在图像处理和游戏应用程序中,有时需要通过键盘控制某个对象的移动,此功能可以通过对键盘事件的处理来实现。键盘事件的获取是通过重定义 QWidget 类的 keyPressEvent()和keyReleaseEvent()来实现的。Qt5 事件处理及实例——键盘事件及实例会在应用程序开发中经常用到的。原创 2022-11-19 21:32:57 · 1487 阅读 · 12 评论 -
Qt5开发从入门到精通——第十一篇一节(Qt5 事件处理及实例——鼠标事件及实例)
本章节会给大家带来Qt5 事件处理及实例——鼠标事件及实例详解。当用户操作鼠标在特定区域内移动时,状态栏右侧会实时地显示当前鼠标所在的位置信息;当用户按下鼠标键时,状态栏左侧会显示用户按下的键属性(左键、右键或中键),并显示按键时的鼠标位置;当用户松开鼠标键时,状态栏左侧又会显示松开时的位置信息。Qt5 事件处理及实例——鼠标事件及实例会在应用程序开发中经常用到的。原创 2022-11-19 20:51:18 · 751 阅读 · 2 评论 -
Qt5开发从入门到精通——第十篇四节(Qt5 网络与通信—— 网页浏览器与文件下载)
本章节会给大家带来Qt5 网络与通信—— 网页浏览器与文件下载实例详解。前两节编程所使用的 QUdpSocket 、 QTcpSocket 和 QTcpServer 类都是网络传输层上的类,它们封装实现的是底层的网络进程通信 (Socket 通信)的功能。而 Qt 网络应用开发则是要在此基础上进一步实现应用型的协议功能。应用层的网络协议(如 HTTP/FTP/SMTP 等)简称为“应用协议”,它们运行在 TCP/UDP 之上如下图所示。原创 2022-10-13 23:14:24 · 1561 阅读 · 15 评论 -
Qt5开发从入门到精通——第十篇三节(Qt5 网络与通信—— 基于 TCP 的网络聊天室程序)
本章节会给大家带来Qt5 网络与通信—— 基于 TCP 的网络聊天室程序实例详解。传输控制协议 (Transmission Control Protocol, TCP) 是一种可靠、面向连接、面向数据流的传输协议,许多高层应用协议(包括 HTTP 、 FTP 等)都是以它为基础的, TCP 非常适合数据的连续传输。TCP 与 UDP 的差别见下表比较项TCPUDP是否连接面向连接无连接传输可靠性可靠不可靠流量控制提供不提供工作方式全双工可以是全双工应用场合大量数据。原创 2022-10-11 23:36:27 · 689 阅读 · 17 评论 -
Qt5开发从入门到精通——第十篇二节(Qt5 网络与通信—— 基于 UDP 的网络广播程序)
本章节会给大家带来Qt5 网络与通信—— 基于 UDP 的网络广播程序实例详解。用户数据报协议 (User Data Protocol, UDP) 是一种简单轻量级、不可靠、面向数据报、无连接的传输层协议,可以应用在可靠性不是十分重要的场合,如短消息、广播信息等。适合应用的情况有以下几种:网络数据大多为短消息。拥有大量客户端。对数据安全性无特殊要求。网络负担非常重,但对响应速度要求高。Qt5 网络与通信—— 基于 UDP 的网络广播程序会在应用程序开发中经常用到的。原创 2022-10-11 20:15:00 · 1284 阅读 · 8 评论 -
Qt5开发从入门到精通——第十篇一节(Qt5 网络与通信—— 获取本机网络信息)
本章节会给大家带来Qt5 网络与通信—— 获取本机网络信息实例详解。在应用程序开发中,网络编程非常重要。目前,互联网通行的 TCP/IP 协议自上而下地分为应用层、传输层、网际层和网络接口层这四层。实际编写网络应用程序时只使用传输层和应用层,所涉及的协议主要包括 UDP 、 TCP 、 FTP 和 HTTP 等。原创 2022-10-11 19:30:00 · 867 阅读 · 3 评论 -
Qt5开发从入门到精通——第九篇六节( Qt5 文件及磁盘处理—— 监视文件和目录变化)
在 Qt 中可以使用 QFileSystemWatcher 类监视文件和目录的改变。在使用 addPath() 函数监视指定的文件和目录时,如果需要监视多个目录,则可以使用 addPaths()函数加入监视。若要移除不需要监视的目录,则可以使用 removePath()和 removePaths()函数。当监视的文件被修改或删除时,产生一个 fileChanged()信号。如果所监视的目录被改变或删除,则产生 directoryChanged()信号。原创 2022-09-30 23:34:41 · 1282 阅读 · 13 评论 -
Qt5开发从入门到精通——第九篇五节( Qt5 文件及磁盘处理—— 获取文件信息)
本章节会给大家带来Qt5 文件及磁盘处理—— 获取文件信息实例详解。QFilelnfo 类提供了对文件进行操作时获得的文件相关属性信息,包括文件名、文件大小、创建时间、最后修改时间、最后访问时间及一些文件是否为目录、文件或符号链接和读写属性等。Qt5 文件及磁盘处理—— 获取文件信息会在应用程序开发中经常用到的。原创 2022-09-30 21:01:26 · 948 阅读 · 3 评论 -
Qt5开发从入门到精通——第九篇四节( Qt5 文件及磁盘处理—— 文件系统浏览)
本章节会给大家带来Qt5 文件及磁盘处理—— 文件系统浏览实例详解。文件系统的浏览是目录操作的一个常用功能。本节介绍如何使用 QDir 类显示文件系统目录及用过滤方式显示文件列表的方法。-QDir::Filter 定义的过滤方式QDir::Dirs 按照过滤方式列出所有目录QDir::AllDirs 列出所有目录,不考虑过滤方式QDir::Files 只列出文件QDir::Drives 列出磁盘驱动器 (UNIX 系统无效)原创 2022-09-30 12:49:08 · 913 阅读 · 14 评论 -
Qt5开发从入门到精通——第九篇三节( Qt5 文件及磁盘处理—— 文件大小及路径获取实例)
本章节会给大家带来Qt5 文件及磁盘处理—— 文件大小及路径获取实例详解。QDir 类具有存取目录结构和内容的能力,使用它可以操作目录、存取目录或文件信息、操作底层文件系统,而且还可以存取 Qt 的资源文件。Qt 使用 “/” 作为通用的目录分隔符和 URL 路径分隔符。如果在程序中使用 “/” 作为目录分隔符, Qt 会将其自动转换为符合底层操作系统的分隔符(如 Linux 使用 “/”, Windows 使用“”)。QDir 可以使用相对路径或绝对路径指向一个文件。原创 2022-09-30 11:51:17 · 1011 阅读 · 3 评论 -
Qt5开发从入门到精通——第九篇二节( Qt5 文件及磁盘处理—— 读写二进制文件)
本章节会给大家带来Qt5 文件及磁盘处理—— 读写二进制文件的开发实例详解。QDataStrearn 类提供了将二进制文件串行化的功能,用于实现 C++基本数据类型,如 char 、short 、 int 、 char*等的串行化。更复杂的串行化操作则是通过将数据类型分解为基本类型来完成的。Qt5 文件及磁盘处理—— 读写二进制文件会在应用程序开发中经常用到的。原创 2022-09-29 13:02:33 · 1102 阅读 · 16 评论 -
Qt5开发从入门到精通——第九篇一节( Qt5 文件及磁盘处理—— 读写文本文件)
本章节会给大家带来Qt5文件及磁盘处理概述及读写文本文件的开发实例详解。Qt 提供了 QFile 类用于进行文件操作。QFile 类提供了读写文件的接口,可以读写文本文件、二进制文件和 Qt 的资源文件。处理文本文件和二进制文件,可以使用 QTextStream 类和 QDataStream 类。处理临时文件可以使用 QTemporaryFile, 获取文件信息可以使用 QFilelnfo, 处理目录可以使用 QDir, 监视文件和目录变化可以使用 QFileSystemWatcher。原创 2022-09-28 23:09:20 · 1451 阅读 · 7 评论 -
Qt5开发从入门到精通——第八篇四节( 模型/视图结构—— 代理 (Delegate))
本章节会给大家带来模型/视图结构—— 代理 (Delegate)的开发实例详解。在表格中嵌入各种不同控件,通过表格中的控件对编辑的内容进行限定。通常情况下,采用这种在表格中插入控件的方式,控件始终显示。当表格中控件数目较多时,将影响表格的美观。此时,可利用 Delegate 的方式实现同样的效果,控件只有在需要编辑数据项时才会显示,从而解决了所遇到的上述问题。模型/视图结构—— 代理 (Delegate)会在应用程序开发中经常用到的。原创 2022-09-27 23:03:57 · 1630 阅读 · 13 评论 -
Qt5开发从入门到精通——第八篇三节( 模型/视图结构—— 视图 (View))
本章节会给大家带来模型/视图结构—— 视图 (View)的开发实例详解。实现自定义的 View, 可继承自 QAbstractltemView 类,对所需的纯虚函数进行重定义与实现,对于QAbstractltemView 类中的纯虚函数,在子类中必须进行重定义,但不一定要实现,可根据需要选择实现。模型/视图结构—— 视图 (View)会在应用程序开发中经常用到的。原创 2022-09-27 20:00:00 · 654 阅读 · 1 评论 -
Qt5开发从入门到精通——第八篇二节( 模型/视图结构—— 模型 (Model))
本章节会给大家带来模型/视图结构的 模型 (Model)详解。实现自定义模型可以通过 QAbstractltemModel 类继承,也可以通过 QAbstractListModel 和QAbstractTableModel 类继承实现列表模型或表格模型。在数据库中,通常需要首先将一些重复的文字字段使用数值代码保存,然后通过外键关联操作来查找其真实的含义,这一方法是为了避免冗余。模型/视图结构—— 模型 (Model)会在应用程序开发中经常用到的。原创 2022-09-27 11:42:15 · 1324 阅读 · 14 评论 -
Qt5开发从入门到精通——第八篇一节(模型/视图结构—— 文件目录浏览器)
本章节会给大家带来模型/视图结构的概述及文件目录浏览器的实例。MVC 设计模式是起源于 Smalltalk 的一种与用户界面相关的设计模式。通过使用此模式,可以有效地分离数据和用户界面。MVC 设计模式包括三个元素:表示数据的模型 (Model) 、表示用户界面的视图 (View) 和定义了用户在界面上操作的控制器 (Controller)。与 MVC 设计模式类似, Qt 引入了模型/视图结构用千完成数据与界面的分离,即 InterView框架。原创 2022-09-26 21:15:00 · 843 阅读 · 9 评论 -
Qt5开发从入门到精通——第七篇六节( 图形视图—— 图元的旋转、缩放、切变、和位移)
本章节会给大家带来基于图元的旋转、缩放、切变、和位移。它是场景中各个图元的基类,在它的基础上可以继承出各种图元类, Qt 已经预置的包括直线 (QGraphicsLineltem) 、椭圆 (QGraphicsEllipseltem) 、文本图元 (QGraphicsTextltem) 、矩形(QGraphicsRectltem) 等。当然,也可以在 QGraphicsltem 类的基础上实现自定义的图元类,即用户可以继承 QGraphicsltem 实现符合自己需要的图元。原创 2022-09-26 13:18:42 · 2013 阅读 · 23 评论 -
Qt5开发从入门到精通——第七篇五节( 图形视图—— 图元创建 GraphicsItem V1.2)
本章节会给大家带来基于图元创建 GraphicsItem V1.1开发升级到图元创建 GraphicsItem V1.2开发的解析。图元创建会在应用程序开发中经常用到的。原创 2022-09-19 00:30:12 · 434 阅读 · 35 评论 -
Qt5开发从入门到精通——第七篇四节( 图形视图—— 图元创建 GraphicsItem V1.1)
本章节会给大家带来基于图元创建 GraphicsItem V1.0开发升级到图元创建 GraphicsItem V1.1开发的解析。图元创建会在应用程序开发中经常用到的。原创 2022-09-18 23:34:14 · 759 阅读 · 4 评论 -
Qt5开发从入门到精通——第七篇三节( 图形视图—— 图元创建 GraphicsItem V1.0)
本章节会给大家带来Graphics View 框架结构的主要特点、 三元素及坐标系统、图元创建。Graphics View 框架结构的主要特点如下。(1) 在 Graphics View 框架结构中,系统可以利用 Qt 绘图系统的反锯齿、 OpenGL 工具来改善绘图性能。(2) Graphics View 支持事件传播体系结构,可以使图元在场景 (scene) 中的交互能力提高1 倍,图元能够处理键盘事件和鼠标事件。其中,鼠标事件包括鼠标被按下、移动、释放和双击,原创 2022-09-18 00:57:10 · 786 阅读 · 6 评论 -
Qt5开发从入门到精通——第七篇二节( 图形视图——QSlider类)
QSlider是滑动条控件,最常见的应用就是视频播放器中的进度条。QSlider允许用户通过鼠标进行拖动、点击(需要重写mousePressEvent事件实现),本章将通过实例介绍如何应用。QSlider类会在应用程序开发中经常用到的。原创 2022-09-17 23:35:26 · 703 阅读 · 9 评论 -
Qt5开发从入门到精通——第七篇一节( 图形视图——动画效果 )
本章将通过实现的例子介绍如何进行自定义 QGraphicsltem , 以及如何利用定时器来实现QGraphicsltem 动画效果。它是一个用于放置图元的容器,本身是不可见的,必须通过与之相连的视图类来显示及与外界进行互操作。通过 QGraphicsScene: :addltem()可以添加 一个图元到场景中。图元可以通过多个函数进行检索。QGraphicsScene: :items()和 一些重载函数可以返回与点、矩形、多边形或向量路径相交的所有图元。原创 2022-09-14 23:11:06 · 1442 阅读 · 21 评论 -
Qt5开发从入门到精通——第六篇四节( 图像与图片——显示SVG格式图片 )
本章首先介绍几种主要位置函数及其之间的区别,以及各种与位置相关函数的使用场合;然后,通过一个简单绘图工具实例,介绍利用 QPainter 和 QPainterPath 两种方法绘制各种基础图形。SVG 的英文全称是 Scalable Vector Graphics, 即可缩放的矢量图形。它是由万维网联盟(World Wide Web Consortium, W3C) 在 2000 年 8 月制定的一种新的二维矢量图形格式,也是规范中的网格矢量图形标准,是一个开放的图形标准。原创 2022-09-11 23:58:31 · 1496 阅读 · 14 评论 -
Qt5开发从入门到精通——第六篇三节( 图像与图片——双缓冲机制)
本章首先介绍几种主要位置函数及其之间的区别,以及各种与位置相关函数的使用场合;然后,通过一个简单绘图工具实例,介绍利用 QPainter 和 QPainterPath 两种方法绘制各种基础图形。所谓双缓冲机制,是指在绘制控件时,首先将要绘制的内容绘制在一个图片中,再将图片一次性地绘制到控件上。在早期的 Qt 版本中,若直接在控件上进行绘制工作,则在控件重绘时会产生闪烁的现象,控件重绘频繁时,闪烁尤为明显。双缓冲机制可以有效地消除这种闪烁现象。自Qt 5 版本之后, QWidget 控件已经能够自动处理闪烁的原创 2022-09-11 23:01:18 · 511 阅读 · 3 评论 -
Qt5开发从入门到精通——第六篇二节( 图像与图片——基础图形的绘制 )
本章首先介绍几种主要位置函数及其之间的区别,以及各种与位置相关函数的使用场合;然后,通过一个简单绘图工具实例,介绍利用 QPainter 和 QPainterPath 两种方法绘制各种基础图形。设计界面,区分各种形状及画笔颜色、画笔线宽、画笔风格、画笔顶帽、画笔连接点、填充模式、铺展效果、画刷颜色、画刷风格设置等。图像与图片的基础图形的绘制会在应用程序开发中经常用到的。原创 2022-09-11 16:13:37 · 928 阅读 · 12 评论 -
Qt5开发从入门到精通——第六篇一节( 图像与图片——位置相关函数 )
本章首先介绍几种主要位置函数及其之间的区别,以及各种与位置相关函数的使用场合;然后,通过一个简单绘图工具实例,介绍利用 QPainter 和 QPainterPath 两种方法绘制各种基础图形。Qt 提供了很多关于获取窗体位置及显示区域大小的函数,如 x() 、 y()和 pos() 、 rect() 、 size() 、geometry()等,统称为“位置相关函数”或“位置函数”。其中,x() 、 y()和 pos()函数的作用都是获得整个窗体左上角的坐标位置。原创 2022-09-08 22:26:45 · 579 阅读 · 19 评论 -
Qt5开发从入门到精通——第五篇五节( 文本编辑器 Easy Word 开发 V1.4详解 )
本章节会给大家带来基于文本编辑器 Easy Word V1.3开发升级到Easy Word V1.4开发的解析。窗口构成会在应用程序开发中经常用到的。原创 2022-09-07 13:51:10 · 1142 阅读 · 16 评论 -
Qt5开发从入门到精通——第五篇四节( 文本编辑器 Easy Word 开发 V1.3详解 )
本章节会给大家带来基于文本编辑器 Easy Word V1.2开发升级到Easy Word V1.3开发的解析。在编写包含格式设置的文本编辑程序时,经常用到的 Qt 类有 QTextEdit、 QTextDocument、QTextListFormat 、 QTextFrameFormat 和 QTextTableFormat 等。文本编辑各类之间的划分与关系如图一所示。图一。原创 2022-09-06 22:44:23 · 974 阅读 · 21 评论 -
Qt5开发从入门到精通——第五篇三节( 文本编辑器 Easy Word 开发 V1.2详解 )
本章节会给大家带来基于文本编辑器 Easy Word V1.1开发升级到Easy Word V1.2开发的解析。窗口构成会在应用程序开发中经常用到的。原创 2022-09-06 21:41:34 · 1157 阅读 · 4 评论 -
单播、组播、广播、工具开发、QT Udp通讯协议开发简介及开发工具源码
Qt UDP_family 2.0 APP 20220818更新,单播,组播,广播工具开发原码及详解,app原码已经上传到GitHub,在 UDP 方式下,客户端并不与服务器建立连接,它只负责调用发送函数向服务器发出数据报。类似地,服务器也不从客户端接收连接,只负责调用接收函数,等待来自某客户端的数据到达。Qt 中通过 QUdpSocket 类实现 UDP 协议的编程。下面通过一个实例,介绍如何实现基于UDP 的广播应用,它由 UDP 服务器和 UDP 客户端两部分组成。...原创 2022-07-15 10:18:35 · 3006 阅读 · 5 评论 -
Qt5开发从入门到精通——第五篇二节( 文本编辑器 Easy Word 开发 V1.1 详解 )
本章节会给大家带来基于文本编辑器 Easy Word V1.0框架开发升级到Easy Word V1.1框架触发信号调用槽函数开发的解析。窗口构成会在应用程序开发中经常用到的。原创 2022-09-05 21:49:21 · 932 阅读 · 10 评论 -
Qt5开发从入门到精通——第五篇一节( 文本编辑器 Easy Word 开发 V1.0 详解 )
本章节会给大家带来文本编辑器 Easy Word V1.0框架开发的详解。QMainWindow 是一个为用户提供主窗口程序的类,包含一个菜单栏 (menu bar)、多个工具栏 (tool bars)、多个描接部件 (dock widgets) 、一个状态栏 ( status bar) 及一个中心部件(central widget) , 是许多应用程序(如文本编辑器、图片编辑器等)的基础。本章将对此进行详细介绍。窗口构成会在应用程序开发中经常用到的。原创 2022-09-05 21:37:12 · 641 阅读 · 2 评论 -
Qt5开发从入门到精通——第四篇十三节(程序启动画面 )
本章节将会给大家带来程序启动画面的详细使用方法多数大型应用程序启动时都会在程序完全启动前显示一个启动画面,在程序完全启动后消失。程序启动画面可以显示相关产品的一些信息,使用户在等待程序启动的同时了解相关产品的功能,这也是一个宣传的方式。Qt 中提供的 QSplashScreen 类实现了在程序启动过程中显示启动画面的功能。程序启动画面会在应用程序开发中经常用到的。原创 2022-09-04 13:44:20 · 638 阅读 · 32 评论 -
Qt5开发从入门到精通——第四篇十二节(不规则窗体)
本章节将会给大家带来不规则窗体的详细使用方法常见的窗体通常是各种方形的对话框,但有时也需要使用非方形的窗体,如圆形、椭圆形,甚至是不规则形状的对话框。利用 setMaskO函数为窗体设置遮罩,实现不规则窗体。设置遮罩后的窗体尺寸仍是原窗体大小,只是被遮罩的地方不可见。不规则窗体会在应用程序开发中经常用到的。原创 2022-09-04 12:48:40 · 711 阅读 · 2 评论 -
Qt5开发从入门到精通——第四篇十一节(可扩展对话框)
本章节将会给大家带来可扩展对话框的详细使用方法可扩展对话框通常用于用户对界面有不同要求的场合。通常情况下,只出现基本对话窗体;当供高级用户使用或需要更多信息时,可通过某种方式的切换显示完整对话窗体(扩展窗体),切换的工作通常由一个按钮来实现。可扩展对话框的基本实现方法是利用 setSizeConstraint(QLayout: :SetFixedSize)方法使对话框尺寸保待相对固定。其中,最关键的部分有以下两点。在整个对话框的构造函数中调用。原创 2022-09-03 22:36:38 · 353 阅读 · 2 评论