python中gui編程的模塊之一:tkinter(python3.x中是tkinter,小寫的t)


一、tkinter是python的標准gui庫,tkinter是內置在python的安裝包之中的,所以安裝好python之后就可以import導入tkinter模塊了

二、創建一個GUI程序

  • 1、導入 Tkinter 模塊  from tkinter import *
  • 2、創建窗口  top=Tk()——實例化主窗口,,如果要實例化子窗口,用toplevel()
  • 3、創建控件(詳看三)  canvas=Canvas(top,width=300,height=300,bg='white'  label=Label(top,bg='red',text='文字',fg='black')
  • 4、將控件放到窗口里面去(指定這個控件的 master, 即這個控件屬於哪一個)   canvas.pack()   lable.pack()
  • 5、進入消息循環(告訴 GM(geometry manager) 有一個控件產生了。)     mainloop()

 

三、Tkinter 控件

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 PanedWindow是一個窗口布局管理的插件,可以包含一個或者多個子控件。
LabelFrame labelframe 是一個簡單的容器控件。常用與復雜的窗口布局。
tkMessageBox 用於顯示你應用程序的消息框。

 

標准屬性

標准屬性也就是所有控件的共同屬性,如大小,字體和顏色等等。

屬性 描述
Dimension 控件大小;
Color 控件顏色;
Font 控件字體;
Anchor 錨點;
Relief 控件樣式;
Bitmap 位圖;
Cursor 光標;

幾何管理

Tkinter控件有特定的幾何狀態管理方法,管理整個控件區域組織,一下是Tkinter公開的幾何管理類:包、網格、位置

幾何方法 描述
pack() 包裝;
grid() 網格;
place()

位置;

 

四、canvas畫布控件的常用方法

canvas.create_rectangle(40,40,100,100,dash=(4,4))   #前4個參數表示:矩形左上角坐標(40,40),右下角坐標(100,100),dash為4表示虛線長度為4?
canvas.create_oval(40,40,100,100) #前4個參數表示:圓形外圍的矩形左上角坐標(40,40),右下角坐標(100,100)
canvas.create_oval(40,40,100,70) #畫橢圓,也是圓的一種
canvas.create_line(40,40,40,100,width=4,fill='red')
  • create_arc:繪制弧。
  • create_bitmap:繪制位圖。
  • create_image:繪制圖片。
  • create_line():繪制直線。
  • create_polygon:繪制多邊形。
  • create_text:繪制文字。
  • create_window:繪制組件。

 

四、舉例:

1、畫一個簡單的窗口

import Tkinter

top = Tkinter.Tk()  #導入模塊直接是from tkinter import *時,創建控件就直接Tk()即可

top.mainloop()  # 進入消息循環 

顯示結果:

 

 

2、給上面的窗口中插入2個列表

from tkinter import *   #導入庫
top=Tk() #創建對象
l1= ['C','python','php','html','SQL','java'] #新建2個列表
l2= ['CSS','jQuery','Bootstrap']
list1=Listbox(top) #創建2個列表控件
list2=Listbox(top)
for i in l1:
list1.insert(0,i)
for j in l2:
list2.insert(0,j)
list1.pack() #將小部件放到主窗口
list2.pack()
top.mainloop() #進入消息循環

顯示結果:

 

 3、畫矩形、圓、橢圓、直線

from tkinter import *
top=Tk()
canvas=Canvas(top,width=300,height=300,bg='green') #創建了一個畫布控件
canvas.pack(expand=YES,fill=BOTH) #創建控件后必須要加這句pack(),表示把畫布放到窗口里面去,否則打印出來只有一個白色的窗口
canvas.create_rectangle(40,40,100,100,dash=(4,4)) #前4個參數表示:矩形左上角坐標(40,40),右下角坐標(100,100),dash為4表示虛線長度為4?
canvas.create_oval(40,40,100,100) #前4個參數表示:圓形外圍的矩形左上角坐標(40,40),右下角坐標(100,100)
canvas.create_oval(40,40,100,70) #畫橢圓,也是圓的一種
canvas.create_line(40,40,40,100,width=4,fill='red') #畫直線,直線寬度是1
mainloop()

顯示結果:

改為白色背景,紅色的填充

 

 

4、Label標簽控件

from tkinter import *
top=Tk()
label=Label(top,bg='red',text='文字',fg='black') #bg是標簽的背景色,text是指標簽上的字,fg是文字的顏色
label.pack(padx=10,pady=50,side=LEFT)
mainloop()

顯示結果:

 

 

5、實例化多窗口:實例化主窗口用tkinter.Tk(),,,實例化其他子窗口用tkinter.Topleval()

from tkinter import *
top=Tk() #實例化一個主窗口
toplevel1=Toplevel() #實例化2個子窗口
toplevel2=Toplevel()
label=Label(toplevel2,bg='red',text='文字',fg='black') #bg是標簽的背景色,text是指標簽上的文字,fg是文字的顏色
label.pack(padx=10,pady=50,side=LEFT)
mainloop()

顯示結果:

 

 

6、指定窗口的名字、大小和定位、背景色


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM