
Qt/QML
Qt/QML
迪加不会飞
again again again
展开
-
Qt Creator 启动过慢
删除即可。原创 2023-03-16 20:50:26 · 671 阅读 · 1 评论 -
pyside (6) 的基础学习笔三:qrc 转化成 py 的文件
使用 QT 的 qrc 文件转换 qrc 文件pyside6-rcc icons.qrc -o rc_icon.pypyside 中的使用,只需要在 main python 主 python 文件中import rc_icon.py使用方式"qrc:/resource/icon/allowdown.png"":/resource/icon/allowdown.png"QIcon(QPixmap(":/icons/play.png"))source: “qrc:/resource/icon/原创 2021-10-11 20:20:11 · 1928 阅读 · 0 评论 -
pyside (6) 的基础学习笔二:python 下的信号和槽,以及属性
属性(在 CPP 中的 Q_PROPERTY)#方式一class Speaker(Qobject): @Property(int) def pp(self): return self.ppval @pp.setter def pp(self, val): self.ppval = val print(val)#取值 s.pp = 10, print(s.pp)#------------原创 2021-10-11 20:19:14 · 1176 阅读 · 1 评论 -
pyside (6) 的基础学习笔一:加载 QML
入门官方模块参考手册官方新手指导手册(有安装指导)若读者熟悉 CPP 方式开发 QT 可以简单看一下,官方对比的示例##### python vs c++ 两则转换(若不清楚,可以参考 CPP 方式)1. import vs #include 2. __init__() vs 构造函数3. self vs this4. global 拓展到全局5. @property vs Q_PROPERTY6. connect(),Q_SIGNALS,Q_SLOTS vs @Slot7. by原创 2021-10-11 20:15:00 · 1559 阅读 · 0 评论 -
ERROR: Feature ‘pkg-config‘ was enabled, but the pre-condition ‘tests.pkg-config‘ failed
背景树莓派 4B 交叉编译 QT5.14.2 过程中,遇到如下报错#执行 configure 提示如下错误ERROR: Feature 'pkg-config' was enabled, but the pre-condition 'tests.pkg-config' failed解决方案1. 在树莓派上安装sudo apt-get install pkg-configsudo apt-get install pkgconf2. 重新利用 rsync 同步到 host 端3. 建议重新原创 2021-08-12 23:45:06 · 2241 阅读 · 2 评论 -
2020-12-02(01)QSslSocket: TLS initialization Failed (Vs 提示此错误,QtCreate 可以正常运行)
问题: 在装有 Qt 的 win10 平台运行程序,可以正常连接网络换用 Vs 编译或则放置到没有 QT 的环境就出现 QNetwork 无法正常连接网络,根据打印提示出现 “QSslSocket: TLS initialization Failed”相关问题:Qt 论坛文章国内方案1国内方案2我的解决方案:1 下载安装了完整 64bit/32bit 根据自己需要选择http://slproweb.com/products/Win32OpenSSL.html2 关联#这是 pro 文原创 2020-12-02 07:34:34 · 206 阅读 · 0 评论 -
20201021-01 QT 程序独立运行时,出现CMD窗口 消除办法
效果QT 的程序脱离 Qtcreator 直接双击运行出现 CMD 输出debug 调试信息解决方案:1 编译条件选一下 Release,这种会默认关闭 debug 相关输出2 检查一下 有没有使用 QTest 这类调试库,若有就要将它关闭,因为这一定会输出调试信息且无法被编译器优化掉...原创 2020-10-21 14:46:49 · 2935 阅读 · 0 评论 -
20200727-01 Qt嵌入式 windows 外部程序
// QString cmd = "C:/Windows/system32/calc.exe";// STARTUPINFO si = { sizeof(si) };// PROCESS_INFORMATION pi;// si.dwFlags = STARTF_USESHOWWINDOW;// si.wShowWindow = true;// bool bRet = CreateProcess(// NULL,// (LPWS原创 2020-07-27 11:01:40 · 322 阅读 · 0 评论 -
20200724 Qt/QML全局设定字体属性
修改全局默认字体属性 QApplication app(argc, argv); QFont font; font.setFamily("Ubuntu"); app.setFont(font);以上就可以了,经过验证 widget / Qml 都可以Windows 字体库位置C:\Windows\FontsUbuntu / linux 字体库位置/usr/share/fonts...原创 2020-07-24 11:23:33 · 1335 阅读 · 1 评论 -
QT 环境部署 双击无法启动 Qt程序中可启动
Qt 在 Windows 平台部署遇到问题1 "could not find or load the Qt platform plugin “windows” in “”2 QT no Qt platform plugin could be initialized3 Error : “module ”QtQuick.Controls“ is not installed”解决方案1/2 问题可以算一个问题,是 Windows 部署 Qt 没弄好1)根据你的编译器选择命令行2) 部署只是 QW原创 2020-07-11 12:01:27 · 1677 阅读 · 0 评论 -
20200628-01 树莓派4B 交叉编译 Qt5.14.2 基于 ubuntu18.04 & ubuntu20.0
前言执行流程包含树莓派上的操作,以及 PC 机上的操作,可以通过后缀[pi] 或 [pc] 来区分,整个教程参考这些文章和视频如有需求可自行前往Qt 官方教程文档Qt For X11 要求他人教程文档他人完整教程视频正式流程1) 安装 树莓派 4B 系统直接去官网下载,这是我选用的版本window 下可以用这个作为烧写器2) 树莓派安装库树莓派从 4B 版本开始于前面几个版面使用的显示插件略微有些许不同,这个会在后续步骤支出2.1 连接 树莓派默认用户名 pi 密码 raspb原创 2020-06-28 16:02:19 · 2118 阅读 · 0 评论 -
2020060-01 QML Flickable内部使用自定义控件无法拖动
问题记录:在实际操作发现如下现象(望知情者告知一二):在 Flickable 控件中放入了很多自定义控件,实现类似 ListView 拖动效果,但在 PC 端调试用鼠标拖动功能正常,而在嵌入式设备上通过触摸屏来实验发现,对拖动事件没有反应问题排查:后经过排除,发现是因为自定义控件为了设置文本方便使用 Control 作为基类控件,将其改为 Item 作为基类控件,验证发现控件效果类似 ListView 符合计划效果结论:猜测很可能是因为 Control 捕获了触摸事件,并且没有将事件传递给 Fl原创 2020-06-08 11:22:01 · 733 阅读 · 0 评论 -
20200526-01 QML 基于 Qt Quick Templates 2 模板重构控件教程
一、前言Qt Quick Template2 提供了大量非虚模板控件import QtQuick.Templates 2.15 as T官方网页二、以 TabButton 为例/* !注意:本控件专为 Troika 项目创建,不具备通用性 */ import QtQuick 2.14 import QtQuick.Controls 2.14import QtQuick.Controls.impl 2.14 import QtQuick.Templates 2.14 as T T.Tab原创 2020-05-27 11:26:21 · 2072 阅读 · 0 评论 -
20200317 QML 获取 对象类型
第一种:main.children[i].objectName通过父类来获取第二种:Javescript 支持 Qt5.10 以上return targetItem instanceof TextEdit原创 2020-03-17 10:45:27 · 977 阅读 · 0 评论 -
20200312-01 QML 三种自动绑定 --包含 赋值之后不改变原先绑定
一、前言QML 内部集成 3 中绑定自动绑定的方式,2种 QML,1种 Javascript二、正文2.1 直接赋值property var tValue: "xx"Text { id: t1 text: tValue}Button { id: bt width: 100 height: 50 onClicked: tValue +=...原创 2020-03-12 16:06:29 · 738 阅读 · 0 评论 -
20200311-01 QML 提升性能的小技巧
QT 官方原文一、归纳核心如下尽量少的使用 Javascript 在 QML 之中不要使用太复杂的 QML 层次和结构,确保代码的简洁高效避免在一个 window UI 中使用多个 View避免计算,包括透明度,等比例缩放等等,能使用图片使用图片代替避免使用 QDebug 等调试输出C++ 的类型与 QML 通过 Q_PROPERTY 转换的时候,尽量避免使用 QList, QMa...原创 2020-03-11 11:24:10 · 413 阅读 · 1 评论 -
20200306-01 QObject::connect: Cannot queue arguments of type 'QQmlChangeSet'
一、问题报错QObject::connect: Cannot queue arguments of type 'QQmlChangeSet' (Make sure'QQmlChangeSet' isregistered using qRegisterMetaType()二、问题发生的前因我在 boost 回调函数中使用了 beginInsertRows 这类更新 Tablevi...原创 2020-03-06 15:39:51 · 950 阅读 · 0 评论 -
20200303-03 QML TableView(Qt5.12) 设置行/列表头
一、前言 针对最新版本 TableView 如何设置表头,在新版中直接继承 Flickable 所以各项效果更加完备,由于需要频繁弹出和压入数据以保证资源的最大利用,官方建议不太适合静态类型的 delegate 新版中,使用 index 进行数据索引,不再使用 styleData 关键字二、示例 TableView { anchors { ...原创 2020-03-03 20:32:20 · 4746 阅读 · 9 评论 -
20200303-02 QML TableView(Qt5.1) 外部自定义ScrollBar 与 TableView 绑定
一、前言 本文主要讲解,通过外部自定义滑动条与 TableView 绑定在一起二、示例TableView { id: tableView}ScrollBar { id: verticalBar hoverEnabled: true active: hovered || pressed orientation: Qt.Vertic...原创 2020-03-03 20:22:57 · 1459 阅读 · 0 评论 -
20200303 QML TableView (Qt 5.1版本) 自定义内部拖动条的样式 custom scrollbar style
前言: 基于QML TableView(Qt 5.1)版本,内部滑动条样式修改style: TableViewStyle { frame: Rectangle { color: "transparent" } //边框 incrementControl: Rectangle { color: "transparent" } //滑块 decrementContr...原创 2020-03-03 20:06:53 · 1191 阅读 · 1 评论 -
20200207-02 QML 动态添加子类(TableView 动态添加 Column)
前言: 本文讲解方法,不适用动态删除添加对象的,这种方法查看链接 动态删减通过JavaScript 应用场景如:TableView 动态添加 Column正文:The data property allows you to freely mix visual children and resources in an item. If you assig...原创 2020-02-07 19:41:57 · 1775 阅读 · 0 评论 -
20200207-01 TableView 去掉外边框 QML
单纯去掉外边框TableView { frameVisible: false}对外边框进行设置TableView { style: TableViewStyle { frame: Rectangle { border { color: "transparent" ...原创 2020-02-07 13:38:00 · 1164 阅读 · 0 评论 -
20200116-01 QML Table List 实现 delegate 基于 QT5.14
说明在 QML 表格类实现类时 QWidget 那样的自定义委托(也就是插入自定义控件)源码//file: main.cpp#include <QGuiApplication>#include <QQmlAppliction>#include "testsub.h"#include "testModel.h"Q_DECLARE_METATYPE(TestS...原创 2020-01-16 15:09:49 · 656 阅读 · 0 评论 -
20200103-01 QML C++模型同步更新界面
1 上移 / 下移//上移 一个beginMoveRows(QModelIndex(), row, row, QModelIndex(), row - 1);mDataList.swapItemAt(row - 1, row);endMoveRows();以下官方不推荐隐藏更新手法不推荐操作emit rowsMoved(QModelIndex(), row, row, QModelI...原创 2020-01-03 14:18:08 · 1335 阅读 · 0 评论 -
20200102-2 QML 加入 QCharts 控件之后无法启动程序
问题:启用 在 QML 中使用 ChartView 等图形控件无法启动解决方案:确认 pro 文件中已经加载该 charts 模块 QT += charts修改 main 函数删去 QGuiApplication app(argc, argv);改为 QApplication app(argc, argv);原因:官方注解Note: Since Qt Creat...原创 2020-01-02 13:55:12 · 454 阅读 · 1 评论 -
20191210 QML 将指针传递给 QML Error: Unkown method return type: xxx*
目的:针对 QML 调用 C++ 指针的两种情况进行说明现象直接在 QML 使用 MODEL{} 是可行,但是通过函数获取 C++ model 的指针却报错Error: Unknown method return type: LabConfigModel*说明:1) 首先,确认是 QObject 对象的子类(以下展示直接是 QObject 子类的对象,情况一 )class TestA...原创 2019-12-10 19:45:26 · 2594 阅读 · 0 评论 -
QT/QML Text 部分功能(自动省略 自动换行 自动调节字体大小 调节行间距
环境 QtQuick 2.13Text { color: "black" anchors.fill: parent verticalAlignment: TextInput.AlignVCenter horizontalAlignment: TextInput.AlignHCenter leftPadding: 5 //QtQuick 2.13 间隔...原创 2019-09-30 14:54:11 · 7812 阅读 · 0 评论 -
Qt/QML/Quick 动态生成控件 直接拉到最后看最新 20200316 改
QML 配合 JavaScript 实现动态生成和删除方法一:使用 Qt.createComponent(file_path) 相关 QML 已经定义的,并且可以将创建和加载分开方法二:使用 Qt.createQmlObject(‘相关qml定义’, 父类,文件路径)使用于临时创建 QML 类型,第一参数除了可以直接定义(直接定义使用 ’ ',断句用 ;),还可以直接导入文件,第三参数(有无...原创 2019-08-06 16:24:43 · 887 阅读 · 0 评论 -
20200620-01 Qt5.14.2 交叉编译触摸输入 Tslib1.14 / evdev 等方式详细说明
输入事件类型官方文档说明./configure -help //可以看到这些输出-libudev............ Enable udev support [auto]-evdev ............. Enable evdev support [auto]-imf ............... Enable IMF support [auto] (QNX only)-libinput .......... Enable libinput support [auto]-mtde原创 2020-06-20 17:22:11 · 2393 阅读 · 0 评论 -
20200618-01 Qt widget 按钮事件捕捉 Qml 点击事件捕捉(电容屏触摸输入)
起因设备需求点击之后触发蜂鸣器,有两套方案:每个按钮都写入这串指令,令其能够调用触发蜂鸣器的类通过全局的方式,这种只需要一个地方写调用程序即可,更加可行一点QWidget 触摸事件捕捉QWidget 是比较简单能够捕捉触摸事件的,就是对 QApplication 中的 notify 进行覆盖bool MyApplication::notify(QObject *obj, QEvent *event){ //常规鼠标点击或按键 if((obj!=NULL) &&am原创 2020-06-18 11:29:38 · 2355 阅读 · 2 评论 -
20200604-01 PathView mouse drag 实现鼠标拖动 安卓设置时间效果,循环
前言pathView 与 ListView 等具备类似的效果,不过区别是 pathview 可以根据 path 定义的路径进行循环的运行代码PathView { property string displayUnit: "" property int displayStartValue: 0 id: list highlightRangeMode: ListView.StrictlyEnforceRange highlightMoveDuration: 20原创 2020-06-04 12:01:28 · 266 阅读 · 0 评论 -
20200519-01 QCustomPlot 关于标签拖动
一、前言:推荐阅读内容https://www.cnblogs.com/swarmbees/p/6058263.htmlhttps://www.cnblogs.com/xiongxuanwen/p/10102301.html以及官方文档二、正文//新建一个标签 m_label = new QCPItemText(m_plot); m_label->setClipToAxisRect(false); m_label->setPadding(Q.原创 2020-05-19 15:20:11 · 818 阅读 · 0 评论 -
20200514-02 C++ 指针所有权 QML 等释放控件重新读取 C++ 指针出现异常或发现指针被释放等问题说明
一、前言 写 QML 这么久,却因为英文所限没有认真解读,QML 与 C++ 交互最重要的一条就是传递到 QML 的 C++ 对象的所有权,在实际项目开发中会会发现,tableview 或者其他控件被释放之后重新读取原先的 C++ 对象就会发生内存异常,从而导致程序奔溃。 调试之后,会发现是由于 C++ 指针被释放了,当 QML 控件被释放的时候同时释放了 C++ 对象二、数据权限 Data OwnershipData OwnershipWhen data is transferred fr原创 2020-05-14 20:03:55 · 862 阅读 · 0 评论 -
20200514-01 QCustomPlot sync load data 异步加载数据
QCustomPlot 在重绘 chart 的时候需要同步处理数据和界面刷新,这样的操作对于资源有限的嵌入式设备来说,很容易造成界面的卡顿参考文献1 参考的论坛文章一、使用前准备1、简单了解 QCustomPlot2、简单了解 QtConcurrent::run 用法和作用二、源码2.1 QCustomPlot 源码调整部分2.1.1 QCustomPlot.h 文件//原先的函数 old functionQ_SLOT void replot(QCustomPlot::Refresh原创 2020-05-13 10:42:06 · 570 阅读 · 0 评论 -
20200511-01 基于 QCustomPlot 移植到 QML 上(qt.514)
源码下载一:要点说明 replot() 界面刷新(需要单独调用) replot() 这个函数的作用是用于刷新显示界面,根据文档显示,刷新的方式总共有 4 中:rpImmediateRefresh 立即全局更新(先立即重绘表格,然后调用 QWidget::repaint() 重绘整个 widgetrpQueuedRefresh 依次更新(先立即重绘表格,然后调用 QWidget::update() 进行更新,避免多次 repaint() 消耗资源)rpRefreshHint (默认)原创 2020-05-11 15:48:06 · 3330 阅读 · 2 评论 -
20200429-01 QT Pro 设置版本号,在程序中读取
proVERSION=0.0.01DEFINES += APP_VERSION=\\\"$$VERSION\\\"mainQApplication::setApplicationVersion(QString(APP_VERSION))qDebug() << QApplication::applicationVersion()注意:每次修改版本号,都需要重新 r...原创 2020-04-29 11:02:34 · 2603 阅读 · 0 评论 -
20200427-01 Qt 远端调试 gdbserver
准备工作1 sudo apt install gdb-multiarch2 嵌入式需要移植 gdbserver3 本次使用静态 QT 库,动态 QT 库注意环境变量4 将执行文件拷贝到 /nfsroot 文件夹内设备端1 确保 gdbserver 能够工作2 挂载 mount -t nfs 192.168.0.186:/nfsroot /opt -o nolock/...原创 2020-04-27 20:49:26 · 727 阅读 · 0 评论 -
QML List 动画的相对位置移动
在 QML 中想要实现,Item 从实际位置上或下一定距离相对滑入,重点在于如何获取相对位置的坐标这里需要使用到 ViewTransition 这个类举例add: Transition { id: test NumberAnimation { properties: "y", from: test.Viewtransition.destination.y; dura...原创 2019-11-21 21:14:11 · 465 阅读 · 0 评论 -
QT 编译之后执行其他操作
举例,从源文件件下复制指定文件到编译目录文件夹https://doc.qt.io/qt-5/qmake-advanced-usage.html#installing-files官方文档这种方式需要执行 make installsystem(命令) //system(mkdir xx)可以在编译的时候执行 Uinx 下的指令https://dragly.org/2013/11/...原创 2019-11-18 12:16:17 · 263 阅读 · 0 评论 -
20191029 (31) QML Loader 用法
简单展示 Loader 使用并修改对应控件内容的方式(持续更新)Component { id: buttonDirection ToolButton { display: AbstractButton.IconOnly icon.source: "" background: Rectangle { col...原创 2019-10-29 18:56:58 · 424 阅读 · 0 评论