1. 程式人生 > >python GUI程式設計(Tkinter)簡單使用

python GUI程式設計(Tkinter)簡單使用

在介面中很重要的是佈局,一開始在查詢的的時候網上有很多都是下面這樣:

# -*- coding: utf-8 -*-
from Tkinter import *
 
root = Tk()
# 設定位置窗體長x寬+x座標+y座標
root.geometry('80x80+10+10')
 
# 填充方向
'''
Label(root, text = 'l1', bg = 'red').pack(fill = Y)
Label(root, text = 'l2', bg = 'green').pack(fill = BOTH)
Label(root, text = 'l3', bg = 'blue').pack(fill = X)
 
 
# 左右佈局
Label(root, text = 'l1', bg = 'red').pack(fill = Y, side = LEFT)
Label(root, text = 'l2', bg = 'green').pack(fill = BOTH, side = RIGHT)
Label(root, text = 'l3', bg = 'blue').pack(fill = X, side = LEFT)
 
# 絕對佈局
l4 = Label(root, text = 'l4')
l4.place(x = 3, y = 3, anchor = NW)
'''
 
# Grid 網格佈局
l1 = Label(root, text = 'l1', bg = 'red')
l2 = Label(root, text = 'l2', bg = 'blue')
l3 = Label(root, text = 'l3', bg = 'green')
l4 = Label(root, text = 'l4', bg = 'yellow')
l5 = Label(root, text = 'l5', bg = 'purple')
 
l1.grid(row = 0, column = 0)
l2.grid(row = 1, column = 0)
l3.grid(row = 1, column = 1)
l4.grid(row = 2 )
l5.grid(row = 0, column = 3)
 
root.mainloop()

其中重要的是 pack 、 place 、grid 這三個關鍵字。左右佈局比填充方向多了side對齊屬性。絕對佈局place(x軸座標,y軸座標)。

在寫介面的時候,也避免不了使用Entry(輸入框)

Eexe = Entry(top, text="選擇exe檔案", width=40)
Eexe.place(x=135, y=88)

和一些Entry常用功能,比如清空輸入框中的內容
myEn.delete(0, END)

其實就是刪除索引0到最後

還有就是輸入框的插入

 myEn.insert(0, text)

其中的0是插入的索引,text是要插入的內容

獲得輸入框的內容

myEn.get()

在介面中通常會使用提示視窗
import tkMessageBox
tkMessageBox.showinfo("提示", "提示的內容")

要先引入在使用

經常使用的還有按鈕

Btn1 = Button(top, text="瀏覽", width=15, command=lambda: myfile(Eexe))
Btn1.place(x=450, y=85)
其中最重要的是command屬性,其中
command=lambda: myfile(Eexe)

按鈕點選時呼叫myfile這個方法,並傳入一個名叫Eexe的引數,其實就是上面的我們介紹的輸入框,這裡把他當引數傳入。

如果我們的點選事件不需要傳入引數,屬性可以寫成這樣

command=myfile
直接等於方法名

在介面中也經常使用文字label

    varLabel = StringVar()
    # justify = 'left'
    labelMessage = Label(top, bg='White', textvariable=varLabel, relief=RAISED, width=45, height=12, wraplength=300,
                         anchor='n')
    labelMessage.place(x=110, y=210)

如果想在文字中新增內容可以使用變數
varLabel.set("想輸入的內容")

同樣label的內容可以取出來的
varLabel.get().encode('utf-8')

返回的是文字的內容,encode('utf-8')是文字的編碼,可以在必要的時候新增

使用的python的時候我們經常還要知道當前的作業系統

currentSystem = platform.system()
if currentSystem == 'Windows':

是不是windows還是Linux