PyQt4入门指南:从安装到创建第一个应用

2星 需积分: 13 13 下载量 21 浏览量 更新于2024-09-16 收藏 130KB PDF 举报
"Getting_Started_With_PyQt4.pdf 是一份关于PyQt4的入门教程,由David Boddie撰写,旨在帮助初学者了解和使用PyQt4开发图形用户界面应用。PyQt4是Python语言对Qt库的绑定,提供了丰富的功能,包括但不限于:图形界面控件、数据库管理与查询、XML处理、图形与多媒体支持、网络和Web浏览器集成。该教程涵盖了安装PyQt、编写第一个 PyQt程序、理解关键概念如事件循环,以及如何使用各种小部件和布局等。" PyQt4是Python编程语言的一个重要扩展,它使得Python开发者能够利用Qt库的强大功能来创建高质量的图形用户界面(GUI)应用程序。Qt库是一个跨平台的应用框架,支持多种操作系统,如Windows、Linux和macOS。PyQt4的出现,使得Python程序员无需学习C++,就能利用Qt的功能。 安装PyQt4首先需要安装Qt库,两者通常可以通过包管理器或者官方网站下载安装。安装后,需要验证安装是否成功,可以编写一个简单的“Hello, World!”程序来测试环境是否配置正确。这通常涉及导入PyQt4模块,创建一个窗口,并显示一些文本。 在PyQt4中,"Hello World"程序的核心是`QApplication`和`QWidget`类。`QApplication`代表整个应用程序,而`QWidget`是所有用户界面元素的基础类。一个基本的"Hello World"示例会创建一个`QApplication`实例,然后创建一个`QLabel`(显示文本的控件)并将其显示在窗口上。 PyQt4的核心概念之一是事件循环(Event Loop)。事件循环负责处理来自操作系统或用户的输入事件,如鼠标点击、键盘输入等。当程序运行时,事件循环将持续运行,直到应用程序关闭。开发者通过槽(Slots)和信号(Signals)机制来响应这些事件,这是Qt和PyQt中的重要特性。 在创建GUI时,小部件(Widgets)是构建用户界面的基本构建块,如按钮、文本框、标签等。而布局(Layouts)则用来管理这些小部件的位置和大小,确保在不同屏幕尺寸下都能有良好的显示效果。PyQt4提供了多种布局管理器,如`QVBoxLayout`、`QHBoxLayout`和`QGridLayout`,它们可以自动调整小部件的排列方式。 此外,PyQt4还支持父/子关系的概念,每个小部件都可以有零个或多个子小部件,以及一个父小部件。这种结构使得可以方便地组织和管理用户界面层次。 除了基本的GUI功能,PyQt4还包括对数据库操作的支持,如SQLite、MySQL等,以及XML处理、网络编程和多媒体功能。例如,你可以使用`QNetworkAccessManager`来实现HTTP请求,或者使用`QImage`和`QPainter`来处理图像。 "Getting_Started_With_PyQt4.pdf"这份教程是学习PyQt4的宝贵资源,无论你是Python新手还是希望将Python与GUI相结合的开发者,都能从中获益匪浅。通过学习和实践,你可以掌握创建高效、美观且跨平台的Python GUI应用的技能。

import sys import threading import time from PyQt5.QtWidgets import * from PyQt5 import uic import pandas as pd import random # import pyqtgraph as pg import matplotlib.pyplot as plt from PyQt5.QtWidgets import QGroupBox from PyQt5 import QtWidgets from login_4 import Ui_CK from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas # df = pd.read_excel('shu.xlsx') class MyWindow(QWidget and QMainWindow,Ui_CK): def __init__(self): super().__init__() self.init_ui() groupbox = QGroupBox('Title',self) # self.plot = pg.PlotWidget(enableAutoRange=True) # self.ui.verticalLayout.addWidget(self.plot) # self.curve = self.plot.plot() #self.ui = uic.loadUi("./login_4.ui") def init_ui(self): print('1.1') try: self.ui = uic.loadUi("./login_4.ui") #print(threading.current_thread()) #print(self.ui.__dict__) # print(self.ui.label) # print(self.ui.label.text()) # 查看ui文件中有哪些控件 # 提取要操作的控件 self.user_name_qwidget = self.ui.lineEdit # 单位输入框 self.password_qwidget = self.ui.lineEdit_2 # 二级单位输入框 self.zhicheng_qwidget = self.ui.lineEdit_3 # 职称输入框 self.jiaoyuan_qwidget = self.ui.lineEdit_4 # 教员输入框 self.login_btn = self.ui.pushButton # 登录抽课按钮 self.textBrowser = self.ui.textBrowser # 授课对象显示区域 # 绑定信号与槽函数 self.textBrowser_2 = self.ui.textBrowser_2 # 文本显示区域课程名称 self.textBrowser_3 = self.ui.textBrowser_3 # 文本显示区域课次 self.textBrowser_4 = self.ui.textBrowser_4 # 文本显示区域教研室 self.login_btn.clicked.connect(self.login) self.login_btna = self.ui.pushButton_2 self.login_btna.clicked.connect(lambda: self.plot_q()) except Exception as e: print(e.__class__.__name__, e) def login(self): print('1.2') """登录按钮的槽函数""" #print(self.user_name_qwidget.text()) a = self.user_name_qwidget.text() e = sel 为什么会报错

204 浏览量