自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

QT WIDGETS,QT QML,QT WEB、OpenCV

QT WIDGETS,QT QML,QT WEB、OpenCV

  • 博客(50)
  • 收藏
  • 关注

原创 QT Web浏览器软件项目实战

窗口界面顶部是地址栏。用户在URL编辑框中输入URL, 点击Go按钮打开Web网页。底部是QT WebEngineView控件, 用于渲染Web网页。QT WebEngine框架提供了 Web浏览器软件的各种组件。使用WebEngineView控件 可以快速实现Web浏览器软件的基础功能。在窗口类型的构造函数中, 创建了QWebEngineView控件, 这个控件用于渲染Web网页。10 10_Web浏览器软件项目实战。10.1.1 01_介绍。10.2.1 01_介绍。10.3.1 01_介绍。

2024-11-15 08:53:55 364

原创 QT 文件系统浏览器软件项目实战

窗口ButianyunMainWindow的 构造函数中, 首先创建了中心窗口, 包含一个树状视图控件 和对应的文件系统模型。然后创建了目录导航窗口, 作为一个停靠窗口存在。当用户在导航窗口中选择一个目录之后, 右侧树状视图控件中会 以所选择的目录作为根目录 重新加载数据。当用户在目录导航窗口中 选择一个目录时, 将触发该信号。在构造函数中, 创建了树状视图控件展示目录导航, 创建了文件系统模型作为数据模型。右侧是当前选择的目录的数据。当用户在目录导航窗口中 选择一个目录时, 右侧窗口将同步更新数据。

2024-11-15 08:52:33 267

原创 QT 库存管理软件项目实战

在物品列表中选择待入库的物品, 物品信息将自动填写到物品ID、 物品名称、物品单位编辑框中。物品列表中选择待出库的物品, 将自动填写物品信息到物品ID、 物品名称、物品单位编辑框中。在物品入库管理窗口的构造函数中, 实现了添加新的物品入库记录 和物品入库数据列表的界面。在物品出库管理窗口的构造函数中, 实现了添加新的物品出库记录 和物品出库数据列表的界面。在操作员管理窗口的构造函数中, 实现了添加新的操作员 和操作员数据列表的界面。在物品管理窗口的构造函数中, 实现了添加新的物品 和物品数据列表的界面。

2024-11-15 08:50:17 634

原创 QT 局域网聊天软件项目实战

建立了udp的readyRead信号 和槽函数udpReadyRead的连接。定义了槽函数on_pushButton_clicked: 发送按钮点击处理。调用QUdpSocket类型的 hasPendingDatagrams函数 判断是否还有没有读取的数据包, 如果有则调用receiveDatagram函数 读取数据包。接着使用writeDatagram函数 发送UDP网络数据包, 并将发送记录加入到历史记录中。顶部有一个用户昵称编辑框。底部是用户已经发送过的信息, 以及用户接收到的其它用户发送的信息。

2024-11-15 08:44:00 429

原创 QT 网络下载器软件项目实战

然后在网络响应对象reply上 建立了几个信号与槽的连接, 处理数据准备就绪信号readyRead, 读取已准备好的数据, 并写入到文件中。处理网络响应读取完毕信号finished, 读取还没来得及读取的数据, 并保存到本地文件中, 然后关闭掉已打开的文件。实际下载一个网络文件函数。在QT界面设计器中, 窗口界面中包含了 URL标签控件QLabel、 URL编辑框控件QLineEdit、 下载按钮控件QPushButton、 进度条控件QProgressBar、 文本浏览器控件QTextBrowser。

2024-11-15 08:41:30 430

原创 QT 图片阅读器项目实战

on_actionOpen_triggered 槽函数:菜单项打开图像。on_buttonZoomout_clicked 槽函数:放大按钮。on_buttonZoomin_clicked 槽函数:缩小按钮。滚动区域的内容是一个标签控件QLabel, 用于显示图像数据。打开之后 可以通过浮动窗口中的放大和缩小按钮 对图像进行放大和缩小操作。槽函数 on_buttonZoomin_clicked 实现图像放大功能。槽函数 on_buttonZoomout_clicked 实现图像缩小功能。

2024-11-15 08:39:40 328

原创 QT MD阅读器项目实战

load:加载指定的MarkDown文件。on_action_Open_MD_triggered: 菜单信号处理。在QT界面设计器中, 界面窗口中有一个滚动区域QScrollArea。窗口顶部有一个菜单, 用户通过该菜单加载新的MarkDown文件。在窗口界面中, 用户可通过顶部菜单加载新的MarkDown文件。主体部分显示了一个MarkDown文件的数据。用户可以点击MarkDown文件中的链接 在浏览器中打开网页。滚动区域scrollArea的大小 修改为中心窗口大小 减去一定的边缘区域的空间。

2024-11-15 08:37:44 247

原创 QT PDF阅读器项目实战

窗口界面类型MainWindow 定义了几个槽函数: onLoadPDF: 加载PDF。定义了几个私有函数: loadPDF: 加载PDF。pdf: PDF模块中定义的PDF文档对象。在顶部布局中, 创建了几个按钮: 打开PDF按钮、 前一页、后一页按钮。最后创建了中心窗口, 并使用主布局作为中心窗口的布局。gotoPage: 调用render函数显示指定索引序号的页面, 从而实现了跳转到指定页面的功能。顶部从左到右依次是: 打开PDF按钮、 页面序号信息、 页面序号编辑框、 前一页、后一页按钮。

2024-11-15 08:35:47 622

原创 QT视频播放器项目实战

为了滑块拖动过程中滑块 不受播放进度变化的影响, 如果是正在播放状态, 则暂停播放, 并设定playerPausedBySlider标记为true, 表示播放器已经因为滑块拖动而暂停播放了。定义了一些槽函数, 用于处理一些信号, 按钮点击、 视频回放状态发生变化、 媒体状态变化、 播放进度变化、 滑块按下了、 滑块释放了。还定义了一些控件类型的变量, player:视频播放器。在视频播放器界面中, 主体是一个视频输出画面, 底部左侧有几个控制按钮, 中间是当前播放进度和视频总时长, 右侧是可拖动的滑块。

2024-11-15 08:33:40 1477

原创 QT音乐播放器项目实战

定义了附加函数,比如 从音乐状态获取状态名称、 音乐状态的状态图标、 添加一个音乐、 从目录中添加所有的音乐。音乐状态按钮被点击、 音乐回放状态发生变化、 媒体状态变化、 菜单处理:从目录导入音乐。依次点击菜单中的音乐库、从目录导入音乐, 将先清除表格中的所有音乐, 然后扫描目录并导入目录中的所有音乐到表格中。表格中定义了所需的列的名称。在窗口中还放了一个菜单, 菜单中定义了一个名称为音乐库的菜单, 该菜单中定义了从目录导入音乐的菜单项。获取音乐的总时长的函数 get_duration_of_mp3。

2024-11-15 08:30:06 550

原创 QT QT视频播放器

创建播放器实例: 使用QMediaPlayer类 来创建一个新的媒体播放器实例, 并将视频文件路径设置为播放源。连接信号与槽: 为了控制播放、暂停、停止和进度, 需要连接QMediaPlayer的信号 mediaStatusChanged 到相应的槽函数。处理音频和视频同步: 确保音频和视频流的正确同步, 这通常由QMediaPlayer自动管理。然后,设定音频输出。接着,设定视频输出。用户界面友好: 通过Qt的GUI工具 如Qt Designer 或直接编程方式 创建用户友好的界面来控制播放器。

2024-11-13 17:36:11 752

原创 QT QT_Web编程

发起 GET 请求: 使用 manager的get 方法发起 GET 请求, 并将返回的 QNetworkReply 对象存储在变量中。在实际应用中, 你可能会需要更复杂的错误处理逻辑 和更精细的控制网络请求的行为。特点: 抽象化网络操作: QNetworkAccessManager 提供了一种抽象的方式来处理网络请求, 使得开发者可以专注于业务逻辑 而不是具体的网络实现细节。它提供了一个统一的接口 来发起各种类型的网络请求 如 GET、POST 等, 并处理返回的数据。9 09_QT_Web编程。

2024-11-13 17:34:52 347

原创 QT QT异常处理

在Qt框架中, 异常处理主要通过C++的异常机制来实现。异常处理的概念 异常: 当程序执行过程中遇到无法正常处理的情况 如文件打开失败、除零错误等, 会抛出一个异常对象。捕获器: 在代码中使用 try catch finally 块来定义可能发生的异常情况, 并提供相应的处理逻辑。当异常被抛出时, 程序会跳转到最近的catch语句块执行, 从而避免程序崩溃并给出用户友好的反馈。通过这种方式, Qt框架中的异常处理机制 不仅增强了代码的健壮性, 还提供了清晰、一致的错误管理方式。8 08_QT异常处理。

2024-11-13 17:33:41 643

原创 QT QT统计图

设置图表标题和隐藏图例: 这提供了图表的基本描述, 并控制了显示的额外信息如图例。饼状图的特点: 数据可视化: 饼状图通过不同的扇区 来表示数据的不同部分, 每个扇区代表一个类别的值与总和的比例。配置灵活: Qt的QChartView允许用户自定义饼状图的 颜色、标签、数据系列等属性。在Qt框架中, QChartView类提供了丰富的图表绘制功能, 包括饼状图Pie Chart。饼状图是一种用于展示数据占比的图形, 通常用不同颜色的扇形区域 来表示各个类别所占的比例。7.1.1 01_概念。

2024-11-13 17:32:29 488

原创 QT QT文件IO

创建目标文件: 使用WriteOnly模式打开目标文件, 逐行读取和写入: readLine 用于从源文件中读取一行。关闭文件: 在完成操作后, 确保正确关闭所有打开的文件, 以释放系统资源 并避免潜在的内存泄漏或未定义行为。错误处理: 在进行文件操作时, 如果遇到错误 如文件不存在或无法打开, QFile会抛出异常或者返回错误代码, 可以通过调用error函数 获取具体的错误信息。在Qt框架中, QFile类是用于处理文件的基本工具, 它提供了对文件进行 读取、写入、复制和删除 等基本操作的功能。

2024-11-13 17:31:18 366

原创 QT QT网络编程

在构造函数中建立了newConnection信号 和handleNewConnection槽的连接, 以便在有新的连接时调用该槽函数 来处理新的连接。在构造函数中, 依次对连接已建立信号、 读数据已就绪信号、 连接已断开信号 建立了信号和槽的连接, 以便在这些槽函数中 处理这些信号。在main函数中, 创建了MyTcpClient对象实例。在Qt的网络编程中, QTcpServer 和 QTcpSocket 是QT网络模块Network的两个核心类, 用于实现客户端-服务器通信模式中的不同角色。

2024-11-13 17:30:05 390

原创 QT QT数据库编程

特点: 内存数据库: SQLite支持在内存中创建和使用数据库, 这对于需要快速响应的应用程序特别有用。跨平台: Qt Sqlite模块确保了与Qt库的紧密集成, 使得开发者可以在多种操作系统上 如Windows、Linux、macOS 进行开发而无需修改代码。简单易用: 通过Qt的Sql模块接口, 可以方便地执行SQL查询和操作数据库。SQLite: 是一个轻量级的嵌入式SQL数据库引擎。Qt Sqlite: 是Qt库sql模块的一部分, 用于处理关系型数据库 SQLite的查询和操作。

2024-11-13 17:28:40 267

原创 QT QT图形视图编程

QT的图形视图框架 Qt Graphics View Framework 主要用于创建基于事件驱动的图形用户界面应用。它提供了一种方式来处理复杂的图形和图像操作, 特别是用于处理大型数据集 或需要动态更新显示内容的应用场景。场景Scene: 是一个抽象的概念空间, 在其中可以放置各种图形对象。添加图形元素: 通过QGraphicsEllipseItem 在场景中添加圆形, 并通过setPos方法设置它们的位置。这段代码展示了 如何使用QT的图形视图框架 创建一个动态图形场景视图界面。

2024-11-13 17:27:25 305

原创 QT QT动画效果编程

QPropertyAnimation特点 易于使用: QPropertyAnimation 提供了简单的方法来设置动画的开始和结束值、 持续时间、循环次数以及 是否在动画完成时触发一个回调函数。灵活的时间控制: 通过setDuration方法设置动画的持续时间, 并可以通过startValue和endValue方法 指定动画开始和结束时的值。创建按钮并设置文本: 创建了一个QPushButton对象, 将其关联到主窗口上, 并设置了按钮的文本为Click Me。设置了动画的持续时间为3秒。

2024-11-13 17:25:52 594

原创 QT QT绘图编程

在Qt中使用QPainter 进行绘图编程 主要涉及以下几个核心概念: 绘图上下文: QPainter需要一个绘图上下文 如QPaintDevice或其子类来绘制图形。绘图操作: QPainter提供了一系列方法, 用于执行各种绘图操作, 包括但不限于 移动、缩放、旋转、绘制文本和形状等。颜色管理: QPainter允许设置绘图的颜色, 包括背景色、线条颜色、填充颜色等。绘图编程特点 跨平台性: Qt的绘图API在不同的平台上表现一致, 使得开发者可以编写一次代码 并在多个操作系统上运行。

2024-11-13 17:24:38 385

原创 QT QT多线程

QThread 的特点: 多线程支持: QThread提供了创建和管理线程的基本框架, 使得开发者能够轻松地 在Qt应用中实现多线程编程。跨平台性: Qt的多线程类包括QThread 是跨平台设计的, 这意味着相同的代码 可以在不同的操作系统上运行, 并且具有相似的行为。在构造函数中建立了 QThread的线程运行完成信号finished 和QObject的deleteLater槽函数 的连接, 当线程运行完成之后, 会自动销毁该线程对象。在Qt框架中, QThread是一个用于实现多线程编程的核心类。

2024-11-11 09:24:28 330

原创 QT QT定时器

定时功能: QTimer的主要作用是设置一个计时器, 当计时器到达预设的时间间隔后, 会自动发射一个名为timeout的信号函数。线程安全: Qt中的QTimer类设计为线程安全的, 这意味着它可以在多线程环境中使用, 并且在不同的线程中创建和管理定时器实例是安全的。单次或重复执行: 通过设置oneShot属性为true, 可以创建一个只在第一次触发后就不再计时的定时器。然后设定定时器类型为粗糙的定时器。接着设定定时器为重复触发的定时器。Qt框架中的QTimer 是一个用于实现定时任务或周期性事件的类。

2024-11-11 09:23:11 382

原创 QT QT事件系统

QEvent 的特点: 事件分类: Qt将所有类型的事件归类为不同的子类, 并根据事件的性质和来源进行命名 例如QMouseEvent, QKeyEvent, QResizeEvent。如果对象中定义了处理特定事件类型的槽函数, 则这些槽会被调用以响应事件。postEvent 的特点: 发布事件: postEvent是一个方法, 用于在当前线程中向指定的对象发布一个事件。Qt会将事件放入事件队列中, 在适当的时候 例如在下一个事件循环周期 调用相应的槽函数来处理这些事件。这个事件在后续的事件循环中被处理。

2024-11-11 09:21:53 340

原创 QT QT信号与槽

在构造函数中, 使用QObject的connect函数 建立了信号thingChanged 和槽onThingChanged的连接。连接建立成功之后, 在发射信号后, 所有与之连接的槽函数会自动被调用。在work函数中 使用QT的emit宏标记 表示thingChanged函数调用 是一个发射信号的行为。在槽函数onThingChanged中 接收到了发射信号时携带的参数 并进行了处理。信号是一个特殊类型的函数, 用于表示某个事件的发生或状态的变化。槽的特点: 处理来自不同类的对象发送的信号。

2024-11-11 09:20:37 267

原创 QT QT对象树

通常, 当父级对象被删除或销毁时, 其子级也会相应地被删除或销毁, 除非它们有自己的独立生命周期管理机制 如使用 Q_OBJECT 宏定义的类。当一个信号被触发时, 它会沿树的路径向下传递到所有相关的槽。跨平台性: 由于Qt框架是跨平台的, 对象树的概念在所有支持的操作系统上都是一致的。在Qt框架中, QObject 是一个基础类, 用于创建可连接的、可发送信号和槽的类。在Qt中, 每个 QObject 实例都可以视为树中的节点, 并且可以与其他 QObject 节点建立连接关系 如信号与槽。

2024-11-11 09:19:19 388

原创 QT QT属性系统

类型安全: QProperty 提供了类型安全的访问方式, 这意味着在设置或获取属性值时, Qt会确保数据类型匹配。例如, 在多线程环境中, 它可以帮助避免不必要的同步操作, 并且在对象内部使用更高效的内存管理策略。跨类继承和重用: 通过Q_PROPERTY宏定义属性, 可以在多个类中共享相同的属性描述符, 这有助于代码的复用和维护。Qt Designer支持: 如果在Qt Designer中设计UI界面, 则可以利用QProperty来连接UI元素 如按钮、文本框等与对象中的属性。

2024-11-11 09:17:53 256

原创 QT QT可变类型系统

例如, 如果你有一个 QVariant 对象存储了一个整数, 并且你尝试获取它的字符串表示形式, Qt 将会自动将整数转换为相应的字符串。安全性: 在某些情况下, 当一个 QVariant 被转换为特定类型时, 如果原始数据无法转换, 例如, 尝试从 QString 转换为整数但字符串不是有效的数字, 则可能会抛出异常。总之, QVariant 提供了一种方便的方式来处理不同类型的数据, 并且在需要时进行自动转换, 这使得它成为 Qt 应用程序中一个非常实用的工具。4 04_QT可变类型系统。

2024-11-11 09:16:37 351

原创 QT QT元类型系统

QMetaType的特点: 类型查询: QMetaType允许程序查询关于已注册类型的元信息, 包括基本类型如int, float等, 类类型,枚举类型,结构体和联合体。注册自定义类型: 对于Qt框架中未直接支持的自定义类型或用户定义的类, QMetaType允许通过注册函数来添加对这些类型的元信息支持。类型比较和排序: QMetaType提供了比较不同类型的方法, 并且可以对类型进行排序 内存管理: 在Qt中, QMetaType还用于处理与内存管理相关的元信息, 如是否为引用类型、 是否需要复制等。

2024-11-11 09:15:15 306

原创 QT QT元对象系统

QMetaObject的特点: 元对象概念: 在C++中, 通常我们只能直接访问和操作对象的实例。然而, 在QT框架中引入了元对象的概念, 允许我们以一种更抽象的方式访问类的信息。反射能力: 通过使用QMetaObject, 我们可以实现反射功能, 在QT中编写代码来操作任何已知类的对象, 包括获取类名、方法列表、信号和槽等。定义了一个可调用的add函数。首先获取静态元对象mos。QT元对象系统中的QMetaObject 是一个非常核心的类, 它提供了访问和操作 Qt框架中所有类包括自定义类的能力。

2024-11-11 09:14:01 234

原创 QT QT内存管理

QSharedPointer 的主要作用是: 所有权管理: 当一个 QSharedPointer 指向的对象 不再被任何其他 QSharedPointer 引用时, 即所有指向该对象的 QSharedPointer 都变为空, 它会自动调用对象的析构函数, 从而释放分配给该对象的内存。而QWeakPointer可以避免这种情况, 因为即使一个对象被另一个对象 通过QWeakPointer间接引用, 只要没有直接的强引用存在, 该对象仍然会被垃圾回收。在作用范围B中, 定义了嵌套的作用范围C。

2024-11-11 09:12:16 1456

原创 QT QListWidget列表框控件

在setupUi函数中, 创建了一个列表控件QListWidget。然后创建了一系列的 列表控件条目QListWidgetItem。在QT界面设计器中, 设计了一个列表控件QListWidget。列表控件中添加了一系列的条目数据。窗口界面中放了列表控件QListWidget。列表控件中有一些条目。10 10_QListWidget列表框控件。10.1.1 01_效果。10.1.2 02_界面。10.1.3 03_实现。

2024-11-10 13:06:33 496

原创 QT QFileDialog文件对话框

在窗口类型MainWindow中, 定义了两个槽函数。打开按钮的点击信号clicked对应的槽函数, 用于为了读取数据的打开文件对话框。保存按钮的点击信号clicked对应的槽函数, 用于为了保存数据的保存文件对话框。在窗口界面中有两个按钮。打开按钮和保存按钮。点击打开按钮后, 显示打开文件对话框, 用户可选择一个文件用于读取。点击保存按钮后, 显示保存文件对话框, 用户可选择一个文件用于保存。在QT界面设计器中, 在窗口中布置了两个按钮QPushButton。打开按钮和关闭按钮。9.1.2 02_界面。

2024-11-10 13:05:22 281

原创 QT QMessageBox消息框

在MainWindow类型中, 定义了槽函数 on_buttonOK_clicked, 用于处理按钮点击信号clicked。当点击按钮时, 触发clicked信号, 对应的槽函数被调用。在槽函数中, 使用信息框类型QMessageBox 的information函数弹出信息框。在QT界面设计器中, 放了一个确定按钮QPushButton。点击确定按钮, 弹出信息框QMessageBox。窗口界面中放了一个按钮。点击按钮之后, 弹出信息框。8 08_QMessageBox消息框。8.1.2 02_界面。

2024-11-10 13:04:04 234

原创 QT QDialog对话框

首先定义了对话框类型ButianyunDialog。对话框中定义了槽函数 on_buttonOK_clicked。用于处理确定按钮点击信号clicked。当用户点击确定按钮时, 会触发按钮QPushButton的clicked信号。这会调用对应的槽函数。在槽函数中调用QDialog类型的accept函数, 关闭对话框窗口。这个窗口界面是一个QT对话框。对话框中有一个确定按钮。点击确定按钮之后关闭对话框。在QT界面设计器中, 设计了一个对话框界面QDialog。对话框中设计了一个按钮。

2024-11-10 13:02:57 313

原创 QT QStatusBar状态栏

首先创建了一个标签控件QLabel, 添加到了状态栏上。然后创建了三个按钮控件QPushButton, 添加到了状态栏上。在QT界面设计器中, 界面底部放了一个状态栏控件QStatusBar。将在C++代码中在状态栏上放按钮和标签控件。在窗口界面底部布置了一个状态栏。状态栏左侧放了一个标签。状态栏右侧依次放了三个按钮。6 06_QStatusBar状态栏。6.1.1 01_效果。6.1.2 02_界面。6.1.3 03_实现。

2024-11-10 13:01:48 241

原创 QT QMenuBar菜单栏

在MainWindow类型中, 定义了几个槽函数, 处理菜单条目的触发信号。当点击菜单条目时, 会调用对应的槽函数, 修改标签上的信息。在QT界面设计器中, 设计了一个菜单栏QMenuBar。包括一个菜单条目和对应的弹出菜单。底部有一个标签QLabel。在窗口界面中有一个菜单栏。菜单栏有一个菜单条目和对应的弹出菜单。5 05_QMenuBar菜单栏。5.1.1 01_效果。5.1.2 02_界面。5.1.3 03_实现。

2024-11-10 13:00:27 329

原创 QT QToolBar工具栏

QT界面设计器中布置一个工具栏控件。在界面设计器中没有工具栏控件。可以先布置一个Widget窗口控件, 保存之后使用记事本修改界面设计 mainwindow.ui。在MainWindow构造函数中 创建了工具按钮A、B、C。工具栏中没有提供QAction元素, 因此使用C++代码进行创建。在窗口界面中有一个工具栏。工具栏上有三个工具按钮。4 04_QToolBar工具栏。4.1.1 01_效果。4.1.2 02_界面。4.1.3 03_实现。

2024-11-10 12:58:53 279

原创 QT QGridLayout网格布局

网格布局中的按钮按照三行三列排列。创建按钮控件之后, 按钮大小策略设定为固定大小。每一个按钮都是128X128。使用QGridLayout的addWidget函数 将按钮放置到网格布局中。在窗口界面中有一个网格布局QGridLayout。网格布局中安排了九个按钮, 按照三行三列排列。在界面设计器中仅仅放了一个网格布局QGridLayout。按钮控件使用C++代码创建。2 02_QGridLayout网格布局。2.1.1 01_效果。2.1.2 02_界面。2.1.3 03_实现。

2024-11-10 12:57:24 247

原创 QT QStackedWidget堆栈窗口控件

在QT界面设计器中, 顶部放了三个按钮A、B、C。底部放了一个堆栈窗口控件QStackedWidget。堆栈窗口控件中有三个页面A、B、C。每一个页面中有一个标签QLabel。窗口界面中放了几个按钮A、B、C。还放了一个堆栈窗口控件。堆栈窗口控件中有几个页面A、B、C。每一个页面中有一个标签。点击按钮可以切换到对应的页面。在MainWindow类型中定义了几个槽函数。当点击某个按钮时, 会调用对应的槽函数, 在槽函数中将堆栈窗口控件 切换到对应的页面。3 03_QStackedWidget堆栈窗口控件。

2024-11-10 12:56:11 513

原创 QT QBoxLayout盒式布局

在QT界面设计器中, 布置了一个垂直布局QVBoxLayout。在布局中又布置了三个按钮。在窗口界面中放了一个垂直布局QVBoxLayout。在布局中放了三个按钮。这个界面的所有界面元素 完全是在QT界面设计器中设计的。1 01_QBoxLayout盒式布局。1.1.1 01_效果。1.1.2 02_界面。1.1.3 03_实现。

2024-11-10 12:52:30 148

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除