PYQT5 学习
zetcode教程 汉化版:
https://maicss.gitbook.io/pyqt5-chinese-tutoral/
官方网站:
https://www.riverbankcomputing.com/static/Docs/PyQt5/introduction.html
QT使用手册:
https://doc.qt.io/archives/qtjambi-4.5.2_01/com/trolltech/qt/gui/QComboBox.html
学习策略
1、明确需求
工作时是项目驱动,明确需求后,在网上查找相关资源,一步步累加功能。最好先搭建一个框架,之后就是在此框架上添加各种功能。
安装
pip install pyqt5
# qt5的图形界面工具,如qtdesinger
pip install pyqt5-tools
布局管理
Qt Designer中,工具箱的最上方有4种布局,分别是垂直布局、水平布局、栅格布局和表单布局。
实现布局有2种方式,通过 布局管理器 与 容器控件。
一个工程用界面通常由以下部分组成:
菜单栏
工具栏
左侧
常用控件
Qt中将表格、简单列表、树状列表称为"表项视图类" item view class;
有两种实现方式:
Item Views(Model-Based),以view结尾,如QListView等;
Item Widgets(Item-Based),以widget结尾,如QListWidget等;
区别:
1、Views 是 Widgets 类的父类;
2、Views是MVC架构的一种简化;Widgets将数据、展示、控制合在一起;实际上Widgets在Views基础上绑定了一个默认的存储数据并提供了相关方法。
QPalette调色板
# 设置背景颜色 或 背景图片
palette1 = QtGui.QPalette(self)
palette1.setColor(self.backgroundRole(), QColor(192,253,123)) # 设置背景颜色
palette1.setBrush(self.backgroundRole(), QtGui.QBrush(QtGui.QPixmap('../../../Document/images/17_big.jpg'))) # 设置背景图片
self.setPalette(palette1)
self.setAutoFillBackground(True) # 不设置也可以
# self.setWindowTitle('Icon') # 设置窗体标题
# self.setWindowIcon(QtGui.QIcon('../../../Document/images/firefox.png')) # 设置窗体ICON
Qbutton
button.setText("haah") # 改变文本
button.setEnabled(True) # 使能与禁用
QLineEdit 单行文本
只能单行编辑的文本框
edit.text() # 获取文本
edit.setText("haha") # 设置文本
edit.clear() # 清除所有文本
edit.setPlaceholderText('请在这里输入URL') # 设置默认提示文字
QPlainTextEdit 多行文本
edit.toPlainText() # 获取文本
edit.setPlainText("haha") # 设置文本
edit.appendPlainText("haha") # 在末尾添加文本
edit.clear() # 清除所有文本
edit.setPlaceholderText('请在这里输入URL') # 设置默认提示文字
QComboBox 组合框
method = cbox.currentText() # 当前 选中的选项 的文本
cbox.clear() # 清空选项
cbox.addItems(['by1','by2','by3'])
QSpinBox 数字输入框
number = box.value() # 返回的是整数对象
box.setValue(100)
信号returnPressed: 按下回车键
passwordEdit.returnPressed.connect(onLogin)
QAction
用于菜单栏、工具栏或自定义快捷键的抽象动作行为。
Pyqt 中__init__(self,parent==None) parent理解
参考:
在PyQt中,所有class都是从QObject派生而来,QWidget对象就可以有一个parent。这种parent-child关系主要用于两个方面:
- 没有parent的QWidget类被认为是最上层的窗体(通常是MainWindow),由于MainWindow的一些操作生成的新窗体对象,parent都应该指向MainWindow。
由于parent-child关系的存在,它保证了child窗体在主窗体被回收之时也被回收。 - parent作为构造函数的最后一个参数被传入,但通常情况下不必显示去指定parent对象。因为当调用局管理器时,部局管理器会自动处理这种parent-child关系。但是在一些特殊的情况下,我们必须显示的指定parent-child关系。如当生成的子类不是QWidget对象但继承了QObject对象,用作dock widgets的QWidget对象。
QTreeWidget
官方链接:https://doc.qt.io/archives/qtjambi-4.5.2_01/com/trolltech/qt/gui/QTreeWidget.html
第一手材料,需要了解大概,知道怎么用。
QTreeWidgetItem:想要编辑时需要在代码中添加
child2.setFlags(child2.flags()| Qt.ItemIsEditable) ;
且在Qt Designer中做相关操作;
Qt Designer中可以做的操作
1、editTriggers:DoubleClicked;
2、selectionMode:ExtendedSelection;
3、drapEnabled:
drapDropMode:DragDrop;
defaultDropAction:CopyAction;
PYQT5 学习的更多相关文章
- PyQt5学习笔记-从主窗体打开一个子窗体
PyQt5学习笔记-从主窗体打开一个子窗体 软件环境: Eric6+Python3.5+PyQt5 试验目标: 1.点击菜单项Open,打开一个子窗体 2.点击按钮Open,打开一个子窗体 主窗体设计 ...
- Pyqt5学习笔记(一)
Python已有的GUI框架: Tkinter(python内嵌的GUI环境,使用TCL实现,易学易用,方便简单创GUI自带无需安装,适用于Unix.Windows和Mac系统组,在Tk8.0的后续版 ...
- Pyqt5学习系列
最近在学习Pyqt5做界面,找到了一个非常棒的博主的学习系列 在此记录下来: http://blog.csdn.net/zhulove86/article/category/6381941
- PyQt5学习笔记----标准文件打开保存框QFileDialog
单个文件打开 QFileDialog.getOpenFileName()多个文件打开 QFileDialog.getOpenFileNames() 文件夹选取 QFileDialog.getE ...
- PYQT5学习笔记之各模块介绍
Qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类 Qtwidegts下还有以下常用对象,所以一般使用Qtwidegts时会使用面向对象式编程 QApplication: ap ...
- PyQt5学习笔记14----初识pyqt多线程操作
转载:翻滚吧挨踢男 首先来看一个例子: # coding=utf-8 __author__ = 'a359680405' from PyQt5.QtCore import * from PyQt5.Q ...
- Python pyQt4/PyQt5 学习笔记4(事件和信号)
信号 & 槽 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QWidget,QLCDNumber,QS ...
- Python pyQt4/PyQt5 学习笔记3(绝对对位,盒布局,网格布局)
本节研究布局管理的内容. (一)绝对对位 import sys from PyQt4 import QtGui class Example(QtGui.QWidget): def __init__( ...
- Python pyQt4/pyQt5 学习笔记2(状态栏、菜单栏和工具栏)
例子:状态栏.菜单栏和工具栏 import sys from PyQt4 import QtGui class Example(QtGui.QMainWindow): def __init__(sel ...
- Python pyQt4/pyQt5 学习笔记1(空白窗口,按钮,控件事件,控件提示,窗体显示到屏幕中间,messagebox)
PyQt4是用来编写有图形界面程序(GUI applications)的一个工具包.PyQt4作为一个Python模块来使用,它有440个类和超过6000种函数和方法.同时它也是一个可以在几乎所有主流 ...
随机推荐
- Minio分布式集群部署——Swarm
最近研究minio分布式集群部署,发现网上大部分都是单服务器部署,而minio官方在github上现在也只提供了k8s和docker-compose的方式,网上有关与swarm启动minio集群的文章 ...
- HDU 5362 Just A String 指数型母函数
题面 Description 用m种字母构造一个长度为n的字符串,如果一个字符串的字母重组后可以形成一个回文串则该串合法,问随机构成的长为n的字符串的合法子串数目期望值. Input 第一行一整数T表 ...
- MongoDB,入门看这一篇足矣!
一.介绍 在介绍 MongoDB 之前,我先介绍一下业务开发的时候遇到的痛点,以便大家对它有一个更加清晰的认识! 最近在用数据库存储数据的时候发现这么一个坑,例如从消息队列中监听消息的时候,原来的做法 ...
- 第四篇:理解vue代码
解释以下代码: 实现输入框中能够打字的功能 <el-input v-model="input" placeholder="在这打字"></el ...
- eBackup备份服务器安装及配置
####### 原博客地址 创建虚拟机 选择第一个 分配硬盘 其余默认 导入压缩包安装eBackup备份软件 用户名root 密码Cloud12#$ 查看ip地址 连接xftp导入包 安装备份软件 # ...
- QT的字符编码
QString编码:UTF-16 QString内部保存的数据就是QChar数组,是Unicode编码(utf16),在字符显示,操作的时候都是基于Unicode. QString构造时默认采用Lat ...
- Python图像处理丨认识图像锐化和边缘提取的4个算子
摘要:图像锐化和边缘提取技术可以消除图像中的噪声,提取图像信息中用来表征图像的一些变量,为图像识别提供基础. 本文分享自华为云社区<[Python图像处理] 十七.图像锐化与边缘检测之Rober ...
- TextView 中文本内容换行
TextView 中文本内容换行 首先如图所示,我的第一栏围城的书名和书的介绍是在同一行 但是我想让书名和书的介绍分开个站一行 这时我只要在我的数组文本中的文本用 "\n" 就可以 ...
- 命令行配置Windows高级防火墙
今天正好看到个帖子,询问如何通过命令行配置防火墙策略中远程IP的地址,特别是添加新的地址. 就是图中Scope里Remote IP address的地址. 第一反应就是用netsh firewall来 ...
- 《Java基础——抽象与接口》
Java基础--抽象与接口 一.抽象: 规则: 关键字 abstract 修饰的类称为抽象类. 子类通过关键字extends实现继承. 关键字 abstract 修饰的方法称为抽象方法,抽 ...