悠悠楠杉
网站页面
正文:
在Python生态中,PyQt5是开发桌面应用的首选框架之一。它结合了Qt的强大功能和Python的简洁语法,无论是开发小型工具还是企业级应用都能胜任。本文将带你从零开始,完成一个天气预报查询应用的开发,涵盖核心知识点和实战技巧。
首先安装PyQt5库(建议使用虚拟环境):
pip install PyQt5 PyQt5-tools安装完成后,可以通过Qt Designer快速设计界面。该工具默认路径在Python的Lib\site-packages\qt5_applications\Qt\bin目录下。创建一个简单的窗口测试:
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
window = QLabel("Hello PyQt5!")
window.show()
app.exec_()使用Qt Designer拖拽组件设计主界面(保存为weather.ui),包含:
- 城市输入框(QLineEdit)
- 查询按钮(QPushButton)
- 天气信息展示区域(QLabel)
通过以下代码加载UI文件:
from PyQt5.uic import loadUi
from PyQt5.QtWidgets import QMainWindow
class WeatherApp(QMainWindow):
def __init__(self):
super().__init__()
loadUi('weather.ui', self)
self.query_btn.clicked.connect(self.get_weather) # 绑定按钮事件
def get_weather(self):
city = self.city_input.text()
# 这里添加API请求逻辑
self.result_label.setText(f"查询结果:{city}")接入天气API(示例使用和风天气):
import requests
def fetch_weather(city):
api_key = "YOUR_API_KEY"
url = f"https://devapi.qweather.com/v7/weather/now?location={city}&key={api_key}"
response = requests.get(url)
return response.json()["now"]["temp"] + "℃"在get_weather方法中调用API并更新界面:
temp = fetch_weather(city)
self.result_label.setText(f"当前温度:{temp}")PyQt5的核心机制是信号与槽。例如实现回车触发查询:
self.city_input.returnPressed.connect(self.query_btn.click)通过QSS(类似CSS)设置样式:
self.setStyleSheet("""
QLabel { font-size: 16px; }
QPushButton { background-color: #4CAF50; }
""")使用PyInstaller生成独立应用:
pip install pyinstaller
pyinstaller --windowed --onefile weather_app.pyos.path.join)。通过这个项目,你不仅学会了PyQt5的基础操作,还掌握了实际开发中的关键技巧。下一步可以尝试更复杂的功能,如多窗口切换、数据库集成等。