pushbutton

Qt之事件处理机制

夙愿已清 提交于 2020-10-24 00:29:26
思维导读 一、事件简介 二、QT事件产生 三、Qt事件处理 四、自定义事件和eventFilter示例 思维导读    回到顶部 一、事件简介   QT程序是事件驱动的, 程序的每个动作都是由内部某个事件所触发。QT事件的发生和处理成为程序运行的主线,存在于程序整个生命周期。   常见的QT事件类型如下:  键盘事件: 按键按下和松开  鼠标事件: 鼠标移动,鼠标按键的按下和松开  拖放事件: 用鼠标进行拖放  滚轮事件: 鼠标滚轮滚动  绘屏事件: 重绘屏幕的某些部分  定时事件: 定时器到时  焦点事件: 键盘焦点移动  进入和离开事件: 鼠标移入widget之内,或是移出  移动事件: widget的位置改变  大小改变事件: widget的大小改变  显示和隐藏事件: widget显示和隐藏  窗口事件: 窗口是否为当前窗口   QT将系统产生的消息转化为QT事件,QT事件被封装为对象,所有的QT事件均继承抽象类QEvent,用于描述程序内部或外部发生的动作,任意的QObject对象都具备处理QT事件的能力。 回到顶部 二、QT事件产生 (1)操作系统事件   操作系统将获取的事件,比如鼠标按键,键盘按键等keyPressEvent,keyReleaseEvent,mousePressEvent,mouseReleaseEvent事件, 放入系统的消息队列中

如何用 PyQt5 快速构建一个简单的 GUI 应用

萝らか妹 提交于 2020-10-05 14:01:03
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处 1. 介绍 Python GUI 常用的 3 种框架是:Tkinter、wxpython、PyQt5 PyQt5 基于 Qt,是 Python 和 Qt 的结合体,可以用 Python 语言编写跨平台的 GUI 应用程序 相比 Tkiner和 wxpython,PyQt5 利用自带的 Qt Designer 可视化工具进行界面设计,可以非常快速地开发出一款功能强大、界面美观的 GUI 应用程序 2. 安装 以 Mac OSX 为例,PC 下的操作类似。 首先,在系统内部安装 qt 应用 # 安装qt brew install qt 然后,在 Python 虚拟环境下安装 sip 和 pyqt5 两个依赖库 # 安装依赖sip pip3 install sip # 安装依赖pyqt5 pip3 install pyqt5 接着,在 Pycharm 中配置 External Tools,新建 Qt Designer 和 PyUIC 两个命令 # Qt Designer 配置 Program:/usr/local/Cellar/qt/5.14.1/libexec/ Designer.app Working directory: /usr/local/Cellar/qt

Qt中在控件上绘图

不想你离开。 提交于 2020-10-02 11:35:26
1.总述 Qt的要在当前类对应的窗口上绘图一般需要重写paintEvent函数,但是Qt的事件过滤器默认是把父窗口下子控件的绘图事件给过滤了的,因此重写父窗口的paintEvent函数是无法在子控件上进行绘图的,下面举一个例子。 1 void MainWindow::myDraw(QLabel * label) 2 { 3 QPainter painter(label); 4 painter.setPen(Qt::gray); 5 painter.setBrush(Qt::green); 6 painter.drawRect(10,10,20,20); 7 } 8 9 void MainWindow::paintEvent(QPaintEvent *) 10 { 11 myDraw(ui->label); 12 myDraw(ui->label_2); 13 } 如上所示,重写MainWindow的paintEvent(QPaintEvent *)函数,然后在里面对子控件绘图是没有用的。 2.解决方案 还是以上面的例子为例。 法一 自己定义一个Mylabel类继承于QLabel,然后在这个类中重写paintEvent(QPaintEvent *)函数,并在里面绘图。然后在ui界面中把对应的QLabel提升为Mylabel。这种方式不是很灵活,因此不多介绍,详见https:/

PYTHON3 之 Android小工具

Deadly 提交于 2020-08-18 07:07:59
一、介绍 1、工具目标:   1)执行adb devices,shell,root,pull命令;   2)有图形界面,可以傻瓜式操作 2、方法:   经过技术可行性分析,可以使用python3,PyQt5,pyinstaller,subprocess.run,adb等技术实现目标 3、原理:使用python3 执行 adb相关命令,用PyQt5制作显示界面 二、工具 1、界面 先看看界面,使用的控件:groupBox,pushButton,comboBox,lineEdit,toolButton,label,textBrowser, 使用Qt Desiger布置界面,然后转化成python代码 2、代码 1)界面py,文件名LOG_TOOL_UI.ui # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'LOG_TOOL_UI.ui' # # Created by: PyQt5 UI code generator 5.14.2 # # WARNING! All changes made in this file will be lost! from PyQt5 import QtCore, QtGui, QtWidgets class Ui_MainWindow(object)

Qt 布局管理(器)

旧巷老猫 提交于 2020-08-15 04:00:38
本文介绍的是QT 布局管理界面 图文并茂,在QT下进行界面设计,可以使用水平、垂直和Grid布局管理器来进行。 QT 布局 管理 界面 图文并茂是本文介绍的内容,先来看内容。今天来实现一个温度转换器的 界面 。如下图: 水平 布局 管理器可以把它所管理的部件以水平的顺序依次排开,例如上图中中间的“Centigrade”和“Fahrenheit”两段文字,就是水平排列的,这个时候就可以用水平 布局 管理器来实现。 垂直管理器类似,它可以把它所管理的部件以垂直的顺序依次排开,例如上图中右侧的液晶数字和地下的表盘,就形成了垂直排列,这个时候就可以用垂直管理器来实现。 Grid 布局 管理器可以以网格的形式,将它所管理的部件以一定的矩阵形式排列。比如上图中,所有的部件一起看,其实就是一种矩阵的形式来排列的。 在 QT 下做 界面 设计的时候,其实无非就是利用上面三种 布局 管理器来将部件进行分类和排列。 就拿上图为例,总计有7个部件(一个PushButton,三个Label,一个Slider,一个LCDNumber和一个Dial),首先需要确定七个部件在对话框上的排布(上图就是我希望的排布方式)。然后,有两种方法用程序来实现我们期望的这种排布效果: 第一种,充分利用水平、垂直布局管理器:可以将最终布局拆分成以下四部分: 第一部分只有一个PushButton,先不管它。

PyQt:使用QtDesigner设计界面

六眼飞鱼酱① 提交于 2020-08-11 07:31:07
目录 1、安装pyqt5designer、pyqt5 2、pycharm中添加外部工具 3、使用QtDesigner设计页面 1、安装相关库   pip install pyqt5designer   pip install pyqt5 2、pycharm添加外部工具   在setting中添加两个工具      QtDesigner中按照如图填写:   Programe:选择designer的安装目录,当pip install pyqt5designer安装完成后就会出现,也可以双击直接打开QtDesigner   Working directory: $ProjectFileDir$         PyUIC:这个工具可以将QtDesigner拖拽设计的页面转化为py文件   参数填写说明:   Programe:如图,其他版本(除了PyQt5)可能不在此路径   Arguments: -o $FileNameWithoutExtension$.py $FileName$   Working directory: $FileDir$      打开QtDesigner工具设计页面    3、简单设计一个login页面     1、创建界面,选择Wdiget     2、分别在窗口添加如下控件,Lable、pushButton、checkBox、lineEdit如图所示:   

PyQt的使用

末鹿安然 提交于 2020-08-07 21:37:41
一直以来做界面都是用VS,或者一些专用的工具。最近要做一个小工具,朋友建议用PyQt,于是学习了一下,做此记录。 本质上,PyQt就是Qt,只不过用Qt Designer创建界面之后,再把生成的xml文件A用pyuic转成py文件B,然后再在py文件C中导入B,即可进行调用。其中A类似于WPF中的xaml,B类似于VS从xaml生成的g.cs和g.i.cs,而C类似于xaml.cs文件。 因为装了Anaconda,好像自带了PyQt需要的工具包,因此就不折腾了,直接打开Anaconda Prompt,运行designer.exe。整个界面和VS很像,从左边拖一些控件到中间的窗口上即可。 设计完成后保存,默认保存为ui文件。 保存之后,在Anaconda Prompt中运行pyuic5指令,将test.ui转换为test.py pyuic5.bat -o test.py test.ui 此时在相应的目录下生成test.py。 查看test.py的内容如下,可见其内容为控件布局,命名等。 # -*- coding: utf-8 -*- # Form implementation generated from reading ui file '.\test.ui' # # Created by: PyQt5 UI code generator 5.9.2 # # WARNING! All

基于MATLAB的GUI(Graphical User Interface)音频实时显示设计

别来无恙 提交于 2020-08-07 19:36:58
【博主原创】 摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧。通过”录音“按钮可以实现声音从电脑的声卡录入,并且实时显示录入声音的时域图形和频域图形;待录音结束,通过”播放“按钮可以播放刚录入的声音,并且一边播放一遍实时显示时域和频域图形。本设计的编码在matlab2013a上亲测,可以实现。。。 一、首先matlab的gui界面设计 打开matlab—>在命令行执行guide—>出现gui编辑界面,选择一个默认的空白模板—>在界面上添加两个坐标轴axes1、axes2,再添加两个push_button,和两个text—>调整好位置,将两个按钮tag改名为录音和播放,将两个text改为时域波形和频域波形,这样简单的界面就做好了,想要美观一些,可以自己再编辑。 二、设计好gui界面保存后就会自动生成一个.fig的文件和一个.m的文件,两个文件不要丢失,下次可以通过运行.m文件来打开界面,实现功能。设计好的界面如下图所示 打开.m的文件,里面可以看到图形设计的主函数function varargout = yin(varargin),打开函数function yin_OpeningFcn(hObject, eventdata, handles, varargin

基于MATLAB的GUI(Graphical User Interface)音频实时显示设计

旧城冷巷雨未停 提交于 2020-08-07 08:28:49
【博主原创】 摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧。通过”录音“按钮可以实现声音从电脑的声卡录入,并且实时显示录入声音的时域图形和频域图形;待录音结束,通过”播放“按钮可以播放刚录入的声音,并且一边播放一遍实时显示时域和频域图形。本设计的编码在matlab2013a上亲测,可以实现。。。 一、首先matlab的gui界面设计 打开matlab—>在命令行执行guide—>出现gui编辑界面,选择一个默认的空白模板—>在界面上添加两个坐标轴axes1、axes2,再添加两个push_button,和两个text—>调整好位置,将两个按钮tag改名为录音和播放,将两个text改为时域波形和频域波形,这样简单的界面就做好了,想要美观一些,可以自己再编辑。 二、设计好gui界面保存后就会自动生成一个.fig的文件和一个.m的文件,两个文件不要丢失,下次可以通过运行.m文件来打开界面,实现功能。设计好的界面如下图所示 打开.m的文件,里面可以看到图形设计的主函数function varargout = yin(varargin),打开函数function yin_OpeningFcn(hObject, eventdata, handles, varargin

基于MATLAB的GUI(Graphical User Interface)音频实时显示设计

China☆狼群 提交于 2020-08-06 20:25:50
【博主原创】 摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧。通过”录音“按钮可以实现声音从电脑的声卡录入,并且实时显示录入声音的时域图形和频域图形;待录音结束,通过”播放“按钮可以播放刚录入的声音,并且一边播放一遍实时显示时域和频域图形。本设计的编码在matlab2013a上亲测,可以实现。。。 一、首先matlab的gui界面设计 打开matlab—>在命令行执行guide—>出现gui编辑界面,选择一个默认的空白模板—>在界面上添加两个坐标轴axes1、axes2,再添加两个push_button,和两个text—>调整好位置,将两个按钮tag改名为录音和播放,将两个text改为时域波形和频域波形,这样简单的界面就做好了,想要美观一些,可以自己再编辑。 二、设计好gui界面保存后就会自动生成一个.fig的文件和一个.m的文件,两个文件不要丢失,下次可以通过运行.m文件来打开界面,实现功能。设计好的界面如下图所示 打开.m的文件,里面可以看到图形设计的主函数function varargout = yin(varargin),打开函数function yin_OpeningFcn(hObject, eventdata, handles, varargin