guocheng

发布时间:2022-11-26 QT QT_QGC
pkg-config环境变量 配置pkgconfig搜索目录的环境变量 /etc/profile 增加:export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig 需要重启服务器。 So, here is short guide how to build QGC on Raspbian Buster with default Qt5 ...

qtcreator编译qt程序是如何调用moc的,如何通过pro文件向moc传入参数

发布时间:2022-11-27 QT
目录 一、qt程序编译时调用moc 二、qmake组装makefile中的moc_*.cpp生成规则 三、通过qt工程文件向moc传入参数 一、qt程序编译时调用moc qtcreator对qt程序的编译过程是先“qmake” ,然后“构建(等价于make)”。 qtcreator右键点击项目 出现的 “执行qmake”和“构建” 两个选项其实就是运行 项目-》build->构建步骤 中的“qmake”和“make”步骤所对应的命令行命令。 从项目->build->构建步骤可以看出,...

01、PyQt5/PySide6简介及安装方法

发布时间:2022-11-29 PYQT QT PYQT/PYSIDE PYTHON
目录 一、常用的图形界面库 二、Pyqt/PySide6简介 三、安装方法 1. 安装PySide6 2.  安装PyQt5 四、教程推荐 一、常用的图形界面库 Python开发跨平台GUI(图形界面)主流的的库有如下几种:  TkinterwxPythonPyQt5、PySide2、PySide6  Tkinter:基于Tk的Python库,这是Python官方采用的标准库,优点是作为Python标准库、稳定、发布程序较小,缺点是控件相对较少。 wxPython:基于wxWidgets的Py...

qmake language qt 工程文件 配置文件 .pro .prl .prf 词法 语法 for循环 判断语句 函数定义

发布时间:2022-11-27 QT QMAKE
目录 词法 string 1、数据类型 2、特殊处理的内置变量 3、转义字符 关键字:包括语法关键字、特殊变量 语法 变量 变量、属性、环境变量 变量使用 全局变量作用域 函数定义和使用 判断语句和循环语句 判断语句 判断语句 条件分支 if 案例 循环语句 for(iterate,list) for(ever) for(var,forever)  break(),next(),return() 案例  杂谈 说明:该文档主要是对qmake手册做一些补充 词法 Tokenize qmake中词法阶段识别出...

Qt添加支持openssl

发布时间:2022-11-26 QT 【QT】 开发语言
最近在编写Qt应用程序,其中有一个功能就是需要用到websocket通信。当然,Qt本身是自带QWebSocket模块的。开始访问服务器时,服务器地址是http地址链接,所以在编译Qt源码库时没有添加openssl的支持,后来功能完善后需要访问https地址链接,就需要openssl库的支持了。 1、openssl编译 版本:openssl-1.0.2g 一定要选对Qt版本对应的openssl版本,由于开始选的openssl版本不对,导致编译Qt时出现很多错误。交叉编译 ./config no-asm s...

QT学习笔记(一)——vs2019搭建与配置Qt,并实现影像显示

发布时间:2022-11-26 C++ VISUALSTUDIO VS学习 QT
vs2019搭建与配置Qt,并实现影像显示 1.关于qt在vs2019的配置 主要参考了这个博客 其中有一个我在配置过程中出现的问题,在此记录一下 Qt Visual Studio Tools 在vs2019一直无法加载,一直在initializing,且提示未能正确加载qtvstoolspackage包 解决方法:更新vs2019,在菜单->帮助->检查更新,按步骤进行更新,但VS更新总是提示网络问题下载失败,因此参考这个博客,可解决vs2019无法更新的问题。 2.显示影像 配置完qt后,...

QT课程设计:基于QT的图像处理程序

发布时间:2022-11-30 QT 图像处理 开发语言
本文用于2022-23学年海哥QT课课程设计的制作过程索引 以下先贴放课设要求 课程设计 一、课程设计要求(每人1题) 基于QT Creator设计一个简易的数字图像处理软件,要求: 工程名含有姓名拼音或首字母 1、有菜单、工具条,支持快捷键; 2、通过文件对话框打开需要访问的图片(支持单选和多选功能); 3、打开的图片可以在该软件中央显示; 4、含有对图像进行灰度化、二值化(阈值可调)、3×3均值滤波、伽马变换(针对彩图)、边缘检测等功能(其他处理功能可以自己设计,验收时主动演示); 5、软件支持中文、...

Qt之天气预报——预备篇

发布时间:2022-12-02 QT 开发语言
序章 实现一个天气预报的demo,该demo的内容分为三章发布,主要内容分别为(一)预备篇、(二)功能实现篇、(三)界面优化篇;接下来就跟着博主一起学习吧! 一、思路整理 当我想要实现一个天气预报,开始前的准备是必要的;具体如下: 1.1 我的Qt版本信息 Qt版本为5.12.4Qt Creator 版本号为 4.9.1Kit为 MinGW 64-bit(该构建套件为安装Qt时勾选安装的)使用环境为Win10 64位 1.2 我使用的API 我使用的API为高德开发平台提供的天气预报API(API使用...

U盘检测-linux+QT

发布时间:2022-11-29 C++ QT QT_C++
注意:本人U盘已经使用​ sudo mkfs.ntfs /dev/sdb1 U盘分区格式化 方法一:Liunx 检测U盘是否存在检测U盘自动挂载还是需要手动挂载 11usb.cpp #include <stdlib.h>#include <stdio.h>#include <sys/types.h>#include <dirent.h>#include <unistd.h>#include <sys/types.h>#inc...

qt 样式表 qss

发布时间:2022-11-26 QT
Qt样式表是一个可以自定义部件外观的十分强大的机制﹐除了那些能够通过子类化QStyle更改的外观,其余的都可以使用Qt样式表来美化。 实现办法:调用setStyleSheet 函数,其中styleSheet一般通过读取配置文件.qss实现。   void setStyleSheet(const QString& styleSheet); QAboutDialog aboutdlg; QFile file(style.qss); file.open(QFile::ReadOnly); QStrin...

qt开发记录

发布时间:2022-11-29 QT
qt下载路径 https://download.qt.io/ qt官方文档 https://doc.qt.io/ 遇到的bug 1Project ERROR: Unknown module(s) in QT: core gui 排查: 是否存在对应库 是否存在对应pri文件:如qt_lib_core.pri qt.conf文件中HostData指向的路径是否为modules/qt_lib_core.pri所在路径 qt webengine开发 关于qt webengine在无opengl的设备上运行,可参...

Qt 绘制表白爱心【李珣表白爱心】

发布时间:2022-12-01 QT 开发语言 UI
Qt 绘制表白爱心【李珣表白爱心】 通过QtPainter进行绘制,具体实现可以参考 B站爱心绘制实现 1. functions.h #include <QPointF>#include <QRandomGenerator>#define IMAGE_ENLARGE 15// 心形函数QPointF heart_function(qreal t, qreal shrink_ratio = IMAGE_ENLARGE) { qreal x = 16 * (sin(t) * si...

9. PyQt5布局的基本原理

Qt布局基本原理 1. 为什么需要布局 不了解布局的情况下,我们使用QT Designer往界面上拖放部件时,大多是随意放置的,这对于学习部件的使用是没有太大影响的,但是,对于一个完善的软件,布局管理是必不可少的。无论是想要界面中的部件有一个整齐的排列,还是想要界面能适应窗口的大小变化,都需要进行布局管理。 2. Qt布局管理系统 Qt主要提供了QLayout类及其子类来作为布局管理器,它们可以实现常用的布局管理功能。 使用布局管理器的好处是可以不用为窗口中的每个部件设置其大小和位置,布局管理器会自动...

QChartView显示实时更新的温度曲线图,即动态曲线图。

发布时间:2022-11-30 C++ QT 动画 UI
前言:因为有个项目要实现将热像仪传过来的温度图像实时的显示在图表中,所以用到QChartView来显示,网上没有找到这种实时更新温度数据曲线的方法,于是自己琢磨了一下,实现了显示动态的温度曲线。 一、UI设计界面中添加QChartView控件。 1)在工程的.pro文件头部加上charts的支持,如下。 QT += charts 2)ui设计界面拖动Widget到界面上,鼠标右键选择“提升为...”菜单,在“提升的类名称:”输入框中输入QChartView,点击“添加”,将QChartView添加到列表。...

【Qt-4】QT基于qhttp-server搭建http服务器

发布时间:2022-12-01 QT 开发语言
写在前面:虽然qhttp-server编译成功,已生成dll库,但在使用过程中,仍出现无法打开文件: “QtSslServer/QtSslServer”的问题,在多次解决无果后,决定放弃qhttp-server,选择了QWebAPP,望知道的大佬可以帮忙解答一下,感谢~~ 一、环境搭建 1、下载及解压源文件 下载QtHttpServer源码,网址:https://github.com/qt-labs/qthttpserver; 下载第三方依赖http-parser源码,网址:https://github....

12. PyQt5实现多页面切换之QTabBar

PyQt5 QTabBar 类 1. QTabBar基础 QTabBar 类直接继承自 QWidget。该类提供了一个选项卡栏,该类仅提供了一个选项卡, 并没有为每个选项卡提供相应的页面,因此要使选项卡栏实际可用,需要自行为每个选项 卡设置需要显示的页面,可以通过 QStackedLayout 布局为选项卡提供页面,另外 Qt 也提 供了一个现成的选项卡部件 QTabWidget。 2. 创建选项卡栏的步骤 my_tabbar = QTabBar()my_tabbar.addTab('AAA')my_...

243_QT_制作动态库,可以加载进自写使用的项目文件中,以及通过代码流程理解

发布时间:2022-11-27 珠海 QT 开发语言 UI
步骤 创建C++文件 dll头文件中的两个宏定义作用!!!必备 . 执行具体功能的头文件需要做一下处理,这样才能制作出动态库 这里的执行具体功能的代码,可以直接拷贝写好的这里是一个画笔UI 画笔执行的界面 代码,其实还有个UI文件必须一起放进来,但是这里不让。。 #ifndef QWDIALOGPEN_H#define QWDIALOGPEN_H#include <QDialog>#include <QPen>#include dll_global.hn...

13. PyQt5实现多页面切换之QTabWidget

PyQt5实现多页面切换之QTabWidget 一、QTabWidget 类简介 QTabWidget 类直接继承自 QWidget。该类提供了一个选项卡栏(QTabBar)和一个相应的页面区域,用于显示与每个选项卡相对应的页面。 与 QStackedLayout 布局原理相同,只有当前页面(即可见页面)是可见的,所有其他页面都不可见,用户可通过选择不同的选项卡来显示其对应的其他页面。页面或页面部件:其实就是容器(通常使用 QWidget 创建)QTabWidget 类,是一个实现多页面切换的类,该类...

Qt快捷键(常用+非常详细)

发布时间:2022-11-29 QT
常用高频快捷键 Ctrl + / 多行注释/取消多行注释 Ctrl + B 编译工程 Ctrl + R 运行工程 Ctrl+Alt+up(向上箭头) 当前行向上复制 Ctrl+Alt+down(向下箭头) 当前行向下复制 Ctrl+Shift+up(向上箭头) 整行向上移动 Ctrl+Shift+down(向下箭头) 整行向下移动 Ctrl + I 代码格式化对齐 Ctrl + L 跳到某一行 Ctrl + F 查找/替换当前选中的内容,对与所选内容一致的部分进行高亮显示 F1 查看帮助(选中某一类或函...

11. PyQt5实现多页面切换之QStackedLayout和QStackedWidget

实现多页面切换 多页面切换相关的类主要有QStackedLayout、QStackedWidget、QTabBar和QTabWidget等 一. QStackedLayout 类(分组布局或栈布局) 使用QStackedLayout可以实现一个多页面切换的界面,多页面切换就是类似于选项卡类型的界面。 QStackedLayout并没有直接实现多页面切换的版面,只是我们可以通过该类实现多页面切换的功能,因此要使用QStackedLayout类实现多页面切换,需要自行设计。 QStackedLay...

8. PyQt5信号(signals)和槽(slots)

1. 什么是信号(signals)和槽(slots)? 信号和槽是用于对象之间的通信的,它们是Qt编程的基础,也是Qt的核心。它们可以让编程人员把那些互不了解的对象绑定在一起,来完成对象之间的协同操作。为此 Qt 引入了一些关键字,他们是slots、 signals、 emit,这些都不是 C++关键字,是 Qt 特有的,这些关键字会被 Qt 的 moc转换为标准的 C++语句。 假如我们单击窗口上的一个按钮后想要弹出一个对话框,那么可以将这个按钮的单击信号和自定义的槽关联起来,在这个槽中创建一个对话...

Qt SQL模块:访问ACCESS,SQLITE,模型及视图

发布时间:2022-11-29 QT SQL 数据库
目录 一、Qt SQL模块介绍 1.驱动层 2.SQL接口层 3.用户接口层 二、访问ACCESS数据库 三、访问SQLite数据库 四、采用模型、视图方式访问数据库  一、Qt SQL模块介绍 Qt SQL 模块提供数据库变成的支持,MySQL、Oracle、MS SQL Server、SQlite等。 Qt SQL 模块包含多个类,实现数据库的连接,SQL语句执行,数据获取与界面显示,数据与界面之间使用Model/View结构,方便的实现数据的显示和操作。 Qt SQL模块提供了一个平台无关且数据...

Ubuntu18.04+Qt+Opencv+opencv_contrib 解决putText中文乱码问题

发布时间:2022-12-02 QT OPENCV 计算机视觉
目录 问题描述: 目的: 配置环境的过程记录: 1 opencv的卸载 1.1 自带的opencv3.3.1卸载方式 1.2 源码安装的opencv卸载方式 2 opencv及opencv_contrib的资源下载 3 安装依赖 4 安装opencv 4.1 在opencv文件夹下,新建build文件夹 4.2 配置 cmake选项 4.3 编译安装 4.4 添加环境变量 4.5 更新库 4.6 配置BUSH 4.7 最后执行 5 查看版本信息 6 qt实例 6.1 配置 6.2 main.cpp文件代码...

PyQt5 QSlider滑动条

发布时间:2022-11-26 PYQT5 QT 开发语言 PYTHON
import sysfrom PyQt5.QtGui import *from PyQt5.QtCore import *from PyQt5.QtWidgets import *from PyQt5.QtCore import Qtclass MySliderWindow(QWidget): def __init__(self, parent=None): super(MySliderWindow, self).__init__(parent) self.setWi...

10. PyQt5布局管理器

PyQt5布局管理器 1. QBoxLayout 及其子类 (盒式布局) QBoxLayout盒式布局管理器,可以创建水平或垂直方向的布局管理器,使子部件在水平方向或者垂直方向排成一列,它将所有的空间分成一行盒子,然后将每个部件放入一个盒子中。通常使用的是该类的两个子类QHBoxLayout和QVBoxLayout,因为子类有比较方便的构造函数。 布局管理器常用属性说明: QBoxLayout的方法可以从以下链接查询到: https://www.riverbankcomputing.com/stat...

14.PyQt5应用程序主窗口QmainWindow详解

PyQt5 应用程序主窗口 对于日常见到的应用程序而言,许多都是基于主窗口的,主窗口包含了菜单栏、工具栏、状态栏和中心区域等。 QT/PyQt中提供了以QmainWindow类为核心的主窗口框架,它包含了众多相关的类,它们的继承关系如下图所示: 一. QMainWindow类(主窗口)基础 QMainWindow 类继承自 QWidget 类, 因此主窗口就是一个普通的部件,只不过主窗口拥有自已的布局,在主窗口中特定的位置只能添加特定的子部件而已。 因为主窗口有自已的布局,因此不能在主窗口上设置布局...

QT源码拾贝0-5(qimage和qpainter)

发布时间:2022-11-30 C++ QT QT开发从入门到放肆
目录 0   qt源码查看方法 1.  qimage.cpp中线程池使用方法 2.  qpainter_p.h中SmallStack模板元结构体存放智能指针 3.  qpainter.cpp的保存函数,状态对象赋值使用std::exchange函数 4.  qpainter.cpp中获得类对象的方法 5.  qpainter.cpp中QChar字节操作,使用u在字节前面 0   qt源码查看方法 使用vscode工具,加载qt源码路径,比如:C:\Qt\6.5.0\Src 再安装一个C/C++插件: ...

Opencv_简单的图像拼接

发布时间:2022-11-29 QT OPENCV 计算机视觉 人工智能
项目描述: 需要设计一个可以将两个图片结合起来的功能 项目实现: 通过上网查找资料发现Opencv中的stitcher可以实现这个功能: 但是这个函数实现后图片的四周会出现黑色的边框。 拼接前: 拼接后 代码: Mat Img_01 = cv::imread(D:/03Qt_study/Opencv/Opencv_Pro/img/01.png, IMREAD_UNCHANGED); //加载原始图像 Mat Img_02 = cv::imread(D:/03Qt_study/Opencv/...

Qt_Opencv安装

发布时间:2022-11-29 QT OPENCV 人工智能
下载Opencv:(https://opencv.org/releases/) 直接下载opencv的windows安装包(这个安装包可以直接安装编译好的opencv)下载sources,这个还需要下载cmake进行编译。 配置环境: 在工程中添加 测试是否成功: #include mainwindow.h#include ui_mainwindow.h#include <opencv.hpp>#include<iostream>using namespace cv;//...

22081-11-18 qt网络聊天室-基于tcp客户端和服务器的搭建

发布时间:2022-11-30 QT 开发语言
服务器和客户端都要在.pro工程文件添加network eg: QT += core gui network //服务器头文件#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QTcpServer>//服务器类#include <QTcpSocket>//客户端类#include <QDebug>QT_BEGIN_NAMESPACEnamespace Ui { class...

15.PyQt5中的事件系统之事件(QEvent)简介

PyQt5中的事件系统 一、什么是Qt中的事件 事件(event)是由窗口系统或者Qt自身产生的事情或动作的通称。当用户按下或者松开键盘或鼠标的按键时,就可以产生一个键盘或者鼠标事件;当某个窗口第一次显示的时候,就会产生一个绘制事件,用来告知窗口需要重新绘制它本身,从而使窗口可见。大多数事件是作为用户动作的响应而产生的,但是也有一些例外,比如像定时器事件,则是由系统独立产生的。 在使用Qt进行编程开发时,通常不需要考虑事件,因为在发生某些重要的事情时,Qt窗口部件都会发射信号。但是当我们需要编写自...

QSS-青色风格

发布时间:2022-12-01 QT HTML CSS3 CSS
青色皮肤  表格右下角水平和垂直滚动条交汇处需单独设置cornerWidget,例如: QLabel *pLabel = new QLabel; ui.tableWidget->setCornerWidget(pLabel); 青色风格 skin.qss /*所有窗口控件去除虚线框*/*{ outline: none; /*去除轮廓虚线框*/}/*所有窗口控件禁用状态*/*:!enabled{ background-color: #f6f5ec; /...

19.[Python GUI] PyQt5中的模型与视图框架-基本原理

PyQt中的模型与视图框架 一、Qt中模型与视图相关的类 二、模型与视图的基本原理 MVC把图形界面分为三个部分:模型(Model),视图(View)和控制器(Controller), 模型(Model):用于管理数据,注意,数据不一定需要位于模型之中视图(View):就是呈现在用户面前的界面外观,视图负责把模型中的数据展现给用户。控制器(Controller):用于处理用户在用户界面的输入 MVC把需要处理的数据及其显示分离开来。 Qt实现的MVC模型: 其实Qt中的MVC并不叫MVC,...

Qt中的事件

发布时间:2022-12-03 QT 开发语言 UI
1、自定义控件 提供外部接口 form.h的类中声明 #ifndef FORM_H#define FORM_H#include <QWidget>namespace Ui {class Form;}class Form : public QWidget{ Q_OBJECTpublic: explicit Form(QWidget *parent = 0); //提供设置slider的value接口 void mySetValue(int value); //提供获...

QT-Widget-paintEvent绘制动态曲线

发布时间:2022-12-01 QT 开发语言
先上示例图: 波形示例图如下(数据生成参考QTqml示例Oscilloscope): 如何让曲线动起来: 调用update()函数,会触发paintEvent事件进行页面重绘,将更新后的点的集合重新绘制,连线。使用drawLine()或者drawLines()这个函数。如此绘制连线达到动态效果,曲线一般是添加平滑效果。 代码展示: 头文件.h  #ifndef DATASOURCE_H#define DATASOURCE_H#include <QWidget>#include <QTim...

Qt-OpenCV学习笔记--人脸检测--基于Haar特征的cascade分类器

概述 基于Haar特征的cascade分类器(classifiers) 是Paul Viola和 Michael Jone在2001年,论文”Rapid Object Detection using a Boosted Cascade of Simple Features”中提出的一种有效的物品检测(object detect)方法。它是一种机器学习方法,通过许多正负样例中训练得到cascade方程,然后将其应用于其他图片。 Haar特征分类器就是一个XML文件,该文件中会描述人体各个部位的Haar特征值...

qmake对一个简单的pro文件(t.pro)的解析日志

发布时间:2022-11-27 QT QMAKE
QT +=network widgetsTEMPLATE = appCONFIG += c++11 consoleCONFIG -= app_bundle#CONFIG += build_all#CONFIG += qt#load(qt_tool)SOURCES += \ main.cpp \ base.cpp \ base1.cppHEADERS += \ base.h \ base1.hDISTFILES +=RESOURCES +=QMAKE_MOC_OPTIO...

18. [Python GUI] PyQt5中的事件系统之事件过滤器EventFilter

PyQt5中的事件过滤器EventFilter 1. 什么是事件过滤器EventFilter Qt事件系统一个非常强大的功能是:QObject实例在看到它自己的事件之前,可以通过设置另外一个QObject实例先监视这些事件。在一个部件中监控其他多个部件的事件,这便是通过Qt提供的事件过滤器来实现的。 事件过滤器和其他部件不同,它不是一个类,只是由两个函数组成的一种操作,用来完成一个部件对其他部件的事件的监视。要对一个部件使用事件过滤器,那么就要先使用它的installEventFilter()方法为其...

手把手教你搭建属于自己的PyQt5-YOLOv5目标检测平台(保姆级教程)

>>>深度学习Tricks,第一时间送达<<< 🚀🚀🚀NEW!!!PyQt5-YOLOv5目标检测平台来啦 ~ 💡💡近期,小海带尝试用Pycharm做可视化界面相关设计,并搭载之前实验训练较好的YOLOv5算法模型,以此成功搭建了属于自己的PyQt5-YOLOv5目标检测平台,平台界面美观,检测效果也俱佳。有需要的小伙伴可以在CSDN/QQ后台留言+手把手教学喔!!!👍👍👍🔥🔥🔥 一、获取代码 ...

QT学习笔记(三)——vs2019+Qt实现打开影像并以鼠标为中心用滚轮控制图片缩放

发布时间:2022-11-26 C++ QT 笔记 VISUALSTUDIO
vs2019+Qt实现打开影像并以鼠标为中心用滚轮控制图片缩放 之前写了一个博客讲怎么显示一张影像,那个是基于Qpainter的 今天使用QLabel来显示影像,并且用鼠标滚轮控制缩放。 关于图像的打开和显示,主要参考这个博客 关于如何使图片自适应窗口与铺满窗口,可以参考这个博客。 这两个博客出自同一作者,都很详细。 其中按照第二个博客运行后存在的问题是,点了铺满窗口后,再点自适应窗口,图片没有反应。 解决方法: 1.在头文件添加成员变量 QImage m_image; 2.在InitImage(...

qmake language ~= 字符串替换操作 正则表达式

发布时间:2022-12-03 QT QMAKE
qmake language 的字符串替换操作的规则为: VAR ~= s[seprator]pattern[seprator]replace[seprator]?[gqi] 1、必须以s开头 2、seprator需要自己指定,可以是任意字符 3、pattern为正则表达式的内容,可以参看正则表达式规则:正则表达式(全)  4、replace表示要替换成的目标内容,用于替换VAR中存放的字符串中满足pattern的部分 5、seprator最多有三个,pattern和replace中不能含有seprato...

QT中组件/控件类的关系

发布时间:2022-12-04 GUI QT
一、常见类继承关系 二、窗口类继承关系 Qt中窗口类的继承关系 说明: QWidge继承自QObject和QPaintDevice类 QObject是支持QT对象模型的基类(Qt Object Model)QPaintDevice是所有可以绘制的对象的基类。 QWidget是QDialog和QMainWindow的基类。 QMainWindow是带有菜单栏和工具栏的主窗口类。QDialog是各种对话框的基类。 ...

qt 绘图QPainter

发布时间:2022-11-26 QT 开发语言
QPainter绘图系统 QPainter用来进行绘图操作的类。绘图设备一般包括Qwidget、Qpixmap、QImage.他们提供给QPainter画布。 QPaintDevice是一个可以使用QPainter进行绘图的抽象二维界面。 QPaintEngine给QPainter提供在不同设备上绘图的接口,QPaintEngine类由QPainter和QPaintDevice内部使用,应用程序一般无需使用QPaintEngine。 绘图设备包括QWidget、QPixmap、QImage等。paintE...

Qt信号与槽(非常详细)

发布时间:2022-11-29 C++ QT 开发语言
信号与槽介绍 Qt的核心机制的信号和槽,它是是用于对象之间的通信,学Qt必须掌握信号与槽机制原理。如果你了解MFC,你就会知道Qt中的信号与槽和mfc中的消息响应机制类似。 信号槽也是 Qt 框架引以为豪的机制之一。其实信号槽类似于设计模式中的观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定...

17. [Python GUI] PyQt5中的事件系统之事件(QEvent)的接受accept和忽略ignore

PyQt5中的事件系统之事件(QEvent)的接受和忽略 一、什么是事件QEvent的接受accept和忽略ignore 前面我们一起学习了PyQt5中事件的基本概念,以及事件是如何传递和处理的,这一节我们将继续学习,在PyQt5中事件的传递过程中,它是如何被accept和ignore的,下面我们来一起看看吧: 事件可以被接受或忽略,被接受的事件不会再传递给其他对象,被忽略的事件会被传递给其他对象处理,或者该事件被丢弃(即没有对象处理该事件) 使用 QEvent::accept()函数表示接受一个...

QT 虚拟键盘问题解决,dialog,模态窗口,无感知

发布时间:2022-11-26 C++ QT 开发语言
目前各个帖子都没有完美解决QT下模态窗口的键盘无响应问题,此帖已解决此问题。 问题原因:原因主要是模态窗口卡住了虚拟键盘的事件响应,导致两者冲突,出现界面假死现象 目前主要解决方案是设置Dialog为非模态窗口,此法属于绕过虚拟键盘问题,模态窗口的作用就没有了,也就没有这个帖子的意义了。 那要怎么解决这个事件无响应,并且不能修改模态窗口的属性呢? 我思索了很久,偶然想起来模态窗口的子控件是完全可以响应事件的,那我们可以在创建虚拟键盘时将模态窗口设置为虚拟键盘的父对象,不就可以了吗? //如果当前焦点控件的...