PyQt4学习日记1

2023-11-29 22:08
文章标签 学习 日记 pyqt4

本文主要是介绍PyQt4学习日记1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. PyQt4类库

解析:PyQt类库是用来创建GUI应用程序的工具包,它把Python和成功的Qt绑定在一起,有超过300个类和超过6000个方法。PyQt4模块,如下所示:

(1)QtCore模块:包括了核心的非GUI功能,该模块用来对时间、文件、目录、各种数据类型、流、网址、媒体类型、线程或进程进行处理。
(2)QtGui模块:包括图形化窗口组件和及相关类。包括按钮、窗体、状态栏、滑块、位图、颜色、字体等。
(3)QtHelp模块:包含了用于创建和查看可查找的文档的类。
(4)QtNetwork模块:包括网络编程的类。这些类可以用来编写TCP/IP和UDP的客户端和服务器。它们使得网络编程更容易和便捷。
(5)QtOpenGL模块:使用OpenGL库来渲染3D和2D图形。该模块使得Qt GUI库和OpenGL库无缝集成。
(6)QtScript模块:包含了使PyQt应用程序使用JavaScript解释器编写脚本的类。
(7)QtSql模块:提供操作数据库的类。
(8)QtSvg模块:提供了显示SVG文件内容的类。可缩放矢量图形(SVG)是一种用XML描述二维图形和图形应用的语言。
(9)QtTest模块:包含了对PyQt应用程序进行单元测试的功能。(PyQt没有实现完全的Qt单元测试框架,相反它假设使用标准的Python单元(10)测试框架来实现模拟用户和GUI进行交互)
(10)QtWebKit模块:实现了基于开源浏览器引擎WebKit的浏览器引擎。
(11)QtXml:包括处理XML文件的类,该模块提供了SAX和DOM API的接口。
(12)QtXmlPatterns:模块包含的类实现了对XML和自定义数据模型的XQuery和XPath的支持。
(13)phonon模块:包含的类实现了跨平台的多媒体框架,可以在PyQt应用程序中使用音频和视频内容。
(14)QtMultimedia模块:提供了低级的多媒体功能,开发人员通常使用phonon模块。
(15)QtAssistant模块:包含的类允许集成Qt Assistant到PyQt应用程序中,提供在线帮助。
(16)QtDesigner模块:包含的类允许使用PyQt扩展Qt Designer。
(17)Qt模块:综合了上面描述的模块中的类到一个单一的模块中。这样做的好处是你不用担心哪个模块包含哪个特定的类,坏处是加载进了整个Qt框架,从而增加了应用程序的内存占用。
(18)uic模块:包含的类用来处理.ui文件,该文件由Qt Designer创建,用于描述整个或者部分用户界面。它包含的加载.ui文件和直接渲染以及从.ui文件生成Python代码为以后执行的类。


2. QWidget组件

解析:QWidget窗口组件是PyQt4中所有用户界面对象的基类。


3. QMainWindow组件 

解析:QMainWindow类提供应用程序主窗口,可以创建一个经典的拥有状态栏、工具栏和菜单栏的应用程序骨架。


4. self.connect(self.exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))

解析:连接行为的triggered()信号到预定义的close()槽。


5. QGridLayout组件

解析:最常用的布局类是网格布局(QGridLayout),网格布局把空间划分成行和列。


6. 信号与槽

解析:

(1)一个信号可以与另一个信号相连

connect(Object1, SIGNAL(signal1), Object2, SIGNAL(signal1))表示Object1的信号1发射触发Object2的信号1发射。

(2)一个信号可以与多个槽相连

connect(Object1,SIGNAL(signal2),Object2,SLOT(slot2));connect(Object1,SIGNAL(signal2),Object3,SLOT(slot1))

(3)同一个槽可以响应多个信号

connect(Object1,SIGNAL(signal2),Object2,SLOT(slot2));connect(Object3,SIGNAL(signal2),Object2,SLOT(slot2))

说明:当我们调用程序exec_()方法,程序进入主循环。主循环捕获事件并把它们发往对象。信号和槽用于对象之间的通讯。当一个特殊的事件发生时,将发射信号,槽可以是任何Python调用,当链接到槽的信号发射,该槽将被调用。


7. 对话框

解析:

(1)QInputDialog提供一个简单的对话框,以便从用户获取单个值。输入值可以是一个字符串,一个数字或者列表的一项。 

(2)QColorDialog颜色对话框为定制颜色提供一个对话框组件。

(3)QFontDialog是一个用来选择字体的对话框组件。

(4)QFileDialog允许用户选择文件或文件夹,可选择文件来打开和保存。


8. 窗口组件

解析:

(1)QCheckBox(复选框)是一个由两种状态(On和Off)的窗口组件。它是一个带标签的框,每段一个复选框被选中和或者清除时,都将发射信号stateChanged()。

(2)QSlider滑块是由一个简单的滑柄的窗口组件。该滑柄可以前后拖动,通过这种方式可以为特定任务选择值。有时候使用滑块比简单提供数值或使用微调框(spin box)更自然。QLabel显示文字或图像。

(3)QProgressBar进度条使用来处理长时间任务的窗口组件,当看到它的动画时,用户就知道任务正在进行中。在PyQt4工具包中,QProgressBar 窗口组件提供水平或者垂直的进度条,任务被分成一些阶段。程序员可以为进度条设置最小值和最大值,默认是0,99。

(4)QCalendarWidget提供基于月份的日历窗口组件,它允许用户简单并且直观的选择日期。

(5)QPixmap是处理图像的窗口组件之一,非常适合在屏幕上显示图像。

(6)QLineEdit窗口组件用来输入或者编辑单行纯文本,有撤销/重做,剪切/粘贴和拖放功能。

(7)QSplitter使得用户可以通过拖动子窗口组件的边界来控制子窗口组件的尺寸。

(8)QComboBox窗口组件允许用户从列表清单中选择。


9. 将Python源码打包为可执行文件 

(1)cx_Freeze

(2)PyInstaller

解析:

pip install pyinstaller

pyinstaller -w -F XXX.py

说明:-w屏蔽命令行窗口;-F将应用程序打包成一个独立的可执行文件。

(3)py2exe


10. QWidget、QMainWindow、QDialog和QFrame区别

解析:在Qt中所有的类都有一个共同的基类QObject,QWidget直接继承QPaintDevice类,QDialog、QMainWindow、QFrame直接继承QWidget类。

(1) QWidget类是所有用户界面对象的基类。

(2)QMainWindow 类提供一个菜单条、锚接窗口(比如工具栏)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件以及周围菜单、工具条和一个状态条。

(3)QDialog类是对话框窗口的基类。

(4)QFrame类是有框架的窗口部件的基类。

说明:如果是顶级对话框,那就是基于QDialog创建,如果是主窗体,就基于QMainWindow,如果不确定,或有可能作为顶级窗体,或有可能嵌入到其它窗体中,则基于QWidget创建。


11. Qt Designer设计对话框

解析:Qt Designer设计对话框步骤,如下所示:
(1)创建窗体并在窗体中放置各种控件。
(2)对窗体进行布局设计。
(3)设置各控件的标签顺序。
(4)创建信号和槽。
(5)连接信号和槽。 

说明:使用pyuic4脚本来将.ui文件转换成.py文件,比如pyuic4 -x project.ui -o project.py。


12. 布局管理器

解析:常用到的布局类有QHBoxLayout,QVBoxLayout,QGridLayout,QFormLayout4种。布局中最常用的方法有addWidget()和addLayout(),addWidget()方法用于在布局中插入控件,addLayout()用于在布局中插入子布局。

(1)水平布局管理器(QHBoxLayout)可以把添加的控件以水平的顺序依次排开; 

(2)垂直布局管理器(QVBoxLayout)可以把添加的控件以垂直的顺序依次排开; 

(3)网格布局管理器(QGridLayout)可以以网格的形式,把添加的控件以一定矩阵排列; 

(4)窗体布局管理器(QFormLayout)可以以两列的形式排列所添加的控件。


13. setColumnStretch

解析:网格布局默认是均分每列,为了更好的控制布局,QGridLayout为每列提供了最小宽度(setColumnMinimumWidth())、伸缩因子(setColumnStretch()),为每行提供了最小高度(setRowMinimumHeight())、伸缩因子(setRowStretch())。


14. QLineEdit,QTextEdit,QPlainTextEdit

解析:

(1)QLineEdit:单行文本。

(2)QTextEdit:多行文本。

(3)QPlainTextEdit。


15. QDockWidget类

解析:QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。


16. QWidget.setFixedSize

解析:

(1)QWidget.setFixedSize (self, int w, int h)

(2)QWidget.setFixedSize (self, QSize)  


17. QAction组件 

解析:QAction可以包含图标、菜单文本、快捷键、状态条文本、这是什么文本和工具提示,它们可以分别通过

setIconSet()、setText()、setMenuText()、setToolTip()、setStatusTip()、setWhatsThis()和setAccel()来设置。


18. PyQt4组件

解析:QListWidget,QAction,QSettings,QDockWidget,QCheckBox,QTableWidget,QInputDialog,

QPushButton,ButtonBox,QMessageBox,QFont,QPixmap,QIcon,QTextBrowser,QLineEdit,QTextEdit,QDial,QSpinbox,QComboBox,QDoubleSpinBox,QGroupBox等。


参考文献:

[1] PyQt4教程:http://www.qaulau.com/books/PyQt4_Tutorial/

这篇关于PyQt4学习日记1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/434485

相关文章

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识