Qt的研究与学习
文章平均质量分 94
关于qt widgets与qtquick的研究与学习
FlyWM_
半路出家的程序员。。。
展开
-
Qt实现窗口靠边半屏,靠顶全屏的效果
前言 前两天登录github看到一个网友的留言,这两天比较闲就研究了下。实现效果实现思路 实现一个继承自QWidget的类,我们就叫MuWinWindow,然后设置无边框setWindowFlags(Qt::FramelessWindowHint);然后实现bool MuWinWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)此时我们拖动窗体的任何部分都能实现上面的效果。我们想要的原创 2020-06-27 19:29:54 · 5890 阅读 · 21 评论 -
qt qml仿win10 loading 动画
一直觉得win10 的loading动画很好看,昨天试着用qml实现了一下,效果还可以,可惜没有原生的漂亮自然。高手勿喷,欢迎交流。下面上代码:import QtQuick 2.5import QtQuick.Window 2.2Window { visible: true width: 640 height: 320 id: root title: qs原创 2017-03-21 11:47:49 · 2829 阅读 · 0 评论 -
树莓派2B,Qt5.8交叉编译移植。
开发板: 树莓派2B PC机环境: Ubuntu 14.04 LTS 参考官方文档: https://wiki.qt.io/Raspberry_Pi_Beginners_Guide 写本文的目的: 与大家分享自己的移植过程和一些心得,如有不当之处,请大家指出,大神勿喷!创建目录opt,方便管理所需要的工具资料。** mkdir ~/opt cd ~/opt 在/mnt目录下创建 ra原创 2017-04-14 16:01:36 · 3587 阅读 · 3 评论 -
Qt源码分析之QObject
在分析源码之前,我们先来介绍下Pimpl机制。。。Pimpl机制介绍 Pimpl(private implementation) 字面意思是私有实现。具体实现是将类的(假设类A)私有数据和函数放入一个单独的类(假设类Pimpl)中,然后在类A的头文件中对该类Pimpl进行前置声明,接着在类A中声明一个私有的指向该Pimpl类的指针, 在类A的构造函数中分配类Pimpl,这样做的主要目的是解开类的使原创 2017-12-14 13:18:17 · 1851 阅读 · 0 评论 -
Qt内存泄漏总结(包括检测工具)
原文链接:http://blog.csdn.net/taiyang1987912/article/details/29271549 关于堆栈不清楚的可以参考这篇文章:http://blog.csdn.net/c_base_jin/article/details/25558929一、简介 Qt内存管理机制:Qt 在内部能够维护对象的层次结构。对于可视元素,这种层次结构就是子组件与父组件的关系;对于原创 2017-12-15 16:04:17 · 21731 阅读 · 0 评论 -
QML使用QtCharts 报错
新建一个 Qt Quick Application 应用,测试QtCharts模块报错:import QtQuick 2.6import QtQuick.Window 2.2import QtCharts 2.2Window { visible: true width: 640 height: 480 title: qsTr("Hello World原创 2018-01-04 16:08:15 · 2005 阅读 · 1 评论 -
Qt 5.9 qml 使用自带虚拟键盘
Qt有自己的虚拟键盘的插件,使用起来也非常方便,这里介绍在QtQuick中的使用方法。键盘的集成方式虚拟键盘的集成有两种方式: 1. 键盘出现在桌面,即系统的屏幕上,键盘的宽度等于屏幕的宽度,不依赖于app的宽度。 2. 键盘嵌入到我们的app中去,键盘的宽度等于我们app的宽度。加载插件 加载虚拟键盘的插件我们需要设置QT_IM_MODULE环境变量。有两种方法设置: $ QT_IM_MOD原创 2018-01-11 12:03:01 · 17222 阅读 · 46 评论 -
Qt 设置圆角边框
Qt中设置圆角边框很方便,这里我们介绍使用qss(setStyleSheet方法)和重写PainteEvent的方式来实现圆角边框。一、使用qss实现很重要的两点: 1.设置属性:setAttribute(Qt::WA_TranslucentBackground);2.重写PaintEvent,对于我们自己定制的继承QWidget的类如果不重写PaintEvent的话,它只支持backgrou原创 2018-01-19 08:49:01 · 22264 阅读 · 4 评论 -
深入分析Qt信号与槽(上)
在简述上看到这篇文章,感觉写得很好,转载过来。 原文:https://www.jianshu.com/p/e96c9f66da80 如果面试官问你Qt最明显区别于其它开发框架的特征是什么,那么你的回答一定是信号和槽,为此,小豆君将拿出三节的时间来讲述信号和槽。 第一节,信号槽的基本概念。 第二节,信号槽的扩展知识。 第三节,分析Qt的moc预编译器生成的moc源文件,帮助大家理解信转载 2018-02-11 14:55:39 · 4372 阅读 · 7 评论 -
深入分析Qt信号与槽(中)
在ui中编辑信号槽 这一小节我们来看一下如何在ui中编辑信号槽。我们想要在ui中实现点击按钮,能够控制进度条的显隐。 新建GUI项目SignalsAndSlots2,类名SignalsAndSlots2,基类选择QWidget。打开ui文件。在编辑界面中拖入一个Progress Bar和一个PushButton。 在编辑窗口中工具栏中选择编辑信号槽(Edit Signals/Slots)或转载 2018-02-11 15:15:40 · 1032 阅读 · 0 评论 -
深入分析Qt信号与槽(下)
今天我们终于可以看看神奇的信号槽是怎么实现的了。话不多说,直接上代码。示例程序新建控制台应用程序,再添加一个新类SignalsAndSlots3,各自定义一个信号和槽,代码如下: signalsandslots3.h:class SignalsAndSlots3 : public QObject{ Q_OBJECTpublic: explicit SignalsAndSlots转载 2018-02-11 15:30:10 · 1648 阅读 · 1 评论 -
Ubuntu 下串口模拟工具的使用
PS: linux下找了好久没有找到想windows中 vspd 那种能够模拟串口的工具。无意间在网上看到了别人用python洗的工具,试了一下挺好用的,这里记录一下。python代码:下载链接: virtualCom.py#coding = utf-8import ptyimport osimport selectdef mkpty(): master1, slave = p...原创 2018-06-08 16:12:04 · 3302 阅读 · 0 评论 -
QByteArray 转为 int 详细说明
QByteArray 转为 int 详细说明QByteArray有提供toInt()函数将 QbyteArray中的数据转为int类型。文章中涉及到的int类型都是4个字节。 toInt()用法:1、QByteArray保存的是字符串,直接调用 toInt() 就可以了:bool ok;QByteArray arr("ABCDEF");arr.toInt(&a原创 2018-06-11 16:17:21 · 33505 阅读 · 3 评论 -
QWidget设置模态非模态
有时候QDialog并不能满足我们的需求(太丑了 ( ╯□╰ )),我们需要使用 QWidget 自定义对话框,这就涉及到一个模态的问题。QWidget 默认是非模态的, 其实很简单,两钟方法:QWidget *pWidget = new QWidget();pWidget->setAttribute(Qt::WA_ShowModal, true);或者:pWidget...原创 2018-08-01 10:43:08 · 2612 阅读 · 0 评论 -
Qt自定义无边框Widget、Dialog、MessageBox
文章主要参考 一去丶二三里 大大的博客https://blog.csdn.net/liang19890820/article/details/50557240,进行了一些改造和升级。 如果需要做出更漂亮的窗体界面,那么实现无边框的widget是非常有必要的。本文就实现了无边框的widget、Dialog、MessageBox等一些常用的控件,进行了一些美化,可以拖动、缩放、双击标题栏最大化还...原创 2018-08-07 21:39:15 · 9406 阅读 · 4 评论 -
Qt MSVC编译库文件报错:error LNK2019: 无法解析的外部符号 __imp__GetWindowLongW@8,error LNK2019: 无法解析的外部符号 __imp__SetW
今天编译自己封装的一个库的时候,用 Qt+MingW编译没错,用 Qt+MSVC2015 编译的时候报错:error LNK2019: 无法解析的外部符号 __imp__GetWindowLongW@8error LNK2019: 无法解析的外部符号 __imp__SetWindowLongW@12我们可以去微软官方搜一下 GetWindowLongW和SetWindowLong...原创 2018-08-08 13:59:58 · 2038 阅读 · 2 评论 -
QMessageBox设置中文按钮
如果我们使用QMessageBox的静态函数方式显示提示框的话,默认按钮都是英文,如果想要显示中文,很简单:QMessageBox box(QMessageBox::Warning, "退出"," 确认退出吗?");box.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);box.setButtonText(QMes...原创 2018-08-18 21:35:31 · 6428 阅读 · 0 评论 -
Qt之窗体透明
测试环境: win10 + Qt5.9.6 MinGw简述 关于窗体透明我们平常用到的大概有三种: 1. 主窗体和子窗体都透明。 2. 主窗体透明,子窗体不透明。 3. 主窗体不透明,子窗体透明。下面进行一一介绍。实现一、主窗体和子窗体都透明。 全透明很简单只需要该方法即可:// 原型// void setWindowOpacity(qreal leve...原创 2018-08-31 15:09:26 · 4084 阅读 · 1 评论 -
QtCreator创建CMake工程
一、MinGw 使用Mingw编译器的话创建很简单,新建工程-Non-Qt Project-Plain C++ Application: 选择Cmake: 选择Mingw编译器即可。 二、MSVC 如果使用vs编译器的话,需要准备: 1、vs已经安装。 2、win10 SDK(本人使用的是win10)已经安装。 3、将D:\Qt\Qt5.9.6\Tool...原创 2018-09-10 14:21:28 · 10104 阅读 · 1 评论 -
QtCreator构建Cmake工程详细说明
入门指南 Cmake可以简化跨平台项目的构建过程,可以自动生成Makefile或者Visual Studio等项目文件。 Cmake官方文档:https://cmake.org/documentation/。本文详细介绍如何在CMake中使用qt5。使用Qt5所需的最低版本是CMake 2.8.3,但建议使用3.1.0及以上的版本。 使用CMake构建Qt工程时,首先使用 fin...原创 2018-09-10 21:05:55 · 41126 阅读 · 2 评论