Python標準庫中的Tkinter模組

2021-08-18 02:55:19 字數 3651 閱讀 6529



python自帶支援tk的tkinter,無需安裝任何包,就可以直接使用。tkinter封裝了訪問tk的介面,tk是乙個圖形庫,支援多個作業系統,使用tcl語言開發。tk會呼叫作業系統提供的本地gui介面,完成最終的gui。

先看例子:

一、控制項

tkinter的提供各種控制項,如按鈕,標籤和文字框,乙個gui應用程式中使用。這些控制項通常被稱為控制項或者部件。

目前有15種tkinter的部件

控制項                  描述

button              按鈕控制項;在程式中顯示按鈕。

canvas              畫布控制項;顯示圖形元素如線條或文字

checkbutton    多選框控制項;用於在程式中提供多項選擇框

entry                輸入控制項;用於顯示簡單的文字內容

frame                框架控制項;在螢幕上顯示乙個矩形區域,多用來作為容器

label                標籤控制項;可以顯示文字和點陣圖

listbox            列表框控制項;在listbox視窗小部件是用來顯示乙個字串列表給使用者

menubutton      選單按鈕控制項,由於顯示選單項。

menu                  選單控制項;顯示選單欄,下拉列表和彈出選單

message            訊息控制項;用來顯示多行文字,與label比較類似

radiobutton    單選按鈕控制項;顯示乙個單選的按鈕狀態

scale                範圍控制項;顯示乙個數值刻度,為輸出限定範圍的數字區間

scrollbar        滾動條控制項,當內容超過視覺化區域時使用,如列表框。.

text                  文字控制項;用於顯示多行文字

toplevel          容器控制項;用來提供乙個單獨的對話方塊,和frame比較類似

spinbox            輸入控制項;與entry類似,但是可以指定輸入範圍值

panedwindow    是乙個視窗布局管理的外掛程式,可以包含乙個或者多個子控制項。

labelframe      是乙個簡單的容器控制項。常用與複雜的視窗布局。

tkmessagebox  用於顯示你應用程式的訊息框。

二、布局

1、pack()

pack()有以下幾個常用屬性:side、padx、pady、ipadx、ipady、fill、expand

1.1、side

side屬性有四個可選值:'top'、'bottom'、'left'、'right',分別表示將控制項位置設在視窗頂部中心、底部中心、左邊中心、右邊中心。side預設值為'top'。

1.2、padx、pady、ipadx、ipady

這四個屬性分別設定控制項水平方向外邊距、豎直方向外邊距、水平方向內邊距、豎直方向內邊距。

1.3、fill

fill屬性有四個可選值:'none'、'x'、'y'、'both'。分別表示不填充、將控制項沿水平方向填充、將控制項沿豎直方向填充、將控制項沿水平和豎直方法填充。

當side屬性被設為'top'、'bottom'時,fill只能沿水平方向填充;當side屬性被設為'left'、'right'時,fill只能沿豎直方向填充。

1.4、expand

expand屬性有兩個可選值:0、1(或者'yes'、'no')。expand預設值為0。

當expand屬性為0時,前面所說的side、fill一切正常;當expand屬性為1時,side屬性無效,此時控制項會在視窗中心位置,且fill既可沿水平方向填充,也可沿豎直方向填充。

2、grid()

grid()有以下幾個常用屬性:row、column、padx、pady、ipadx、ipady、rowspan、columnspan、sticky

2.1、row、column

grid()將視窗看做一張**,將控制項放在其中的單元格中,而row、column則用來設定控制項所在單元格的座標。

例如:#file:tkintertest2.py

import  tkinter  as  tk

window  =  tk.tk()

window.title('tkinter測試')

window.geometry('400x400')

btn1  =  tk.button(window,text='按鈕一',width=5,bg='green')

btn1.grid(row=0,column=0,rowspan=1,columnspan=2,sticky='w'+'n'+'s'+'e')

btn2  =  tk.button(window,text='按鈕二',width=5,height=5,bg='red')

btn2.grid(row=0,column=2)

btn3  =  tk.button(window,text='按鈕三',width=3,height=3,bg='blue')

btn3.grid(row=1,column=1)

btn4  =  tk.button(window,text='按鈕四',width=15,height=10,bg='yellow')

btn4.grid(row=1,column=2)

window.mainloop()

單元格的寬度、高度是由同一列中最寬、同一行中最高的控制項的寬高決定的。

2.2、padx、pady、ipadx、ipady

這四個屬性分別設定控制項水平方向外邊距、豎直方向外邊距、水平方向內邊距、豎直方向內邊距。

2.3、rowspan、columnspan

有時候,乙個控制項可能會占用不止乙個單元格,這時就要用到rowspan、columnspan,他們的作用與合併單元格類似。

rowspan=3表示該控制項會在豎直方向占用3行單元格;column=3則報表時該控制項會在水平方向占用3列單元格。

2.4、sticky

sticky屬性用於設定控制項的對齊方式,其可選值有'n'、's'、'e'、'w'以及這四個值的各種組合。

當stick屬性的值為這四個方向中的乙個時,控制項會向相應方向對齊;當stick屬性的值為其中兩個時,控制項會向相應的乙個角對齊;當stick屬性的值為其中三個、四個時,控制項會先向前兩個設定的方向對齊,然後向後兩個方向進行填充。

3、place()

place()有以下幾個常用屬性:x、y、relx、rely、anchor

3.1、x、y

x、y屬性用來設定控制項的絕對座標。

3.2、relx、rely

relx、rely屬性用來設定控制項的相對座標,範圍為0-1。

可以同時使用相對座標和絕對座標,此時先根據相對座標確定控制項位置,然後根據絕對座標使控制項進行偏移,最後確定控制項的最終位置。

3.3、anchor

anchor屬性有9個可選值,分別表示9個方向,用來設定控制項的錨點。

nw,    n,    ne

w,center,e

sw,    s,    se

例如,anchor='nw',x=100,y=100表示控制項的左上角將在座標(100,100)處,而anchor='n',x=100,y=100表示控制項的頂邊中點將在座標(100,100)處。

4、frame()

frame()本身是tkinter中的一類控制項,用來幫助我們進行布局。

Python中的OS標準庫學習

一 基本介紹 os庫提供通用的,基本的作業系統互動功能 路徑操作 os.path子庫,處理檔案路徑及資訊 程序管理 啟動系統中其他程式 環境引數 獲得系統軟硬體資訊等環境引數 二 常用命令 os.path子庫 指令用途 os.path.normpath path 歸一化path的表示形式,統一用 分...

python標準庫 時間庫

眾所皆知,每乙個程式語言都有自己的時間類庫,python也不例外用法十分簡單 最基本的類,time類 time基本函式介紹 import time print time.asctime 如果未傳入乙個tuple或乙個time struct就是使用當前的時間,返回乙個24字長的時間字串 就這個mon ...

python標準庫 os庫

os模組主要用於跟作業系統打交道 os模組常用的方法 os.getcwd 獲取當前工作目錄,即當前python指令碼工作的目錄路徑 os.chdir dirname 改變當前指令碼工作目錄 相當於shell下cd os.curdir 返回當前目錄 os.pardir 獲取當前目錄的父目錄字串名 os...