Qt-Examples
Qt-Examples copied to clipboard
一些简单常用的QT示例
Qt的一些简单常用示例
- 简体中文
- English
QT实用小技巧(想到就更新) | 自由意志 (realchuan.github.io)
Battery——电池控件


BatteryQuick--电池控件(QtQuick
)
Bootstarp--程序开机自启动设置和检测
-
Windows下读写注册表实现开机自启动,有两个位置可以写入;
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run //对于所有用户 HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run // 对于当前用户
-
MacOS下拷贝plist文件到~/Library/LaunchAgents/,使用launchctl load/unload命令实现开机自启动;
-
Ubuntu下有两种方式:
- 使用systemctl --user enable/disable命令实现开机自启动;
- 拷贝.service和.timer文件到~/.config/systemd/user/,使用systemctl --user enable/disable命令实现开机自启动;
- systemctl命令用于.timer文件,.timer文件用于定时执行.service文件,防止图形界面启动后,出现qxcbconnection: could not connect to display错误;
- 把/usr/share/Application/下的.desktop文件拷贝到~/.config/autostart/下,实现开机自启动(未验证);
- 使用systemctl --user enable/disable命令实现开机自启动;
BubbleWindow——气泡式对话框,也可作工具提示(ToolTip)

Chart——可视化图表绘制,参考使用 QChart 显示实时动态曲线 和QChart相关示例

图一、二动态曲线

图二坐标轴也会滚动
CheckBoxStandardItem——可以勾选的StandardItem,而且根据勾选状态自动更新父节点状态或者子节点状态

Clock——时钟

DashBoard——仪表盘

FlowLayout——流式布局,来自QT示例Flow Layout Example

DragDrop——简单控件拖拽,参考QT示例Drag and Drop Puzzle Example
HttpClient——http客户端
IconButton——支持Icon跟随状态切换的EventFilter和Button
ImageCarousel——简易图片轮播

GridViewModel——基于QListView的自适应宫图

LogAsynchronous——异步日志,开辟一个线程专门往文件里写日志,前后端分离
- 日志文件名:应用程序名(appname).时间(time,精确到秒).主机hostname.进程ID(Tid).log(.count),假如一天内写的单个日志大约接近1G,会自动加后缀(.1,.2.3...,以此类推)新建新的日志文件去写,每天0点依然会rollFile;
- 正常文件名:LogAsynchronous.2020-04-26-20-29-03.Youth.11828.log;
- 当日写日志接近1G,新建的文件名:LogAsynchronous.2020-04-26-20-38-55.Youth.11828.log.1;
- 日志格式:时间(time,精确到毫秒).线程ID(Pid).日志级别(debug).打印信息(msg).文件(File).行号(Line)。
- 比如:2020-04-26 20:38:55.818 2052 [Debug] 123456789qwertyuioplkjhgfdsa 8412789-File:(..\logAsynchronous\main.cpp) Line:(19);
- Qt-App,这个项目中也有对日志的封装,与本项目的代码大致一致,由于两个项目更新频率可能不同,建议在查看日志模块时,同时检查Qt-App的最新更新。
MulClient——多线程客户端,一个线程一个客户端(怎么可以绕开系统限制,模拟百万个客户端)
MulServer——多线程服务端,一个线程一个客户端处理(处理实时性很高的TCP通讯)
NavigationProgressBar——导航进度栏

PasswordLineEdit——密码输入框


ProgressArc——圆弧进度条

ProgressBar——QProgressBar圆角替代方案

ReactorServer——多线程服务端,Reactor模式(Echo)
SimpleUdp——简单UDP例子,广播和接收
ShowInMyComputer——在我的电脑中显示当前应用程序
防火墙白名单。
SlipButton——滑动按钮
另:更简单的实现:有动画效果的 CheckBox;


SqliteWAL——Sqlite WAL 模式下多线程并发写入数据库程序
WAL模式的优点
- 提高了并发性:WAL模式允许多个读取器和一个写入器同时访问数据库,可以提高并发性能和性能;
- 崩溃恢复:WAL模式在发生崩溃时确保数据库保持一致,通过在提交事务之前将所有更改刷新到日志文件来实现;
- 改进了写入性能:WAL模式允许并发写入,可以比默认的回滚模式更好地改进写入性能;
WAL模式的注意事项
- WAL模式仅适用于SQLite 3.35.5+版本;
- 增加了磁盘使用量:与回滚模式相比,WAL模式需要更多的磁盘空间,因为它在提交更改之前将所有更改都写入日志文件;
- 读取性能较慢:在WAL模式下,读取操作不会被写入操作阻塞,如果同时进行读取和写入操作,可能导致数据不一致。
TableViewModel——表格视图
- 各种自定义代理
- ButtonDelegate;
- ComboBoxDelegate;
- ProgressBarDelegate;
- RichTextItemDelegate;
- StarDelegate----来自Qt示例Star Delegate Example;
- 十万级数据渲染;

Thread——多线程例子,6种写法
TreeViewModel——树形视图(MVC),QtCreator源码

