最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

為Python程序添加圖形化界面的教程

 更新時間:2015年04月29日 10:26:51   作者:廖雪峰  
這篇文章主要介紹了為Python程序添加圖形化界面的教程,圖形化界面編程是開發(fā)Python本地應(yīng)用的必備,需要的朋友可以參考下

Python支持多種圖形界面的第三方庫,包括:

  •     Tk
  •     wxWidgets
  •     Qt
  •     GTK

等等。

但是Python自帶的庫是支持Tk的Tkinter,使用Tkinter,無需安裝任何包,就可以直接使用。本章簡單介紹如何使用Tkinter進(jìn)行GUI編程。
Tkinter

我們來梳理一下概念:

  • 我們編寫的Python代碼會調(diào)用內(nèi)置的Tkinter,Tkinter封裝了訪問Tk的接口;
  • Tk是一個圖形庫,支持多個操作系統(tǒng),使用Tcl語言開發(fā);
  • Tk會調(diào)用操作系統(tǒng)提供的本地GUI接口,完成最終的GUI。

所以,我們的代碼只需要調(diào)用Tkinter提供的接口就可以了。
第一個GUI程序

使用Tkinter十分簡單,我們來編寫一個GUI版本的“Hello, world!”。

第一步是導(dǎo)入Tkinter包的所有內(nèi)容:

from Tkinter import *

第二步是從Frame派生一個Application類,這是所有Widget的父容器:

class Application(Frame):
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.pack()
    self.createWidgets()

  def createWidgets(self):
    self.helloLabel = Label(self, text='Hello, world!')
    self.helloLabel.pack()
    self.quitButton = Button(self, text='Quit', command=self.quit)
    self.quitButton.pack()

在GUI中,每個Button、Label、輸入框等,都是一個Widget。Frame則是可以容納其他Widget的Widget,所有的Widget組合起來就是一棵樹。

pack()方法把Widget加入到父容器中,并實(shí)現(xiàn)布局。pack()是最簡單的布局,grid()可以實(shí)現(xiàn)更復(fù)雜的布局。

在createWidgets()方法中,我們創(chuàng)建一個Label和一個Button,當(dāng)Button被點(diǎn)擊時,觸發(fā)self.quit()使程序退出。

第三步,實(shí)例化Application,并啟動消息循環(huán):

app = Application()
# 設(shè)置窗口標(biāo)題:
app.master.title('Hello World')
# 主消息循環(huán):
app.mainloop()

GUI程序的主線程負(fù)責(zé)監(jiān)聽來自操作系統(tǒng)的消息,并依次處理每一條消息。因此,如果消息處理非常耗時,就需要在新線程中處理。

運(yùn)行這個GUI程序,可以看到下面的窗口:

2015429101736554.png (189×93)

點(diǎn)擊“Quit”按鈕或者窗口的“x”結(jié)束程序。
輸入文本

我們再對這個GUI程序改進(jìn)一下,加入一個文本框,讓用戶可以輸入文本,然后點(diǎn)按鈕后,彈出消息對話框。

from Tkinter import *
import tkMessageBox

class Application(Frame):
  def __init__(self, master=None):
    Frame.__init__(self, master)
    self.pack()
    self.createWidgets()

  def createWidgets(self):
    self.nameInput = Entry(self)
    self.nameInput.pack()
    self.alertButton = Button(self, text='Hello', command=self.hello)
    self.alertButton.pack()

  def hello(self):
    name = self.nameInput.get() or 'world'
    tkMessageBox.showinfo('Message', 'Hello, %s' % name)

當(dāng)用戶點(diǎn)擊按鈕時,觸發(fā)hello(),通過self.nameInput.get()獲得用戶輸入的文本后,使用tkMessageBox.showinfo()可以彈出消息對話框。

程序運(yùn)行結(jié)果如下:

2015429101834912.png (467×236)

小結(jié)

Python內(nèi)置的Tkinter可以滿足基本的GUI程序的要求,如果是非常復(fù)雜的GUI程序,建議用操作系統(tǒng)原生支持的語言和庫來編寫。

源碼參考:https://github.com/michaelliao/learn-python/tree/master/gui

相關(guān)文章

  • 使用Python編輯PDF文檔的操作指南

    使用Python編輯PDF文檔的操作指南

    在日常工作中,編輯PDF文件是一個常見且必不可少的需求,常見的任務(wù)包括修改文檔中的文本、插入圖片、更新元數(shù)據(jù),甚至對頁面進(jìn)行調(diào)整等,在這篇文章中,我們將詳細(xì)介紹如何使用Python來編輯PDF文檔,需要的朋友可以參考下
    2025-10-10
  • python使用配置文件過程詳解

    python使用配置文件過程詳解

    這篇文章主要介紹了python使用配置文件過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python實(shí)現(xiàn)生成日報的示例代碼

    Python實(shí)現(xiàn)生成日報的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)生成日報的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • Python數(shù)據(jù)可視化plt.savefig如何將圖片存入固定路徑

    Python數(shù)據(jù)可視化plt.savefig如何將圖片存入固定路徑

    這篇文章主要介紹了Python數(shù)據(jù)可視化plt.savefig如何將圖片存入固定路徑問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python編程利用科赫曲線實(shí)現(xiàn)三維飄雪效果示例過程

    Python編程利用科赫曲線實(shí)現(xiàn)三維飄雪效果示例過程

    這篇文章主要介紹了Python編程實(shí)現(xiàn)三維飄雪效果示例過程,通過本示例你可以自己做出一個浪漫的雪花飄落效果,有需要的朋友可以借鑒參考下
    2021-10-10
  • python獲取系統(tǒng)內(nèi)存占用信息的實(shí)例方法

    python獲取系統(tǒng)內(nèi)存占用信息的實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于python獲取系統(tǒng)內(nèi)存占用信息的實(shí)例方法,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-07-07
  • python腳本第一行如何寫

    python腳本第一行如何寫

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python腳本第一行如何寫相關(guān)文章,有需要的朋友們可以參考下。
    2020-08-08
  • Python能做什么

    Python能做什么

    在本篇文章里小編給大家整理的是關(guān)于Python作用領(lǐng)域等相關(guān)知識點(diǎn),需要的朋友們可以參考下。
    2020-06-06
  • 總結(jié)Python連接CS2000的詳細(xì)步驟

    總結(jié)Python連接CS2000的詳細(xì)步驟

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著Python連接CS2000的詳細(xì)步驟展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • python 添加用戶設(shè)置密碼并發(fā)郵件給root用戶

    python 添加用戶設(shè)置密碼并發(fā)郵件給root用戶

    這篇文章主要介紹了python 添加用戶設(shè)置密碼并發(fā)郵件給root用戶的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-07-07

最新評論

周口市| 六安市| 密云县| 灵璧县| 大连市| 盐城市| 芜湖市| 新昌县| 辽源市| 新闻| 浮山县| 青田县| 肥乡县| 三河市| 抚松县| 朔州市| 伊通| 紫阳县| 广州市| 农安县| 白玉县| 安达市| 噶尔县| 华蓥市| 永济市| 榕江县| 龙海市| 措勤县| 寿阳县| 正宁县| 自治县| 汶上县| 宣汉县| 河西区| 公主岭市| 余江县| 满城县| 荣成市| 莒南县| 海丰县| 东台市|