Python 是一门功能强大的编程语言,不仅可以用于后端开发、数据处理以及机器学习等领域,还可以用于桌面应用程序开发。本文将介绍如何使用 Python 开发桌面小程序。
## 选用 GUI 库
GUI 是 Graphical User Interface 的缩写,指的是人机交互的图形用户界面。在 Python 中,有多种 GUI 库可供选择,如:
- PyQt5:基于 Qt 图形库的 Python3 绑定版,可用于开发跨平台应用程序。
- PyGTK:基于 GTK 的 Python2 绑定版。
- wxPython :基于 wxWidgets 的 Python 绑定版等。
在这里我们以 PyQt5 为例。因为 PyQt5 具有易用性、可扩展性以及优美的外观。
## 安装 PyQt5
在 Python 3.x 中,PyQt5 是一个第三方包,需要通过 pip 来安装。Windows 系统可以通过以下方式在命令行中安装 PyQt5。
```
pip install pyqt5
```
在 macOS 或者 Linux 系统中,可以通过以下命令进行安装。
```
pip3 install pyqt5
```
## 创建窗口
在 PyQt5 中,可以通过继承 QWidget 类来创建窗口。代码如下:
```python
from PyQt5.QtWidgets import QApplication, QWidget
app = QApplication([])
window = QWidget()
window.show()
app.exec_()
```
运行上述代码,会弹出一个空白的窗口。其中,`app = QApplication([])`创建了一个应用程序,`window = QWidget()`创建了一个窗口,`window.show()`将窗口显示出来,`app.exec_()`让程序进入事件循环,等待用户的输入事件。
## 设置窗口大小和标题
窗口大小和标题是窗口最基本的属性,可以通过以下代码来设置:
```python
window.setGeometry(200, 200, 300, 300) # 设置窗口的大小和位置
window.setWindowTitle("My PyQt5 program") # 设置窗口标题
```
`setGeometry()` 方法中,前两个参数指定了窗口的位置,后两个参数指定了窗口的宽度和高度。`setWindowTitle()` 方法设置窗口的标题。
## 添加按钮
可以通过 QPushButton 类来创建按钮,代码如下:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
app = QApplication([])
window = QWidget()
button = QPushButton('Click me', window)
button.resize(button.sizeHint())
button.move(100, 100)
window.setWindowTitle("My PyQt5 program")
window.setGeometry(200, 200, 300, 300)
window.show()
app.exec_()
```
运行上述代码,会在窗口中创建一个按钮,按钮上写有 “Click me”文本。`resize()` 方法将按钮的大小设为推荐大小(sizeHint()),`move()` 方法定义了按钮的位置。
## 添加事件处理
每个按钮都有自己的信号和槽(slot),当用户点击按钮时,程序需要对该事件进行响应。可以通过以下方式来添加事件处理:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtCore import pyqtSlot
app = QApplication([])
window = QWidget()
button = QPushButton('Click me', window)
button.resize(button.sizeHint())
button.move(100, 100)
@pyqtSlot()
def on_button_click():
print('Button clicked.')
button.clicked.connect(on_button_click)
window.setWindowTitle("My PyQt5 program")
window.setGeometry(200, 200, 300, 300)
window.show()
app.exec_()
```
使用 `@pyqtSlot()` 装饰器来指定槽方法,当按钮被点击时,槽函数会输出 “Button clicked.”。
## 总结
通过以上代码示例,我们可以看出,使用 PyQt5 开发桌面小程序,代码量相比于其他编程语言来说更少, Python 提供了简单易懂的 API 来实现图形用户界面的程序开发。此外,PyQt5 还支持多平台,可以在 Windows、macOS 以及 Linux 上运行,是一个十分强大的桌面应用开发库。