QT实战案例之简易Excel
本文目录导航:
QT实战案例之简易Excel
创建项目使用MainWindow为父窗口,创建名为SimpleExcel的QT5项目。
设计界面,添加动作至工具栏,并关联一个槽函数。
在主窗口中添加一个TableView。
右键项目,选择添加新元素,选择QT设计师类,创建名为SizeDialog的子窗口,用于设置行数和列数。
设计界面,给两个按钮绑定槽函数。
核心代码:引入组件和声明私有成员。
在构造函数中初始化模型,析构函数中删除模型。
声明获取行列数子窗口的公共方法,修改sizedialog.h。
在析构函数中,设置行数和列数,获取行数和列数。
实现获取行列数子窗口的公共方法,修改。
在中引入子窗口依赖,实现SetSize动作绑定的槽函数。
新增HeaderDialog子窗口,设计界面并给两个按钮绑定槽函数。
修改headerdialog.h,引入组件依赖,声明公开方法和私有成员。
在构造函数中初始化模型,实现设置表格头数据的方法。
创建LocateDialog子窗口界面,给Cancel按钮绑定槽函数。
修改locatedialog.h,引入组件依赖并声明成员。
处理设置单元格窗口的显示和关闭事件,实现设置处理单元格窗口最大值方法,实现设置处理单元格窗口行列值槽函数。
给Ok按钮绑定槽函数,实现设置单元格方法。
在mainwindow.h中引入组件依赖并声明成员。
实现设置单元格文本方法,设置单元格动作启用状态方法,给表格视图绑定点击槽函数,实现设置单元格槽函数。

YLog4C--跨平台通用C++日志类
YLog4C是一个通用的C++日志类,已在Windows、Linux和Arm Linux平台下用于多个实战项目。
本类代码独立使用,只有一个cpp和一个h文件,不依赖其他第三方库和文件。
基本上只需把文件加到工程即可直接编译使用,偶尔有编译不过的,也只是头文件包含问题,修改对应包含即可。
这是laody完全自主开发的代码,若有问题或建议,请联系Email: 认为一个好工具类的使用应该是“拿来就用,用完不管”,YLog4C类也依据此原则,没有任何多余步骤,包含YLog4c.h,直接使用:编译运行后,直接在运行目录创建log文件:程序同时在控制台和日志文件输出如下内容:如在Linux或其他非Visual C++环境,请在工程目录创建stdafx.h文件,内容可为空。
程序默认行为如下所示,可调用接口进行个性化设置,设置立即生效。
1、日志路径为程序运行目录。
2、日志文件名格式:目录+应用程序名称+“_+日期+,应用程序名称为运行文件名,从首个“-”符号截断,如“ylog-v1.0”将截断为“ylog”。
3、每个日志文件最大100M,超过此尺寸,原文件更换为“xxxx_”(N为从1递增的整数),并建立新的日志文件。
4、每天最多4个日志文件,超过此数量,自动删除后缀最大的日志文件。
1、按日志级别由高到低,分别有Fatal、Error、Warn、Info、Debug和Buff六个调用接口,除Buff接口调用格式固定外,其他接口均与printf函数相同,采用可变参数格式。
2、低于当前已设置级别的调用不会输出任何内容,比如假设系统正常上线运行后,设置了级别为Info,则高于此级别的Fatal、Error、Warn、Info调用会输出,而低于此级别的Debug和Buff被屏蔽,不输出任何内容。
3、日志输出的日期通常已在文件名体现,因此日志行只按时分秒格式输出时间。
Info调用输出的格式是“hh:mm:ss 日志内容”,其他调用在日志内容前插入调用点的源文件名称和行数,方便问题定位。
4、为了能插入文件名和行数,调用实际采用宏定义方式,因此虽然类定义了LogBuff等公共函数,但请不要直接调用,而是调用前面描述的六个输出调用接口。
YLog4C不需任何设置就能工作的很好,实际上,笔者通常在项目中只做日志文件目录和日志级别两种设置。
个性化设置函数是静态成员函数,更改类的静态全局变量,立即生效,因此可以在系统运行过程中动态更新日志的行为。
设置应用程序名称、日志文件目录、日志文件的最多个数、是否输出到控制台、是否输出到文件、是否输出到函数、设置日志级别、是否每天一个文件、设置日志文件最大长度、设置是否打印线程ID、设置是否实时刷新等功能。
文件已发布在github上,网址: laody555/YLog4C。
Qt6开发视频播放器(项目实战)
本篇文章将使用QT6.4来实现一个简单视频播放器,在QT中使用一个视频播放器还是非常简单的。
让我们一起来实现这个视频播放器吧。
QMediaPlayer是Qt多媒体框架中的一个组件,它用于播放音频和视频文件。
它使用了跨平台的Qt音频和视频后端,并兼容多种音频和视频格式。
通过创建QMediaPlayer对象,调用setSource()函数指定媒体文件,然后调用play()函数开始播放。
QMediaPlayer还提供了多种信号和槽函数,用户可以在媒体播放期间捕获和处理事件,如播放出错、播放结束、媒体信息更新和媒体状态改变等。
使用这些信号和槽函数,可以实现控制播放进度、动态显示媒体元数据等功能。
QVideoWidget是Qt框架中的组件之一,用于显示视频的自定义窗口。
通过将QVideoWidget添加到应用程序的用户界面中,并使用QMediaPlayer或其他支持Qt视频框架的组件将视频播放到该窗口中,可以轻松实现视频播放器的自定义UI。
QAudioOutput是Qt框架中的组件,用于播放音频数据。
它使用跨平台的Qt音频后端,并兼容多种音频格式,可以将音频数据播放到扬声器或其他音频设备中,并控制播放进度、音量和状态等属性。
在实现播放器时,QMediaPlayer、QVideoWidget和QAudioOutput是关键组件。
使用这些组件可以创建一个基本的视频播放器。
以下是一个简单的视频播放器代码实现示例:cpp#include mainwindow.h#include ui_mainwindow.h#include #include #include MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this);QMediaPlayer *mediaPlayer = new QMediaPlayer(this);QVideoWidget *videoWidget = new QVideoWidget(this);QAudioOutput *audioOutput = new QAudioOutput(this);// 设置播放路径mediaPlayer->setMedia(QUrl(QMediaContent::fromLocalFile(\path/to/video\)));// 链接信号与槽connect(mediaPlayer, &QMediaPlayer::positionChanged, videoWidget, &QVideoWidget::setPos);connect(mediaPlayer, &QMediaPlayer::durationChanged, videoWidget, &QVideoWidget::setMinimumSize);connect(mediaPlayer, &QMediaPlayer::stateChanged, this, &MainWindow::handleMediaPlayerStateChanged);connect(mediaPlayer, &QMediaPlayer::error, this, &MainWindow::handleMediaPlayerError);// 设置播放器、视频窗口和音频输出videoWidget->setMediaPlayer(mediaPlayer);ui->layout->addWidget(videoWidget);ui->layout->addWidget(audioOutput);}void MainWindow::handleMediaPlayerStateChanged(QMediaPlayer::State state){// 处理播放器状态改变}void MainWindow::handleMediaPlayerError(QMediaPlayer::Error error){// 处理播放器错误}在实现视频播放器时,需要在文件中加上QT += multimedia以使用多媒体框架组件。
在最终效果中,视频播放器将显示在用户界面上,用户可以控制播放、暂停、停止视频,同时还可以调整音量和播放进度。
以上内容涵盖了使用QT6.4实现视频播放器的基本步骤和关键组件。
如果您需要更详细的代码实现和示例,可以参考Qt官方文档或相关的教程资源。