python编写人机交互界面_Python编写个天气查询应用(可视化界面)
生活随笔
收集整理的這篇文章主要介紹了
python编写人机交互界面_Python编写个天气查询应用(可视化界面)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊上方“藍色字體”,選擇“星標”公眾號重磅干貨,第一時間送達今天暫停Python每日一題,給大家推薦個Python項目!Python面試1-49題匯總,都是常問的面試題!項目效果預覽:一、獲取天氣信息使用python獲取天氣有兩種方式。1)是通過爬蟲的方式獲取天氣預報網站的HTML頁面,然后使用xpath或者bs4解析HTML界面的內容。2)另一種方式是根據天氣預報網站提供的API,直接獲取結構化數據,省去了解析HTML頁面的步驟。本例使用的是第二種方式,請求地址為:http://wthrcdn.etouch.cn/weather_mini?citykey=城市代碼部分城市代碼對應:
????????},"city":?"北京","forecast":?[
????????????{"date":?"2日星期六","high":?"高溫?14℃","fengli":?"","low":?"低溫?8℃","fengxiang":?"北風","type":?"小雨"
????????????},
????????],"ganmao":?"晝夜溫差較大,較易發生感冒,請適當增減衣服。體質較弱的朋友請注意防護。","wendu":?"12"
????},"status":?1000,"desc":?"OK"
}獲取天氣的主要代碼如下:#?cityCode?替換為具體某一個城市的對應編號# 1、發送請求,獲取數據url?=?f'http://wthrcdn.etouch.cn/weather_mini?citykey={cityCode}'
res?=?requests.get(url)
res.encoding?=?'utf-8'res_json?=?res.json()#?2、數據格式化
data?=?res_json['data']
city?=?f"城市:{data['city']}\n"??#?字符串格式化的一種方式?f"{}"?通過字典傳遞值
today?=?data['forecast'][0]
date?=?f"日期:{today['date']}\n"??#?\n?換行
now?=?f"實時溫度:{data['wendu']}度\n"
temperature?=?f"溫度:{today['high']}?{today['low']}\n"
fengxiang?=?f"風向:{today['fengxiang']}\n"
type?=?f"天氣:{today['type']}\n"
tips?=?f"貼士:{data['ganmao']}\n"
result?=?city?+?date?+?now?+?temperature?+?fengxiang?+?type?+?tips
print(result)二、界面的實現1、使用Qt Designer繪制窗口,保存為ui文件2、把ui文件轉為py文件1)在生成的ui文件目錄下,打開cmd2)輸入以下命令(注意替換名稱)pyuic5?-o?destination.py?source.ui3、信號與槽函數的連接#?1、清空按鈕與對應函數連接
clearBtn.clicked.connect(widget.clearResult)#?2、查詢按鈕與對應函數連接
queryBtn.clicked.connect(widget.queryWeather)4、調用主窗口類import?sys?????from?PyQt5.QtWidgets?import?QApplication?,?QMainWindowfrom?WeatherWin?import?Ui_widgetimport?requestsimport?jsonclass?MainWindow(QMainWindow?):def?__init__(self,?parent=None):????
????????super(MainWindow,?self).__init__(parent)
????????self.ui?=?Ui_widget()
????????self.ui.setupUi(self)#?通過文本框傳入想要搜索的城市名稱:天津
????????cityName?=?self.ui.weatherComboBox.currentText()#?獲取天氣部分省略#?在文本框顯示查詢結果
????????self.ui.resultText.setText(result)def?clearResult(self):
????????print('*?clearResult??')
????????self.ui.resultText.clear()??if?__name__=="__main__":??
????app?=?QApplication(sys.argv)??
????win?=?MainWindow()??
????win.show()??
????sys.exit(app.exec_())?以上,提供了獲取天氣(GUI)程序的主要過程及部分源碼。
北京?101010100
天津 101030100
上海 101020100
瀏覽器返回的天津氣溫情況如下,該信息其實就是一個JSON字符串,格式化之后的樣子如下所示:{"data":?{"yesterday":?{"date":?"1日星期五","high":?"高溫?17℃","fx":?"東北風","low":?"低溫?8℃","fl":?"","type":?"多云"????????},"city":?"北京","forecast":?[
????????????{"date":?"2日星期六","high":?"高溫?14℃","fengli":?"","low":?"低溫?8℃","fengxiang":?"北風","type":?"小雨"
????????????},
????????],"ganmao":?"晝夜溫差較大,較易發生感冒,請適當增減衣服。體質較弱的朋友請注意防護。","wendu":?"12"
????},"status":?1000,"desc":?"OK"
}獲取天氣的主要代碼如下:#?cityCode?替換為具體某一個城市的對應編號# 1、發送請求,獲取數據url?=?f'http://wthrcdn.etouch.cn/weather_mini?citykey={cityCode}'
res?=?requests.get(url)
res.encoding?=?'utf-8'res_json?=?res.json()#?2、數據格式化
data?=?res_json['data']
city?=?f"城市:{data['city']}\n"??#?字符串格式化的一種方式?f"{}"?通過字典傳遞值
today?=?data['forecast'][0]
date?=?f"日期:{today['date']}\n"??#?\n?換行
now?=?f"實時溫度:{data['wendu']}度\n"
temperature?=?f"溫度:{today['high']}?{today['low']}\n"
fengxiang?=?f"風向:{today['fengxiang']}\n"
type?=?f"天氣:{today['type']}\n"
tips?=?f"貼士:{data['ganmao']}\n"
result?=?city?+?date?+?now?+?temperature?+?fengxiang?+?type?+?tips
print(result)二、界面的實現1、使用Qt Designer繪制窗口,保存為ui文件2、把ui文件轉為py文件1)在生成的ui文件目錄下,打開cmd2)輸入以下命令(注意替換名稱)pyuic5?-o?destination.py?source.ui3、信號與槽函數的連接#?1、清空按鈕與對應函數連接
clearBtn.clicked.connect(widget.clearResult)#?2、查詢按鈕與對應函數連接
queryBtn.clicked.connect(widget.queryWeather)4、調用主窗口類import?sys?????from?PyQt5.QtWidgets?import?QApplication?,?QMainWindowfrom?WeatherWin?import?Ui_widgetimport?requestsimport?jsonclass?MainWindow(QMainWindow?):def?__init__(self,?parent=None):????
????????super(MainWindow,?self).__init__(parent)
????????self.ui?=?Ui_widget()
????????self.ui.setupUi(self)#?通過文本框傳入想要搜索的城市名稱:天津
????????cityName?=?self.ui.weatherComboBox.currentText()#?獲取天氣部分省略#?在文本框顯示查詢結果
????????self.ui.resultText.setText(result)def?clearResult(self):
????????print('*?clearResult??')
????????self.ui.resultText.clear()??if?__name__=="__main__":??
????app?=?QApplication(sys.argv)??
????win?=?MainWindow()??
????win.show()??
????sys.exit(app.exec_())?以上,提供了獲取天氣(GUI)程序的主要過程及部分源碼。
1、獲取天氣信息
2、繪制可視化界面
3、把ui文件轉成py文件
4、信號與槽
5、調用主窗口類
總結
以上是生活随笔為你收集整理的python编写人机交互界面_Python编写个天气查询应用(可视化界面)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两数相加c++_LeetCode 热题
- 下一篇: U(优)盘安装FreeBSD-9.0+G