免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

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

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加入到父容器中,并實現(xiàn)布局。pack()是最簡單的布局,grid()可以實現(xiàn)更復(fù)雜的布局。

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

第三步,實例化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程序,可以看到下面的窗口:

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

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

from Tkinter import *import tkMessageBoxclass 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)用戶點擊按鈕時,觸發(fā)hello(),通過self.nameInput.get()獲得用戶輸入的文本后,使用tkMessageBox.showinfo()可以彈出消息對話框。

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

小結(jié)

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

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

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
用Python創(chuàng)建你第一個GIS程序[3]:前后端搭建
基于Pyqt5打造量化系統(tǒng)GUI
Python腳本如何生成Windows可執(zhí)行文件.exe | 書影博客
python調(diào)用wps(在wps中使用python腳本)
python桌面開發(fā),為什么選擇PyQt或wxPython,而不使用Tkinter?
GUI編程:打開文件對話框、保存文件對話框、顏色選擇對話框的使用
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服