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 学习的更多相关文章

  1. PyQt5学习笔记-从主窗体打开一个子窗体

    PyQt5学习笔记-从主窗体打开一个子窗体 软件环境: Eric6+Python3.5+PyQt5 试验目标: 1.点击菜单项Open,打开一个子窗体 2.点击按钮Open,打开一个子窗体 主窗体设计 ...

  2. Pyqt5学习笔记(一)

    Python已有的GUI框架: Tkinter(python内嵌的GUI环境,使用TCL实现,易学易用,方便简单创GUI自带无需安装,适用于Unix.Windows和Mac系统组,在Tk8.0的后续版 ...

  3. Pyqt5学习系列

    最近在学习Pyqt5做界面,找到了一个非常棒的博主的学习系列 在此记录下来: http://blog.csdn.net/zhulove86/article/category/6381941

  4. PyQt5学习笔记----标准文件打开保存框QFileDialog

    单个文件打开 QFileDialog.getOpenFileName()多个文件打开 QFileDialog.getOpenFileNames() 文件夹选取     QFileDialog.getE ...

  5. PYQT5学习笔记之各模块介绍

    Qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类 Qtwidegts下还有以下常用对象,所以一般使用Qtwidegts时会使用面向对象式编程 QApplication: ap ...

  6. PyQt5学习笔记14----初识pyqt多线程操作

    转载:翻滚吧挨踢男 首先来看一个例子: # coding=utf-8 __author__ = 'a359680405' from PyQt5.QtCore import * from PyQt5.Q ...

  7. Python pyQt4/PyQt5 学习笔记4(事件和信号)

    信号 & 槽 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import (QWidget,QLCDNumber,QS ...

  8. Python pyQt4/PyQt5 学习笔记3(绝对对位,盒布局,网格布局)

    本节研究布局管理的内容. (一)绝对对位  import sys from PyQt4 import QtGui class Example(QtGui.QWidget): def __init__( ...

  9. Python pyQt4/pyQt5 学习笔记2(状态栏、菜单栏和工具栏)

    例子:状态栏.菜单栏和工具栏 import sys from PyQt4 import QtGui class Example(QtGui.QMainWindow): def __init__(sel ...

  10. Python pyQt4/pyQt5 学习笔记1(空白窗口,按钮,控件事件,控件提示,窗体显示到屏幕中间,messagebox)

    PyQt4是用来编写有图形界面程序(GUI applications)的一个工具包.PyQt4作为一个Python模块来使用,它有440个类和超过6000种函数和方法.同时它也是一个可以在几乎所有主流 ...

随机推荐

  1. Configuration的学习

    创建 //1.创建,调用的空惨 Configuration conf = new Configuration(); 加载主配置 //2.读取主配置文件==>如果是空参方法则自动加载sec下的re ...

  2. KingbaseES例程之拥有大量索引的表导入数据

    概述 如何快速插入大量数据比如几千万上亿的带索引的数据表. 数据准备 准备一个拥有二十个索引的数据表. kingbase=# \d+ bigtab Table "kingbase.bigta ...

  3. 游标长时间open导致表无法vacuum问题

    一.问题描述 用户在实际中可能会碰到类似以下 dead rows 无法 vacuum的问题,一个可能的原因是由于游标未结束的原因. test=# vacuum(verbose) t1; INFO: v ...

  4. 国产PLM软件在创新实践中强势崛起

    近日,"璞华PLM"先后获得微度医疗.埃特斯等多个客户的订单,即使在疫情环境下也展现出了强劲的高速增长.在产品生命周期管理(PLM,Product Lifecycle Manage ...

  5. Exchange 2019中启用自动转发到外部域

    今天遇到一个用户反映自动转发的邮件规则没有生效.检查了一下,邮件规则配置没有问题.用户邮箱也能正常收到邮件,但是就是没有转发出去.仔细检查邮件规则,转发的收件人是外部邮箱.Exchange出于安全考虑 ...

  6. Java中关键的知识点

    JVM,运行是内存模型 Java 反射 Java 注解 函数式接口 lambda表达式/流式计算 动态代理

  7. ProxySQL Disk库和Stats库

    转载自:https://www.jianshu.com/p/9ef815162fe9 DISK库 disk schema 用于将配置持久化到磁盘上.配置持久化后,下次重启ProxySQL时就会读取这些 ...

  8. Elastic App Search 入门

    官方文档地址:https://swiftype.com/documentation/app-search/getting-started Elastic App Search 架构图: 它的特点是帮助 ...

  9. 使用Jumpserver堡垒机管理MySQL应用

    第一步,添加系统用户 资产管理,系统用户,创建<数据库协议>MySQL 用户名和密码填写实际可以访问数据库的用户名和密码 第二步,添加应用 应用管理,数据库 主机和端口填写可以访问数据库的 ...

  10. PAT (Basic Level) Practice 1024 科学计数法 分数 20

    科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式 [+-][1-9].[0-9]+E[+-][0-9]+,即数字的整数部分只有 1 位,小数部分至少有 1 位,该数字及其指 ...