pyqt5教程

PyQt5教程(五)——对话框

倖福魔咒の 提交于 2019-12-06 01:03:46
原文: http://zetcode.com/gui/pyqt5/dialogs/ 对话框或对话窗口是现代GUI程序不可或缺的一部分。对话的定义是两个或多个人之间的交谈。在计算机程序中对话是与程序进行“交谈”的窗体。对话框用于输入数据、修改数据、更改程序设置等。 QInputDialog QInputDialog 提供了从用户取得一个输入的简便对话框。输入的值可以是字符串、数字或列表中的一项。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we receive data from a QInputDialog dialog. author: Jan Bodnar website: zetcode.com last edited: January 2015 """ import sys from PyQt5.QtWidgets import (QWidget, QPushButton, QLineEdit, QInputDialog, QApplication) class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self

PyQt5教程(三)——布局管理

不想你离开。 提交于 2019-12-05 04:33:02
原文: http://zetcode.com/gui/pyqt5/layout/ 布局管理是GUI编程中的重要部分。布局管理是如何将控件放置于窗体上的技术,它的实现有两种基本方式:绝对布局与layout类。 ##绝对布局 程序员要指定每个控件的像素位置与大小。在使用绝对布局时要知道它的局限: 控件的尺寸与位置不会随着窗体尺寸的调整而变化 程序在不同平台上可能会有不同的外观 改变程序的字体可能会破坏布局 如果想改变布局,只能重做,这很无聊而且很费时 下面的示例中以绝对坐标来放置控件。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial This example shows three labels on a window using absolute positioning. author: Jan Bodnar website: zetcode.com last edited: January 2015 """ import sys from PyQt5.QtWidgets import QWidget, QLabel, QApplication class Example(QWidget): def __init__(self): super().__init__() self.initUI(

PyQt5教程(一)——第一个PyQt5程序

﹥>﹥吖頭↗ 提交于 2019-12-05 04:32:51
原文: http://zetcode.com/gui/pyqt5/firstprograms/ 在这部分教程中我们将学习PyQt5的一些基本功能 一个简单的例子 这是一个只显示一个小窗口的简单示例。但我们可以对这个窗口进行一些操作,如调整尺寸,最大化或最小化。这需要编写很多代码,但有人已经完成了这个功能。因为它在多种程序中的通用性,所以不再需要重复编码。PyQt5是一个高级工具集。如果我们使用较低级的工具集进行编码,要实现这个功能最少也要上百行代码。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we create a simple window in PyQt5. author: Jan Bodnar website: zetcode.com last edited: January 2015 """ import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == '__main__': app = QApplication(sys.argv) w = QWidget() w.resize(250, 150) w.move(300, 300) w

PyQt5教程(七)——控件(II)

ⅰ亾dé卋堺 提交于 2019-12-05 04:32:36
原文: http://zetcode.com/gui/pyqt5/widgets2/ 下面我们继续介绍PyQt5控件。我们将学习QPixmap, QLineEdit, QSplitter与QComboBox。 QPixmap QPixmap 是一种用于处理图像的控件。它为图片的显示做过优化。在下面的示例中,我们将使用QPixmap展示图片。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we dispay an image on the window. author: Jan Bodnar website: zetcode.com last edited: January 2015 """ import sys from PyQt5.QtWidgets import (QWidget, QHBoxLayout, QLabel, QApplication) from PyQt5.QtGui import QPixmap class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): hbox = QHBoxLayout(self)

PyQt5教程(六)——控件

痞子三分冷 提交于 2019-12-05 04:32:21
原文: http://zetcode.com/gui/pyqt5/widgets/ 控件是应用程序的基础构件。PyQt5具有类目广泛的各种控件,包括按钮、复选框、滑动条、列表框等。在本节教程中,我们将学习几个很有用的控件:QCheckBox、ToggleButton、QSlider、QProgressBar和QCalendarWidget。 QCheckBox(复选框) QCheckBox(复选框)是有打开和关闭两种状态的控件。它是一个带有勾选框的Label(标签)。复选框常用于表示程序中可以启用或禁用的功能。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, a QCheckBox widget is used to toggle the title of a window. author: Jan Bodnar website: zetcode.com last edited: January 2015 """ import sys from PyQt5.QtWidgets import QWidget, QCheckBox, QApplication from PyQt5.QtCore import Qt class Example(QWidget):

PyQt5教程(四)——事件与信号

不羁岁月 提交于 2019-12-04 04:02:05
原文: http://zetcode.com/gui/pyqt5/eventssignals/ 在这部分教程中我们将探讨在程序内部发生的事件与信号。 事件 所有的GUI程序都是事件驱动的。事件主要由用户触发,但也可能有其他触发方式:例如网络连接、window manager或定时器。当我们调用QApplication的 exec_() 方法时会使程序进入主循环。主循环会获取并分发事件。 在事件模型中有三个参与者: 事件源 事件(对象) 事件接收者 事件源是状态发生变化的对象。它会生成事件。事件(对象)封装了事件源中状态的变动。事件接收者是要通知的对象。事件源对象将事件处理的工作交给事件接收者。 PyQt5有一个独特的signal&slot(信号槽)机制来处理事件。信号槽用于对象间的通信。signal在某一特定事件发生时被触发,slot可以是任何callable对象。当signal触发时会调用与之相连的slot。 Signals & slots 这是一个演示PyQt5信号槽的简单示例。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we connect a signal of a QSlider to a slot of a QLCDNumber.

PyQt5教程(十)——自定义控件

不羁岁月 提交于 2019-12-04 04:01:53
原文: http://zetcode.com/gui/pyqt5/customwidgets/ PyQt5包含种类丰富的控件。但能满足所有需求的控件库是不存在的。通常控件库只提供了像按钮、文本控件、滑块等最常用的控件。但如果需要某种特殊的控件,我们只能自己动手来实现。 自定义控件需要使用工具库提供的绘图工具,可能有两种方式:在已有的控件上进行拓展或从头开始创建自定义控件。 Burning widget(烧录控件) 这个控件可能会在Nero,K3B或其他CD/DVD烧录软件中见到。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we create a custom widget. author: Jan Bodnar website: zetcode.com last edited: January 2015 """ import sys from PyQt5.QtWidgets import (QWidget, QSlider, QApplication, QHBoxLayout, QVBoxLayout) from PyQt5.QtCore import QObject, Qt, pyqtSignal from PyQt5.QtGui import

PyQt5教程(九)——绘图

徘徊边缘 提交于 2019-12-03 01:04:28
原文: http://zetcode.com/gui/pyqt5/painting/ PyQt5的绘图系统可用于渲染矢量图、图像和文本。如果想改变或增强已有的控件,或者想从头创建一个自定义控件时,我们就需要在程序中进行图形的绘制。我们可以使用PyQt5提供的绘图API进行绘图操作。 绘图要在 paintEvent() 方法中实现。在 QPainter 对象的 begin() 与 end() 方法间编写绘图代码。它会在控件或其他图形设备上进行低级的图形绘制。 绘制文本 我们先以窗体内Unicode文本的绘制为例。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial In this example, we draw text in Russian azbuka. author: Jan Bodnar website: zetcode.com last edited: September 2015 """ import sys from PyQt5.QtWidgets import QWidget, QApplication from PyQt5.QtGui import QPainter, QColor, QFont from PyQt5.QtCore import Qt class Example

PyQt5教程(二)——菜单与工具栏

旧时模样 提交于 2019-11-29 06:00:13
原文: http://zetcode.com/gui/pyqt5/menustoolbars/ 我们将在这部分教程中创建菜单与工具栏。一个菜单就是位于菜单栏中的一组命令。应用的工具栏放置了带有按钮的常用命令。 主窗体 QMainWindow 类提供了一个主程序窗体。通过它可以创建带有状态栏、工具栏与菜单栏的传统应用程序。 状态栏 状态栏是用于显示状态信息的控件。 #!/usr/bin/python3 # -*- coding: utf-8 -*- """ ZetCode PyQt5 tutorial This program creates a statusbar. author: Jan Bodnar website: zetcode.com last edited: January 2015 """ import sys from PyQt5.QtWidgets import QMainWindow, QApplication class Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.statusBar().showMessage('Ready') self.setGeometry(300, 300, 250, 150) self