C++/Qt/QtQuick基础应用
C++/Qt/QtQuick的一些基础应用和实例分享
zhengtianzuo
C++/Qt/Qml全栈工程师 人生促一事 便致他极
展开
-
Qt获取本地IP
通过QNetworkInterface::allAddresses()就可以获取到当前所有的网络地址. QList<QHostAddress> list = QNetworkInterface::allAddresses(); foreach (QHostAddress address, list) { if(address.protocol() == QAb原创 2017-09-30 16:43:54 · 881 阅读 · 0 评论 -
Qt/Qml工程转VS工程
Qt/Qml工程是可以通过qmake工具直接转换为VisualStudio工程的 命令行:qmake -tp vc当然, qmake和vc的编译环境都是有路径的, 如:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\binC:\Qt\Qt5.9.3\5.9.3\msvc2015\bin我是直接加入到了系统的Path路径里, 这样方便一些原创 2017-12-02 09:55:59 · 3908 阅读 · 0 评论 -
Qt程序各个平台打包发布及安装程序大全
通用: 1.准备图标 图标可以直接使用一般格式的图片制作, 比如jpg, png等 推荐使用Photoshop制作原始图 推荐使用IconWorkshop制作图标, 非常的方便 Windows和Linux的程序图标, 制作ico格式图标 MacOS制作icns格式图标 Android和IOS直接使用Png2.准备License文件, readme说明等程序发布: 1.Windows:原创 2017-11-07 15:02:47 · 12334 阅读 · 6 评论 -
Qt创建桌面和开始菜单快捷方式
使用QFile的link方法可以非常方便的创建快捷方式 //建立桌面快捷方式 QString strAppPath = "C:/Windows/System32/notepad.exe"; QString strDesktopLink = QStandardPaths::writableLocation(QStandardPaths::DesktopLocation) + "/原创 2017-11-04 16:51:49 · 4751 阅读 · 0 评论 -
Qt写入卸载信息
Qt的QSettings提供了非常方便的注册表读写 写入://写入注册表void setRegValue( QString strPath, QString strItemName, QString strItemData){ QSettings reg(strPath, QSettings::NativeFormat); reg.setValue(strItemNam原创 2017-11-04 16:09:58 · 741 阅读 · 1 评论 -
Qml程序版本信息
准备好一个图标 ico文件 新建文件名为VersionInfo.rc 加入图标信息IDI_ICON1 ICON DISCARDABLE "logo.ico"加入版本信息VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,0 PRODUCTVERSION 1,0,0,0 FILEFLAGS 0x0L FILEFLAGSMASK 0x3fL FILE原创 2017-10-21 17:57:46 · 1025 阅读 · 0 评论 -
Qt设置开机启动
直接上代码#ifdef Q_OS_WIN32 QSettings reg("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat); QString strAppPath = QDir::toNativeSe...原创 2018-03-26 11:04:06 · 2192 阅读 · 1 评论 -
Qt单实例进程
Qt实现单实例进程一般有3种方式: QLocalServer QSharedMemory QtSingleApplication这里主要介绍QLocalServer的方式启动时尝试连接, 如果连接想相同名称的QLocalServer, 说明程序已经启动了, 退出 //连接LocalServer QString serverName = "localserver";原创 2018-01-25 17:36:56 · 2077 阅读 · 0 评论 -
Qt调用zlib压缩解压文件
zlib提供compress uncompress 两个函数分别是压缩和解压ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen));ZEXTERN int ZEXPORT uncomp原创 2017-12-22 09:38:19 · 2696 阅读 · 1 评论 -
Cpp获取Windows系统版本
参考 windows 下c++获取操作系统版本名称笔记 感谢原博主的分享windows通过c++获取操作系统主要分两种: 1、windows是8.1版本以下版本:获取操作系统可以通过windows提供的api中GetVersionEx函数来获取 2、windows是8.1版本及以上:获取操作系统主要通过RtlGetNtVersionNumbers法来获取//获取8.1以下版本操作系统名称st原创 2017-11-30 15:06:53 · 943 阅读 · 1 评论 -
Cpp判断是否为局域网IP
借鉴了此博文 感谢博主分享 文章地址/*----------------------------------------- 局域网IP地址范围 A类:10.0.0.0-10.255.255.255 B类:172.16.0.0-172.31.255.255 C类:192.168.0.0-192.168.255.255 ------------------------------------原创 2017-11-03 14:51:43 · 568 阅读 · 0 评论 -
Qt使用Log4Qt写日志
Log4Qt 是Apache Log4J 的Qt移植版 官网 http://log4qt.sourceforge.net/首先初始化Log4Qt, 设置配置文件和消息绑定 Log4Qt::PropertyConfigurator::configure("QtLog4Qt.conf"); Log4Qt::LogManager::setHandleQtMessages(true);QtL原创 2017-10-09 10:51:58 · 7077 阅读 · 0 评论 -
Cpp调用Log4cpp生成日志
Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。官网地址: [访问](http://log4cpp.sourceforge.net/)初始化代码: log4cpp::PatternLayout* pLayout = new log4cpp::PatternLayout(); pLayout->setConversionPattern("%d:原创 2017-09-29 19:03:26 · 1617 阅读 · 0 评论 -
QtQuick/Qml自定义控件(9)-Quick组件管理
Qml开发中经常需要使用大量的动态创建的对象, 并且需要进行管理.qml可以通过Qt.createComponent来动态进行对象的创建, 然后就是保存对象和进行管理了比如新增 删除 修改 查询等操作, 批量的 单独的操作 都是需要的 仅此文章的功能 访问三峰驼Qml控件大全联系方式:作者郑天佐QQ278969898主页http://w...原创 2019-05-10 17:38:56 · 1304 阅读 · 0 评论 -
QtQuick/Qml自定义控件(8)-显示fps
看看fps的定义:FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会越流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15帧。要想显示实时的fps, 其实就是在页面发生变化的时候 实时进行计数, 每秒变化的次数 就是fps.所以在windowChanged...原创 2019-05-07 16:30:14 · 1203 阅读 · 1 评论 -
QtQuick/Qml自定义控件(7)-通知消息
首先我们实现一种简单的文字提示 然后几秒后消失的效果显示和消失的效果可以用透明度渐变来做然后我们在根据显示的位置 增加不同的显示加在上图标和背景 仅此文章的功能 访问三峰驼Qml控件大全联系方式:作者郑天佐QQ278969898主页http://www.camelstudio.cn/邮箱camelsoft@163.com...原创 2019-05-06 16:50:28 · 917 阅读 · 0 评论 -
QtQuick/Qml自定义控件(6)-消息提醒对话框
首先我们做自定义标题栏 这个很好做, 左上角一个图标, 然后右上角一个关闭按钮然后中间加一个Text显示信息, 加一个确定按钮当然这是最普通的消息提醒框下面并排增加一个取消按钮我们看看异形窗体的效果当然通过自定义可以完成很多效果的 仅此文章的功能 访问三峰驼Qml控件大全联系方式:作者郑天佐QQ278969898主页http...原创 2019-05-06 15:30:51 · 2124 阅读 · 0 评论 -
QtQuick/Qml自定义控件(5)-字体选择对话框
QtQuick下 可以通过Qt.fontFamilies()来枚举系统所有的字体我们字体列表就可以使用这个, 将常用的字体也罗列出来然后我们制作一个下拉选择的按钮点击的时候 箭头图片进行切换就行.接下来需要给字体选择做一个按钮, 粗体 斜体 下划线 删除线 仅此文章的功能 联系方式:作者郑天佐QQ278969898主页http:/...原创 2019-04-30 17:01:12 · 880 阅读 · 0 评论 -
QtQuick/Qml自定义控件(4)-颜色输入对话框
首先我们来看看PS的颜色输入框, 非常的专业, 优美左侧的渐变色选择区域, 相当的方便啊我们就先来做这块吧首先渐变色还是比较好弄的, 直接上Gradient搞定然后是选择的圆框, 鼠标指哪打哪录制的gif渐变色显示不是很清楚接下来是色调调节也是一个Gradient搞定再加上透明度的选择然后新选择的颜色和当前颜色都显示出来很多数据值也需要显示出来, 用InputTex...原创 2019-04-28 17:16:27 · 1013 阅读 · 0 评论 -
QtQuick/Qml自定义控件(3)-自定义对话框
目前自定义窗体涉及到的几种效果靠边停放自定义标题栏阴影效果圆角效果拉伸大小异形窗体首先我们来看看QtQuick默认窗体在Windows10上的表现可以看出来 贴近桌面边缘时的效果, 这是windows10的系统特性, 并不是QtQuick的效果.然后我们自定义窗体一般会选择自定义标题栏, 我们去掉标题栏 再试试然后默认的窗体效果没有了…为此如果要保持自定义风格和窗体...原创 2019-04-18 23:31:09 · 1915 阅读 · 0 评论 -
QtQuick/Qml自定义控件(2)-IP地址输入框
QtQuick没有提供IP输入框控件, 于是我打算自定义开发一个.首先来看看windows系统里的IP输入框有哪些特性4个输入框 中间由3个点间隔. 再看看动态的这里可以看出来 特性1 在第一栏输入三位数字后, 输入焦点自动切换到第二栏了.再来看看特性2 在第二栏输入的时候 按键盘左方向移动 可以回到第一栏向右也应该是同理的在看看删除输入的情况 特性3删除的时候, 如果本栏删...原创 2019-04-10 16:09:33 · 2152 阅读 · 2 评论 -
QtQuick/Qml自定义控件(1)-ToolTip
首先我们看看官方提供的QtQuick.Controls 2.x TooltipTooltip效果是怎么样的看起来还是挺好用的 也很方便 然后我们再看来看看特殊的情况我们将窗体大小缩小后很明显 Tooltip的文字描述长度超过窗体右边边界时 无法正常显示了.我们在看看边界的情况正常关闭按钮的Tooltip:QtQuick2.x默认Tooltip:虽然显示是完整的, 但是内容...原创 2019-04-10 14:59:58 · 2465 阅读 · 0 评论 -
QtQuick系列教程(6)-Qml与C++交互
总目录传送本博文技术等级: ★★☆☆☆☆☆☆☆☆QML 作为一种灵活高效的界面开发语言已经越来越得到业界的认可。QML 负责界面,C++ 负责逻辑,这也是 Qt 官方推荐的开发方式。那么 QML 与 C++ 的交互必然是需要我们掌握并且精通的。本 Chat 将详细介绍 QML 与 C++ 的几种交互方式,以及在项目中的实际应用方法。通过实际的例子来实现,体验并且应用这几种交互方式,为我...原创 2018-04-07 22:12:41 · 5555 阅读 · 0 评论 -
QtQuick系列教程(5)-Qml开发界面介绍(Qml基础-4)
总目录传送本博文技术等级: ★☆☆☆☆☆☆☆☆☆实际开发中常用的qml元素已经介绍的差不多了, 接下来我们来看看交互方面, 除了按钮的点击事件, 其他的很多交互方式都还没有介绍, 不着急, 一步一步来.鼠标事件是最常用的, 比如鼠标移动到一个组件内, 左键右键滑轮什么的. 接上面的样例工程, 我们继续改造 从button下手, 鼠标移入的时候,显示一张图片,移出的时候显示另外一张...原创 2018-04-05 18:09:57 · 5722 阅读 · 5 评论 -
QtQuick系列教程(4)-Qml开发界面介绍(Qml基础-3)
总目录传送本博文技术等级: ★☆☆☆☆☆☆☆☆☆文本, 输入框, 按钮, 事件都介绍了, 下面我们玩一下图片 首先我们在按钮的上方加一个Image组件 用来显示图片 再加一个按钮 用来切换图片 书写代码 Image { id: image height: 32 width: 128 anchors....原创 2018-04-05 11:08:54 · 4590 阅读 · 4 评论 -
QtQuick系列教程(3)-Qml开发界面介绍(Qml基础-2)
总目录传送本博文技术等级: ★☆☆☆☆☆☆☆☆☆布局大概说了下, 接下来我们看看事件响应 希望按一下按钮就改变窗体的标题, 试试修改代码 首先给窗体加一个id标示, 否则无法访问这个窗体的对象, id相当于cpp的类名frmWindow.title = qsTr("修改以后的标题")标准的对象的属性赋值 运行 点击按钮, 果然标题就变成了我们希望的文本...原创 2018-04-04 18:20:15 · 4582 阅读 · 5 评论 -
QtQuick系列教程(2)-Qml开发界面介绍(Qml基础-1)
总目录传送本博文技术等级: ★☆☆☆☆☆☆☆☆☆这篇我们开始介绍如何具体的写代码实现QtQuick的UI界面 首先我们新建一个空的Qml工程创建好以后代码果然很少 编译运行一下, 看看 窗体的标题是Hello World, 其他一片空白啥都没有 ok 现在先来理解下工程代码的结构和大致的意思点开QmlTest.pro, 这是工程描述文件 大概了解一下...原创 2018-04-04 16:00:18 · 12518 阅读 · 5 评论 -
QtQuick系列教程(1)-Qml开发环境的搭建(Windows)
总目录传送本博文技术等级: ★☆☆☆☆☆☆☆☆☆首先我们考察一下Windows下使用Qt的正确步骤, 其实学习就是一个探索的过程. 我的系统是Win10, 去Qt官网下载Windows下的Qt, 版本当然是最新.http://download.qt.io/archive/qt/5.10/5.10.1/很明显, 我下载qt-opensource-windows-x86-5.1...原创 2018-04-04 11:22:10 · 11024 阅读 · 13 评论 -
Silk安装程序
使用QtQuick开发UI: Qml开发文件解压: 使用 quazip文件压缩: zip格式, 然后使用Silk Zip文件分割器将zip文件分割避免加入资源文件中编译不通过快捷方式: Qt创建桌面和开始菜单快捷方式卸载信息: Qt写入卸载信息需要完整代码请访问QtReleaseExamples原创 2017-11-23 09:49:34 · 1077 阅读 · 0 评论 -
Silk Zip文件分割器
程序打包的时候会用到将Zip包进行切割, 然后将切割后的文件块加入到qrc中进行编译 QFile infile(strZipFile); if (!infile.open(QIODevice::ReadOnly)) { return(false); } infile.seek((nIndex-1)*intPakageSize);原创 2017-10-26 13:54:43 · 489 阅读 · 0 评论 -
Qml列表项拖放
ListModel的move(int from, int to, int n) 可以将列表项进行移动 根据鼠标的拖动位置, 可以判断出需要移动项的序号 var lastIndex = listview.indexAt(mousearea.mouseX + listItem.x,原创 2017-11-25 15:10:47 · 1368 阅读 · 0 评论 -
Qml饼状图
ChartView { anchors.fill: parent theme: ChartView.ChartThemeQt antialiasing: true legend.visible: false animationOptions: ChartView.AllAnimations PieSerie原创 2017-12-16 13:41:27 · 2205 阅读 · 0 评论 -
QmlAndroid旋转屏幕
android的API setRequestedOrientation可以旋转屏幕QmlAndroidOrientation::QmlAndroidOrientation(QObject *parent) : QObject(parent) { activity = androidActivity(); }QString QmlAndroidOrientation::set原创 2018-01-06 17:22:21 · 1317 阅读 · 0 评论 -
Qml倒影
使用QtGraphicalEffects中的ShaderEffect ShaderEffect { height: parent.height width: parent.width anchors.top: parent.bottom anchors.left: parent.left原创 2017-11-02 11:49:11 · 707 阅读 · 1 评论 -
Qml侧边滑动菜单
Rectangle { anchors.fill: parent color: "#AAAAAA"; opacity: bMenuShown ? 1 : 0 Behavior on opacity { NumberAnimation { duration: 300原创 2017-10-18 17:36:57 · 3501 阅读 · 1 评论 -
QmlAndroid输入法的隐藏和显示
Qt Android下显示和隐藏原生的输入法分别是 Qt.inputMethod.show()和Qt.inputMethod.hide()TextEdit{ id: textEdit text: qsTr("输入一些文字") font.family: "microsoft yahei" font.pixe原创 2017-11-25 10:09:28 · 1304 阅读 · 1 评论 -
Qml圆形波浪进度条
参考 Canvas制作动态进度加载水球 感谢原博主的分享 //range信息 property int rangeValue: 66; property int nowRange: 0; //画布 property int mW: 250; property int mH: 250; property int lineWidth: 2; /原创 2017-12-01 16:13:39 · 2598 阅读 · 3 评论 -
QTextEdit中插入Gif动画并显示
早期我设计的IM消息输入框开始采用的是RichEdit2.0, MFC环境下的. Gif的显示采用在RichEdit中嵌入ActiveX的方式, 现在想想也是很疯狂的事....后来采用的是Qt Widgets中的QTextEdit,QTextEdit是支持html语言的, 所以可以直接通过调用insertHtml插入静态图片, 动态的Gif图呢?其实也就是需要循环播放Gif中的多帧图原创 2017-09-27 15:07:53 · 2764 阅读 · 1 评论 -
Qml底部导航
footer加上TabBar即可实现底部导航footer: TabBar { id: bar height: 48 width: parent.width currentIndex: 0 ListModel { id: myModel ListElement { modelT原创 2017-10-19 17:10:04 · 2331 阅读 · 3 评论 -
Qt Qss按钮
编写Qss文件:QPushButton{ border-image: url(:/ButtonNormal.png);}QPushButton:hover{ border-image: url(:/ButtonHover.png);}QPushButton:pressed{ border-image: url(:/ButtonPressed.png);}设置Q原创 2017-10-11 09:46:15 · 1982 阅读 · 0 评论