Python GUI 编程实战:如何用 PyQt 开发跨平台应用? 在现代技术领域中,GUI(图形用户界面)应用程序的需求越来越高。如果你正在寻找一个跨平台的 GUI 开发框架,PyQt 是一个不错的选择。PyQt 使用 Qt 作为其底层图形库,Qt 是一个跨平台的 C++ 库,可以轻松地构建漂亮的 GUI 应用程序。本文将介绍如何使用 PyQt 开发跨平台应用。 1. 安装 PyQt 首先,你需要安装 PyQt,你可以使用 pip 命令进行安装: ``` pip install pyqt5 ``` 如果你使用的是 Python 2,需要安装 PyQt4,安装方法如下: ``` pip install pyqt4 ``` 2. 创建 PyQt 应用程序 下面是一个简单的 PyQt 应用程序。 ``` 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.setWindowTitle('PyQt Application') w.show() sys.exit(app.exec_()) ``` 在上面的代码中,我们创建了一个空白的 QWidget 窗口,并设置了它的大小和位置,并设置了窗口标题。最后,我们通过 w.show() 方法将窗口显示出来。sys.exit(app.exec_()) 用于确保当窗口关闭时,应用程序退出。 3. 使用布局管理器 PyQt 提供了各种布局管理器,以帮助你在窗口中放置控件。 在下面的示例中,我们使用 QVBoxLayout 和 QHBoxLayout 布局管理器来创建一个简单的登录窗口。 ``` import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout, QHBoxLayout if __name__ == '__main__': app = QApplication(sys.argv) w = QWidget() w.setWindowTitle('Login Window') layout = QVBoxLayout() layout.addWidget(QLabel('Username:')) layout.addWidget(QLineEdit()) layout.addWidget(QLabel('Password:')) layout.addWidget(QLineEdit()) hlayout = QHBoxLayout() hlayout.addWidget(QPushButton('Login')) hlayout.addWidget(QPushButton('Cancel')) layout.addLayout(hlayout) w.setLayout(layout) w.show() sys.exit(app.exec_()) ``` 在上面的代码中,我们创建了一个 QVBoxLayout 布局管理器,并将三个 QLabel 和两个 QLineEdit 控件添加到其中。接下来,我们创建了一个 QHBoxLayout 布局管理器,并将两个 QPushButton 控件添加到其中。最后,我们将 QHBoxLayout 添加到 QVBoxLayout 中,并将其设置为窗口的布局管理器。 4. 添加菜单和工具栏 PyQt 还提供了 QMenuBar 和 QToolBar 控件,可以在窗口中添加菜单和工具栏。 在下面的示例中,我们创建了一个菜单和一个工具栏。 ``` import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QToolBar class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setWindowTitle('Main Window') self.resize(800, 600) menu_bar = self.menuBar() file_menu = menu_bar.addMenu('File') exit_action = QAction('Exit', self) exit_action.triggered.connect(self.close) file_menu.addAction(exit_action) tool_bar = QToolBar('Main Toolbar') self.addToolBar(tool_bar) tool_bar.addAction(exit_action) if __name__ == '__main__': app = QApplication(sys.argv) main_window = MainWindow() main_window.show() sys.exit(app.exec_()) ``` 在上面的代码中,我们创建了一个 MainWindow 类,并添加了一个 File 菜单和一个 Exit 动作。我们还创建了一个工具栏,并将 Exit 动作添加到其中。 5. 结论 本文介绍了如何使用 PyQt 开发跨平台应用程序。我们学习了如何创建应用程序,如何使用布局管理器,如何添加菜单和工具栏。PyQt 是一个功能强大的 GUI 开发框架,可以帮助你轻松地构建漂亮的应用程序。