虽然我现在编程已经离不开 AI,但有时也会哭笑不得,因为 AI 会胡诌一个答案。特别好玩的是,当你指出回答错误的时候,AI 会继续给你一个错误的答案。
在继承了 QWidget 窗口类以后,我们可以实现很多父类提供的虚函数,其中就包括鼠标的诸多消息处理函数,比如 mousePressEvent(鼠标单击消息)、mouseReleaseEvent(鼠标弹起消息)等等,这些虚函数我们可以通过 Qt 的帮助文档查看,如下:
可以通过QT的重绘事件和鼠标事件来绘制多边形,最简单的办法就是在继承QWidget的窗体中重写paintEvent、mousePressEvent等事件处理函数。QT提供了图形绘制接口QPainter,通过该接口可以绘制多种图形,包括多边形。
重载QGraphicsScene相关的鼠标事件,想得到当前鼠标的坐标点,如果直接从mouseEvent取坐标,返回的坐标点全是0。
在使用拖放的许多情况下,用户开始从特定的窗口小部件拖放,并将有效负载拖放到另一个窗口小部件上。在此示例中,我们将QLabel子类化以创建用作拖动源的标签,并将其放置在同时充当容器和放置站点的QWidget中。
应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm
1. 继承QWidget类并重载paintEvent、mousePressEvent和mouseMoveEvent函数。在mousePressEvent和mouseMoveEvent函数中,我们处理鼠标点击和滑动事件。当鼠标按下或鼠标移动时,我们也根据鼠标位置计算出对应的值,并设置为当前值,与此同时调用update请求界面更新。
1、起动一个定时器,判断在指定的时间之内,点击次数超过2次,则视为双击(其主要思路判断两次点击的时间差在预测的条件以内)
一、Qt图形绘制 自己在Qt开源社区在自学yafeilinux前辈的《Qt快速入门系列教程》中的图形篇,结合所学的知识,可以做一个涂鸦板实例
OpenCV能够处理图像、视频、深度图像等各种类型的视觉数据,在某些情况下,尽管OpenCV可以显示窗口,但PyQt5可能更适合用于创建复杂的交互式应用程序,而自带GPU的H618就成为了这些图像显示的最佳载体。
今天我们来实现自定义标题栏的实现,这里面用到了布局,鼠标事件重写等知识点,首先还是自定义标题栏的创作,像下面这样,可放大,可缩小,并且随着窗体大小的改变,控件做自适应调整。有没有感觉狗子的界面做的越来越好看,哈哈,其实只是想告诉大家,孰能生巧,第一次可能很丑,慢慢来嘛,我第一次也被人喷过。废话不多说,看实现。
引言 又有许久没有更新了。Qt,我心爱的Qt,为了找工作不得不抛弃一段时间,业余时间来学一学了。本来计划要写一系列关于Qt组件美化的博文,但是写了几篇之后就没坚持下去了。技术上倒是问题不大,主要是时间不够充裕。这段时间写几篇关于界面整体设计的博文,从最基础的界面元素开始,到最后构建一个页面元素丰富的桌面应用程序。Trojan Assessment Platform是一个原型设计项目,只是实现了有限的一部分功能。远远还称不上是一个评估平台。这里仅仅侧重于用Qt做界面的实现。 界面预览
然后,我们为鼠标和按键事件实现自定义逻辑。例如,按"+"键将放大,而按"-"键将缩小。
import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPixmap, QPainter, QCursor, QBitmap from PyQt5.QtCore import Qt
在做播放器时,Qt自带的按钮部件虽然很强大,但是显示效果还是不能令人满意。于是决定自定义一个简单的按钮部件。按钮部件只简单的显示按下、释放两个状态,并且只发出clicked()信号。 基本功能如下: 当按下时显示一个按下的图标; 当释放时显示另一个释放的图标,并且发出clicked()信号; 二、程序代码
近期Github开源了一款基于Python开发、名为Textshot的截图工具,刚开源不到半个月已经500+Star。
QT中在QWidget支持拖拽功能,QTreeWidget继承自QWidget,所以自然也具有节点的拖拽功能。
基于PyQt5开发了一个可以用于目标跟踪的软件,在开发过程中遇到一个问题,就是如何在PyQt5的组件QLable中自主选定目标框,这个在opencv里面有专门的函数完成这个工作:cv2.selectROI(),我的目的就是在QLabel的基础上,实现类似函数cv2.selectROI()的功能,这样在运行程序的过程中,就能在视频框里面直接选取感兴趣区域。直接贴出实现的最终效果:
一般自定义标题栏时,就需要将原窗口的标题栏隐藏掉。默认情况下窗口无法被鼠标拖动的,需要自己处理鼠标事件,移动窗口达到拖动效果。
首先我们先获取到当前桌面的完整图片,然后将其放到一个全屏的透明窗口之中,之后,我们在窗口上进行绘制矩形操作,然后获取到绘制的区域即可。
设置setWindowFlag(Qt::FramelessWindowHint)即可无边框窗口,但无法移动和改变大小。
在PyQt中常用的图像类有四种,QPixmap,QImage,QPicture,QBitmap
工程下载地址: https://download.csdn.net/download/xiaolong1126626497/21043499
本篇博客介绍如何利用qMediaPlayer和qvideowidget实现视频文件(avi,mp4….)的播放,并且提供进度显示,还可以通过拖动进度条来变换播放位置。相关代码可以在我的资源里下载”基于qt的视频播放器”
如需安装运行环境或远程调试,可加QQ905733049, 或QQ2945218359由专业技术人员远程协助!
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QCharts折线图的常用方法及灵活运用。
自国务院印发《推进普惠金融发展规划(2016—2020年)》通知以来,各省、自治区、直辖市人民政府、国务院各部委各直属机构积极响应,认真贯彻执行,普惠金融发展已经进入了高潮阶段,各大互联网公司和高校紧跟时代潮流,推出了各种创新性产品和软件,该软件作为一款以培养兴趣,提高学生软件项目的编程项目能力为目的,所创建的一款实用性的软件,以日历为依托,创建了许多相关的特效,优美界面和天气查询、日程管理等实用性功能,且界面等均符合当下青少年的审美需求,是一款紧跟潮流的日历软件
Graphics View提供了QGraphicsScene类,用于管理从QGraphicsItem类派生的大量定制2D图形项目,并与之交互;还提供了QGraphicsView小部件,用于可视化项目,并支持缩放和旋转。
import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QPainter, QPixmap from PyQt5.QtCore import Qt, QPoint
PyQt 提供了多种按钮类,用于创建各种类型的按钮。这一部分将打算介绍一下 PyQt 各种 Button 及相关类,并扩展 Button 的功能用法,让你能够打造自己的个性化 Button 。在下面,我先来介绍 PyQt 中常用的按钮类及其主要特点:
最近在搞 Python 课程设计,想要搞一个好看的 UI,惊艳全班所有人。但打开 Qt Creator,Win7 风格的复古的按钮是在让我难以下手。
本篇介绍用如何QPainter()画出一个可以显示分数的滑块控件,并使其能正确地响应鼠标事件,键盘事件以及自动调整尺寸。
在学习 PyQt5 的过程中我会不断地做一些小的 Demo,用于让自己能够更好地理解和学习,这次要做的就是一个图片查看器,主要功能包括打开图片、拖动图片、放大和缩小图片。
平移功能是QCustomPlot自带的功能,参见我的该系列前面的博文。框选放大、全显等功能在另一篇博文中也讲到了。
前几篇文章中,我们介绍了一些简单的消息拦截方法,但其实在整个 Qt 框架中,不仅仅有那么几处拦截消息的方法,在 Qt 文档中标明了,一共有5中方法。下面就一一列举一下每种方法所在的位置以及实现方法。后面我们会提供代码帮助大家学习。
不规则窗体效果——遮罩 根据一张图片来设置窗体显示效果。setMask #include "widget.h" #include "ui_widget.h" #include<QPixmap> #include<QBitmap> #include<QPainter> Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupUi(this); QPixmap pixmap;
1. 加载抽奖人员名单,并保存加载路径; 2. 单击左键或者点击ctrl+s开始抽奖,并滚动显示人员名单,显示的人员名单格式为 部门-姓名。 3. 单击左键或者点击ctrl+s停止抽奖,并固定显示中奖人员名单。
完整代码链接:https://github.com/gongjianbo/MyTestCode/tree/master/Qt/MyTabWidget
2. 刻度尺交互使用到的事件: mousePressEvent; mouseReleaseEvent; mouseMoveEvent; mouseDoubleClickEvent, 双击事件,用于旋转尺子交互。
一、创建一个基类为Widget的桌面应用程序 二、在头文件中定义如下局部变量: private: //棋盘水平方向一个格子的宽度 int gridW; //棋盘水平方向一个格子的高度 int gridH; //棋盘起点x坐标 int startX; //棋盘起点y坐标 int startY; //棋盘下标 int chessX, chessY; 三、声明如下两个重写的事件 protected: //绘图事件 v
原文链接:https://blog.csdn.net/humanking7/article/details/80707591
PyQt5 是一个基于 Python 的 GUI 库,它提供了丰富的功能来创建图形用户界面。其中的 QOpenGLWidget 类可以用来集成 OpenGL 渲染器,实现基于 OpenGL 的图形和动画效果。在本篇文章中,我们将讲解如何使用 PyQt5 创建一个简单的 OpenGL Demo。
经过两周的迭代,现在我们的 PyReadon 已经具备一般的 PDF 阅读器的基本功能:
引言 在上一篇中讲述了主窗体的创建和设计。主窗体的无边框效果、阴影效果、拖动事件处理、窗体美化等工作在前面的博客中早就涉及,因此上篇博文中并未花费过多笔墨。这一篇继续讲述工具箱(Tool Button)的实现。另外,在实现的过程中还做了另外一个贴心的小功能:可伸缩的侧边栏。不过后来发现应用起来后效果不佳,于是就没在主窗体中加入这个功能了,单独做了一个demo作为示范。 工具箱的实现 工具箱是将若干的工具按钮组织在一起,为用户提供简便导航功能的一个组件。在Qt中实现这个功能不难,Q
所有的应用都是事件驱动的。事件大部分都是由用户的行为产生的,当然也有其他的事件产生方式,比如网络的连接,窗口管理器或者定时器等。调用应用的exec_()方法时,应用会进入主循环,主循环会监听和分发事件。
QT中,事件作为一个对象,继承自QEvent类,常见的有键盘事件QKeyEvent、鼠标事件QMouseEvent和定时器事件QTimerEvent等。QT中,任何QObject子类示例都可以接收和处理事件。实际编程中通常实现部件的paintEvent()、mousePressEvent()等事件处理函数来处理特定部件的特定事件。
事件是指诸如,移动鼠标,点击按钮,定时器,按下键盘等。他们是由系统或者Qt发出的。所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数)。也就是说当我们的界面显示以后,程序就进入了事件循环。程序在等待事件的发生,假设你的界面上可能有3个按钮,那么程序不肯能一个按钮一个按钮的向下执行,他需要等你按下按钮才行。只有你按下了按钮。那么相应的事件才会发生。事件驱动的设计模式改变了以往程序线性执行的方式。
接着上文:绘制基础图形函数已经全部清楚,然后进阶鼠标拖画。 鼠标拖画,需要用到鼠标事件 鼠标事件: 与C++Qt一样,鼠标事件,需要重载鼠标事件函数如下:
可对文本进行拖动到指定位置。 部分主要代码 当被鼠标拖动的对象进入其容器范围内时触发此事件 void DragWidget::dragEnterEvent(QDragEnterEvent *event
今天就简单简单写个自定义对话框分享给大家。 演示 上代码! 自定义对话框的使用: #include <QApplication> #include <QDebug> #include "Dialog
领取专属 10元无门槛券
手把手带您无忧上云