91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中GUI編程的示例分析

發布時間:2021-09-09 15:55:06 來源:億速云 閱讀:114 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關python中GUI編程的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

簡單的說,GUI編程就是給程序加上圖形化界面.

python的腳本開發簡單,有時候只需幾行代碼就能實現豐富的功能,而且python本身是跨平臺的,所以深受程序員的喜愛.

如果給程序加一個圖形化界面,那么普通的用戶也就能用上python的腳本,極大提升工作效率,所以給python程序加上圖形化界面,把自己寫的腳本,提供給普通用戶,的確是一件激動人心的事!

如何給python腳本加圖形化界面?

作者首先考慮了通過瀏覽器運行python的圖形化界面,為了理想的效果,python需要借助javascript實現一些功能,而且python需要額外安裝pyv8模塊,我折騰了一下,發現pyv8模塊安裝很麻煩,而且依賴的庫很多,編譯安裝也根據不同的操作系統,存在各種坑,pyv8不適合普通用戶,于是就暫時擱置了pyv8模塊.

python中GUI編程的示例分析

軟件界面

隨后我又比較了pyqt5與tkinter兩個模塊: pyqt5功能很強,界面也漂亮,但語法比較復雜,pyqt5模塊需要單獨安裝,不適合新手入門;

tkinter是python3自帶的模塊,能滿足基本的功能需求,語法也簡單,基本上5分鐘就能上手,所以最終選擇了tkinter.

網上當前的python GUI教程存在的問題:

1.功能太簡單,基本功能就是"花式"顯示"Hello World";

2.注釋不明了,復制粘貼別人寫的博客代碼,代碼殘缺

3.版本老舊,都是針對python2.7的程序,導入方式如 import Tkinter ,python3應為 import tkinter

這次作者選擇了一個 "根據ip地址定位地理位置"的腳本,作為本次教程的素材,比較好玩,也比較容易實現:

解釋的內容都放到了注釋里,上代碼:

import tkinter
import pygeoip

class FindLocation(object):
 def __init__(self):
 self.gi = pygeoip.GeoIP("./GeoLiteCity.dat")
 # 創建主窗口,用于容納其它組件
 self.root = tkinter.Tk()
 # 給主窗口設置標題內容
 self.root.title("全球定位ip位置(離線版)")
 # 創建一個輸入框,并設置尺寸
 self.ip_input = tkinter.Entry(self.root,width=30)

 # 創建一個回顯列表
 self.display_info = tkinter.Listbox(self.root, width=50)

 # 創建一個查詢結果的按鈕
 self.result_button = tkinter.Button(self.root, command = self.find_position, text = "查詢")

 # 完成布局
 def gui_arrang(self):
 self.ip_input.pack()
 self.display_info.pack()
 self.result_button.pack()

 # 根據ip查找地理位置
 def find_position(self):
 # 獲取輸入信息
 self.ip_addr = self.ip_input.get()
 aim = self.gi.record_by_name(self.ip_addr)
 # 為了避免非法值,導致程序崩潰,有興趣可以用正則寫一下具體的規則,我為了便于新手理解,減少代碼量,就直接粗放的過濾了
 try:

  # 獲取目標城市
  city = aim["city"]
  # 獲取目標國家
  country = aim["country_name"]
  # 獲取目標地區
  region_code = aim["region_code"]
  # 獲取目標經度
  longitude = aim["longitude"]
  # 獲取目標緯度
  latitude = aim["latitude"]
 except:
  pass
 
 # 創建臨時列表
 the_ip_info = ["所在緯度:"+str(latitude),"所在經度:"+str(longitude),"地域代號:"+str(region_code),"所在城市:"+str(city), "所在國家或地區:"+str(country), "需要查詢的ip:"+str(self.ip_addr)]
 #清空回顯列表可見部分,類似clear命令
 for item in range(10):
  self.display_info.insert(0,"")

 # 為回顯列表賦值
 for item in the_ip_info:
  self.display_info.insert(0,item)
 # 這里的返回值,沒啥用,就是為了好看
 return the_ip_info


def main():
 # 初始化對象
 FL = FindLocation()
 # 進行布局
 FL.gui_arrang()
 # 主程序執行
 tkinter.mainloop()
 pass


if __name__ == "__main__":
 main()

運行效果(為了更好的演示效果,使用了gif圖,圖片尺寸較大,建議在wifi環境下觀看,土豪隨意~):

python中GUI編程的示例分析

一張很有尺寸的演示圖!

由于離線查詢ip需要全球IP的分布數據,所以我直接選擇了一個免費離線查詢ip的數據包,為了讀取這個包的數據還需要安裝一個模塊: pip install pygeoip ,極少數人的當年安裝python3的時候,選了不含tkinter的python3安裝包,為了學習,還是要把這個模塊補上: pip install tkinter

感謝各位的閱讀!關于“python中GUI編程的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉首市| 集贤县| 巩留县| 正阳县| 临邑县| 常德市| 龙南县| 交口县| 和静县| 广水市| 吉安县| 房山区| 东平县| 玛纳斯县| 宁都县| 巴中市| 曲沃县| 西昌市| 洪湖市| 沙雅县| 东乌珠穆沁旗| 绥滨县| 车险| 嘉荫县| 广河县| 彭阳县| 冕宁县| 额敏县| 恩施市| 德惠市| 唐山市| 海兴县| 富蕴县| 南漳县| 鹿泉市| 夹江县| 兰西县| 马龙县| 乌兰浩特市| 贵定县| 大同县|