Qt
天已青色等烟雨来
nozuonodie
展开
-
QT5.6 编译SQLServer驱动
简要说下编译的主要步骤@1:打开vs2015的命令行编译环境‘@2:进入到cd到源码目录:cd C:\Qt\Qt5.6.0\5.6\Src\qtbase\src\plugins\sqldrivers\odbc@3: qmake 生成makefile:qmake odbc.pro@4:nmake命令编译:nmake编译完成后驱动动态库会生成到目录:C:\Q原创 2016-03-30 23:13:39 · 3426 阅读 · 7 评论 -
Qt:QML:QML于C++交互之信号与槽(signal&slot )
connect c++ SIGNAL with QML SLOT连接qml中信号与函数 Component.onCompleted: { //qml 信号连接 qml函数 sendMessageSigal.connect(getMessage); }连接 qml中函数与c++中信号 Connections {原创 2016-12-25 19:26:07 · 19591 阅读 · 4 评论 -
Qt::Q_DECLARE_METATYPE
简介这个宏用来注册一个类(含默认构造、默认析构、拷贝构造函数)为QMetaType类型 ,注册后的类型可以作为QVariant的自定义类型。 这个宏应该放在类或者结构体外面的下面,也可以放在一个非公用引用的头文件里,在每次使用QVariant的时候引用该头文件。 想在信号队列、槽、 QObject’s property system中使用该类型,还得用qRegisterMetaTyp原创 2017-01-09 21:07:35 · 9550 阅读 · 0 评论 -
Qt::QList 转为 QVariant
用到的主要函数QVariant(const QList<QVariant> &val)void QVariant::setValue(const T &value)QVariant QVariant::fromValue(const T &value)示例代码 QList<QString> strList; strList.push_back("hello"); strList.p原创 2017-02-10 09:41:16 · 6768 阅读 · 0 评论 -
Qt:VS&QT 配置OpenGL
在vs下编译opengl代码出现以下错误,原因是vs没有自带opengl库,需要自己引入无法解析的外部符号 __imp__glClear@4无法解析的外部符号 __imp__glClearColor@16无法解析的外部符号 __imp__glDrawElements@16无法解析的外部符号 __imp__glEnable@4无法解析的外部符号 __imp__glFrontFace@4无法原创 2016-10-20 22:31:03 · 4294 阅读 · 1 评论 -
Qt:QML:文字自动滚动
文字自动滚动效果代码import QtQuick 2.5import QtQuick.Window 2.2Window { visible: true width: 400 height: 300 title: qsTr("Text Auto Scrool") Rectangle { width: 131; height: 25原创 2017-02-28 16:43:18 · 6707 阅读 · 0 评论 -
一篇文章搞定JS类型转换
为啥要说这个东西?一道面试题就给我去说它的动机。题如下:var bool = new Boolean(false);if (bool) { alert('true');} else { alert('false');}运行结果是true!!!其实啥类型转换啊,操作符优先级啊,这些东西都是最最基本的。犀牛书上有详细的介绍。但我很少去翻犀牛书的前5章。。。比如说优先级那块儿,很多书转载 2017-01-20 17:04:39 · 512 阅读 · 0 评论 -
Qt:QtQuick:DECLARATIVE_EXAMPLE_MAIN
在官方示例工程里大多会看到这样的代码,没有main启动函数#include "../../shared/shared.h"DECLARATIVE_EXAMPLE_MAIN(demos/stocqt/stocqt)其实不是,DECLARATIVE_EXAMPLE_MAIN 封装了启动过程,看看这个宏定义#include <QDir>#include <QGuiApplication>#inclu原创 2017-02-23 09:09:44 · 1906 阅读 · 0 评论 -
QML嵌入到QWidget中方法
简介嵌入方法有两种一种是直接拖控件,另一种是cpp代码动态生成,控件方式![这里写图片描述](http://img.blog.csdn.net/20160923113704609)动态代码生成 QQuickWidget *m_quickWidget=new QQuickWidget(); QUrl source("qrc:/ui/dynamic.qml"); m_quick原创 2016-09-23 11:40:44 · 15122 阅读 · 10 评论 -
QML中的资源路径
一个字体加载的例子,字体dig.ttf位于资源src/font文件夹下 FontLoader{ id:axisDisplayFont source:"qrc:/src/font/dig.ttf" }或者,会自动前面加上qrc:/FontLoader{ id:axisDisplayFont source:"src/font/dig.t原创 2016-10-20 15:26:22 · 4478 阅读 · 0 评论 -
Qt5:用宏定义区分不同系统下的代码实现
示例#if defined(Q_OS_WIN32) qDebug()<<"Q_OS_WIN32";#else qDebug()<<"Q_OS_other";#endifqt定义的各个系统的宏定义Q_OS_AIX Defined on AIX. Q_OS_ANDROID Defined on Android. Q_OS_BSD4 Defined on An原创 2017-03-27 23:41:32 · 12806 阅读 · 0 评论 -
QQmlEngine::ObjectOwnership
Constant Value Description QQmlEngine::CppOwnership 0 The object is owned by C++ code and QML will never delete it. The JavaScript destroy() method cannot be used on these objects. This option原创 2017-03-21 21:48:47 · 1907 阅读 · 0 评论 -
Qt:Quick:QAbstractTableModel的使用示例
简介写了一个简单的QAbstractTableModel使用例子,仅重载几个函数就能实现table model的功能效果需要override的函数 virtual QHash<int, QByteArray> roleNames() const override; int rowCount(const QModelIndex &parent = QModelIndex()) const原创 2017-03-24 14:45:18 · 2531 阅读 · 0 评论 -
Qt:QtQuick:使用Qt静态库无法找到qml
QQmlApplicationEngine failed to load component原创 2017-03-16 12:57:31 · 7189 阅读 · 2 评论 -
Qt:QML:不同目录qml模块的调用
简介介绍下不同目录之间的qml模块导入方法,下面是import导入文件夹的语法import "<DirectoryPath>" [as <Qualifier>]import不仅能导入本地文件夹也可以导入网络文件示例代码import QtQuick 2.7import QtQuick.Controls 1.5//目录的导入import "./qml" as QLLimport "./qml2"i原创 2017-04-11 20:09:02 · 16831 阅读 · 6 评论 -
Qt:QtQuick Cannot queue arguments of type 'QQmlChangeSet'
简介在QML的Listview中插入数据时报这样的错误(应该是插入数据时候的线程不在主线程造成的)QObject::connect: Cannot queue arguments of type 'QQmlChangeSet' (Make sure 'QQmlChangeSet' is registered using qRegisterMetaType().)解决办法1:用事件把插入动作放到主原创 2017-04-06 17:32:03 · 3184 阅读 · 0 评论 -
Qt:Qt 5.* &vs2015 编译静态库版本
安装Qt去Qt官网下载Qt安装包 安装Qt和源码,一定要勾选source选项 添加bin到系统变量 工具需要python3和 perl、 vs2015 第三方工具,到官方下载安装 在命令行测试工具是否安装成功 configue首先修改文件C:\Qt\Qt5.6.2\5.6\Src\qtbase\mkspecs\common\msvc-desktop.conf 把MD替换为MT静态原创 2017-03-14 14:15:51 · 8067 阅读 · 2 评论 -
Qt:QML:JavaScript 和QML 语法错误表
Many of the JavaScript checks are similar to the ones in Douglas Crockford’s JSLint tool. Id Severity Message Description M1 Error Invalid value for enum M2 Error Enum value must原创 2016-12-20 14:27:41 · 8083 阅读 · 0 评论 -
Qt5:自定义事件
简介和win32的自定义消息一样,Qt也可以自定义事件,携带特殊的数据。如何区分不同的事件,QEvent::type()返回事件的类型,以此来确定是那类事件。 自定义事件有两个重要的步骤,一注册事件类型,二是继承QEvent原创 2016-12-08 16:52:28 · 1445 阅读 · 0 评论 -
Qt:Qt5程序开机自启动(windows)
简介window下开机启动最简单的实现方式就是在注册表中添加启动项目 添加位置有两个HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run第一个为全局自动启动项,所用用户登陆后都自动启动。第二个为当原创 2016-11-16 09:25:26 · 9690 阅读 · 15 评论 -
QT中qmlRegisterType qmlRegisterSingletonType的区别
qmlRegisterType qmlRegisterSingletonType了解设计模式的肯定知道单根模式,这个qmlRegisterSingletonType函数意思能就是注册一个单根类型到QML中,看看他们的完整声明:int qmlRegisterSingletonType(const char *uri, int versionMajor, int versionMino原创 2016-03-14 19:10:46 · 7971 阅读 · 0 评论 -
QT基本数据类型
QT的基本数据类型qint8:signed char 有符号8比特数据qint16:signed short 16位数据类型qint32:signed int. 32位有符号数据类型qint64:long long int 或(__int64) 64位有符号数据类型,Windows中定义为__int64qintptr:qint32 或 qint64 指针类型 根据系统类型原创 2016-02-29 02:01:31 · 50696 阅读 · 3 评论 -
QWidget中嵌入win32 window
主要用到QWindow::fromWinId和QWidget::createWindowContainer这两个函数QWindow::fromWinId用来创建一个win32窗口的代理 QWidget::createWindowContainer用来把窗口封装为一个QWidget控件示例代码 HWND hwnd = ::FindWindow(L"CEFWebkitBrowserWnd", N原创 2016-09-12 12:57:33 · 6400 阅读 · 6 评论 -
Qt加载QSS文件
QSS:Qt Style Sheets简介QSS和CSS一样 通过样式表控制控件和容器的样式,采用QSS控制可以很容易的实现换肤和美化界面的功能创建QSS文件在帮助里搜索qt style,可以打开qss的使用例子QApplication,QMainWindow, QFrame, QDockWidget, QDialog, QFileDialog, QMessageBox,QRadioButt原创 2016-09-22 16:30:00 · 13968 阅读 · 0 评论 -
Qt:QML生成翻译中间文件ts
在.pro文件中加入这段代码就可以生成翻译中间文件tsTRANSLATIONS+=zh_CN.ts en_us.tsc++代码中需要翻译的文字需要用tr包住,qml需要翻译的文字需要qsTr包住tr("helloword")text: qsTr("systemdiagnostics")但是按上图的lupdate更新翻译后,发现需要翻译的文字没有导出到翻译中间文件,在.pro中再加入一段代码lupd原创 2016-10-25 10:53:07 · 2508 阅读 · 0 评论 -
Qt:QML:Cannot read property '*' of null
简介QML读取某个属性时候出现这个错误 “Cannot read property 'M.val' of null”,原因是这个属性不存在或者属性值为null解决方法检查这个属性是否存在或者属性值是否为nullfunction getVal(){ if ((M != = null) && M.hasOwnProperty('val')) { return M.val.o原创 2016-11-07 10:27:19 · 4406 阅读 · 0 评论 -
Qt:QML控件类关系图
简介花了点时间整理了下QML控件之间的关系图和QML控件和C++类的对应关系,基于Qt5.6版本 其他版本可能会有差异图片像素比较大,另存为后放大图片就可以看清楚了工程下载地址QMLClassDiagram原创 2016-10-25 17:08:28 · 4684 阅读 · 4 评论 -
在qtcreater中打开qt帮助文档.qch
qtcreater中打开帮助设置:工具-选项-帮助 点击“添加”选择帮助文档所在的路径,可以看到添加后的帮助文档项 这样在qtcreater中的帮助可以看到帮助文档的内容原创 2016-10-19 10:38:16 · 6091 阅读 · 0 评论 -
Qt5:QML:Invalid write to global property QML
描述QML中给一个全局变量赋值时候提示这样错误解决方案全局变量前加上父id再去赋值就可以了出错代码TabView { id:idFuncSwitchtabView property var idKNormalWorkPanel property var idKFileManagePanel Tab { NormalWorkPanel {原创 2016-11-28 22:30:58 · 4126 阅读 · 1 评论 -
Qt:去掉Qt加载png图像文件时候的iccp警告
概述用QML加载png文件时显示如下警告(图像正常加载显示)libpng warning: iCCP: known incorrect sRGB profilelibpng warning: iCCP: cHRM chunk does not match sRGB解决方案用ps去掉png图像的icc配置文件就可以了 另存为时勾去配置文件,覆盖原文件,警告消失原创 2016-11-01 13:37:59 · 4068 阅读 · 0 评论 -
Qt5:设置程序默认字体
简介qml中可以方便修改字体,但是控件多的时候想批量调整字体会比较麻烦,直接修改程序的默认字体来的简单粗暴有效code QGuiApplication app; QFont font; font.setPointSize(16); font.setFamily("黑体"); app.setFont(font);原创 2016-11-29 11:06:03 · 14020 阅读 · 0 评论 -
Qt:QML:程序最大化最小化全屏之间的切换
啥也不说了,直接上代码import QtQuick 2.5import QtQuick.Controls 1.4import QtQuick.Window 2.0ApplicationWindow { id:idMainWindow visible: true width: 640 height: 480 title: qsTr("Test") Ch原创 2016-11-02 01:02:53 · 12494 阅读 · 2 评论 -
Qt:QML:ListView实现鼠标点击选中某项
简介ListView默认是没有自动点选选中某项的,毕竟Qt的ListView功能复杂而强大解决方法在鼠标点击某项时设置 .ListView.view.currentIndex = index ;代表自己实现的delegate的项的id,注意不是Component的id代码import QtQuick 2.0import QtQuick.Controls 1.4import QtQuick.Lay原创 2016-11-02 15:11:51 · 11855 阅读 · 0 评论 -
Qt5:QML:c++ 调用qml中的函数
简介c++可以直接调用QML中的函数,这个函数原型是bool QMetaObject::invokeMethod(QObject *obj, const char *member, Qt::ConnectionType type, QGenericReturnArgument ret, QGenericArgument val0 = QGenericArgument( Q_NULLPTR ), QG原创 2016-12-01 14:22:08 · 8862 阅读 · 3 评论 -
Qt5:QML:LocalStorage
简介LocalStorage是本地SQLite的数据库,程序关闭后仍存在,用于持久化数据。在windows 10中位于C:\Users\用户\AppData\Local\QtProject\localstorage\QML\OfflineStorage\DatabasesC:\Users\ink\AppData\Local\localstorage\QML\OfflineStorage\Data原创 2016-11-22 11:14:31 · 2475 阅读 · 0 评论 -
由Qt4.x项目移植到Qt5.x需要注意的事项
The Transition from Qt 4.x to Qt 5The transition from Qt 4.x to Qt 5 is not expected to be significant. However, the “modularization” of the Qt code base requires some amount of changes to project conf转载 2016-11-21 10:46:56 · 2895 阅读 · 0 评论 -
Qt::/usr/bin/ld: 找不到 -lGL
简介ubuntu14.04 中编译程序提示/usr/bin/ld: 找不到 -lGL 原因是linux没有装opengl解决方法安装opengl相关的依赖库sudo apt-get install freeglut3-dev原创 2017-07-11 10:02:22 · 4675 阅读 · 0 评论