Python Tkinter GUI程式設計入門介紹

2022-10-04 23:36:33 字數 2738 閱讀 9214

一、tkinter介紹

tkinter是乙個python模組,是乙個呼叫tcl/tk的介面,它是乙個跨平台的指令碼圖形介面介面。tkinter不是唯一的python圖形程式設計介面,但是是其中比較流行的乙個。最大的特點是跨平台,缺點是效能不太好,執行速度慢。

一般使用tkinter的方法是:

from tkinter import *

或者: import t程式設計客棧kinter 兩者的區別我們前面講模組的時候已經說過了。

二、tkinter的使用

先看一下gui程式的開發,熟悉mfc的朋友應該不會陌生。在gui程式中,我們會有乙個頂層視窗,在這個頂層視窗上可以包括所有的小視窗物件,像標籤,按鈕,列表框等等,也就是說頂層視窗時我們放置其他視窗或者控制項的地方。我們用下面的語句可以建立乙個頂層視窗,或者叫根視窗:

複製** **如下:

import tkinter

top = tkinter.tk()

(如果前面是用的from tkinter import * ,那麼tk()就夠了)

然後我們就可以在這個根視窗上設定「元件」了。通常這些元件會有一些相應的行為,比如滑鼠點選,按下等等,這些稱為事件,而程式會根據這些時間採取相應的反應,稱為**。這個過程成為事件驅動。

所有的建立和放置完畢後,就立刻進入主迴圈,**如下:

複製** **如下:

tkinter.mainloop( )

tk的元件有很多,不可能一一介紹,通過乙個小例子看看其中乙個標籤的使用吧。

複製** **如下:

>>> import tkinter

>>> top = tkinter.tk()

>>> label = tkinter.label(top,text='hello world')

>>> label.pack()

>>> tkinter.mainloop()

執行結果就是

下面解釋一下:

第一行,是匯入模組。

第二行,建立主視窗。

第三行,建立label標籤,它是有tkinter的乙個方法label來實現的,關於label的幫助可以help一下。

第四行,pack()是用來管理和顯示元件的,它的引數我們以後再說。

第五行,mainloop()進入主迴圈。剩下的事就系統的了。

&n下面看看元件的配置。tk中的每乙個元件都有很多option,通過改變這些option可以改變元件的外觀,比如顯示的內容,顏色,大小,位置,事件處理函式等。

比如: w=label(root,text='hello',fg='red')

建立乙個w,第乙個引數時他的master widget,是root,所有jokuwxgb引數都有預設的。我們可以用預設的來建立,w.cget(option)得到乙個option的值。同樣可以用w.config(option='')來設定某個引數的值。

三、tkinter的幾何管理器

熟悉gui程式設計的人知道,放好每個元件的是很繁瑣的,不僅要調整自身大小,還要

整和其他元件的相對位置。tk提供了三個管理器來幫助我們:pack  grid  place

1、pack

pack使用很簡單,就是w.pack(option)。常用的option有:

side 表示把元件放到哪一邊,top(上),bottom(下),left,right

padx和pady  表示parcel的每乙個邊和元件的預留空間。

ipadx和ipady,表示元件的每乙個邊和他包含的內容之間的預留空間。

anchor表示在parcel放置元件的方式,預設時center。

2、grid

使用方法和pack類似。

3、place

精確的擺放乙個元件的位置,一般不太用。

關於這個三個的詳細使用和演算法可以參考相關資料。

下面看最後乙個例子:

先看一下結果。

通過拖動進度條而改變文字大小

看一下**:

複製** **如下:

from tkinter import *  #引入模組

#resize函式是用來改變文字大小的,當進度條改變時呼叫

def resize(ev=none):

label.config(font='helvetijokuwxgbca -%d bold' % scale.get())

#config函式就是通過設定元件的引數來改變元件的,這裡改變的是font字型大小

top=tk()   #主視窗

top.geometry('600x400')  #設定了主視窗的初始大小600x400

label=label(top,text='hello world!',font='helvetica -12 bold')  #設定標籤字型的初始大小

label.pack(fill=y,expand=1)

#scale建立進度條,設定

scale=scale(top,from_=10,to=40,orient=horizontal,command=resize)

scale.set(12)&程式設計客棧nbsp; #設定起始位置

scale.pack(fill=x,expand=1)

quit = button(top,text='quit',command=top.quit,activeforeground='white',

activebackground='red')

quit.pack()

mainloop()

本文標題: python tkinter gui程式設計入門介紹

本文位址:

SpringDataRedis簡單入門介紹

在實際開發中,開發的每乙個專案,每天都有大量的人訪問,對資料庫造成很大的訪問壓力,甚至是癱瘓。那如何解決呢?我們通常的做法有兩種 一種是資料快取 一種是網頁靜態化。我們今天討論第一種解決方案。springdataredis是spring大家族中的乙個成員,提供了在srping應用中通過簡單的配置訪問...

木蘭程式語言入門教程之一 淺介

本教程不求全面,各個方面點到即止。各位可多嘗試,歡迎反饋 提交pr。本章參考python官方入門文件3.an informal introduction to python。所有示例在執行 ulang.0.2.2.exe 開啟的互動環境下測試通過 win7 64位 示例中,開頭帶 提示的為 行,不帶...

Socket程式設計基礎 Socket API介紹

1.建立套接字 socket socket socket af,int type int protocol 出錯碼 socket error af address family 指示位址族.windows僅支援af inet tcp ip位址 type 型別描述.sock stream 流socke...