Python_物件導向_tkinter庫

來源:互聯網
上載者:User

標籤:取值   除了   label   定義   唯讀   normal   float   檔案   max   

#-- tkinter 一個跨平台的GUI庫,對圖形庫TK的封裝 可在win,linux或者mac下運行

import tkinter

# linux用命令進行tkinter安裝 sudo apt-get install python3-tk(python3-tk)

root = tkinter.Tk()
root.title(‘網格布局‘)
root.minsize(300,300)
root.resizable(False,False)
# 從這寫內容 #
root.mainloop()

 

#-- tkinter 布局
  pack() 方位布局
  place() 座標布局
  grid() 網格布局

"""
  padx/pady 組件外部在x(y)方向上填充的空間大小,預設單位為像素
  ipadx/ipady 組件內部在x(y)方向上填充的空間大小,預設單位為像素
  anchor : “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(預設“center”) 控制組件方位
"""
#pack 屬性
  ipadx=10,ipady=10,padx=20,pady=100,anchor="ne"

#place 絕對屬性
  x = 20,y = 20,width = 50,height = 50

#place 相對屬性
  relx = 0.05,rely = 0.05,relwidth = 0.2,relheight = 0.2

#grid 屬性
  row = 3,column = 0,ipadx = 50,ipady = 10,padx = 10,pady = 10,columnspan = 2 rowspan = 2

=======================================================

import tkinter
# 產生一個視窗對象
root = tkinter.Tk()
# 設定視窗的標題
root.title("這是一個視窗")
# 設定視窗的大小
root.minsize(300,300) # 最小視窗大小
root.maxsize(600,600) # 最大視窗大小
# root.resizable(False,False) # 將視窗大小固定

# pack 方位布局
# ipadx 橫向填充 ipady 縱向填充
# anchor:e s w n ne nw se sw(預設center) 代表方位

"""
btn1 = tkinter.Button(text="1")
btn1.pack(ipadx=10,ipady=10,padx=10,pady=10)
btn2 = tkinter.Button(text="2")
btn2.pack(idapx=10,idapy=10,padx=10,pady=10)
"""

# side屬性:lef right top bottom
"""
btn1 = tkinter.Button(text="1")
btn1.pack(ipadx=10,ipady=10,padx=10,pady=10,side="left")
btn2 = tkinter.Button(text="2")
btn2.pack(ipadx=10,ipady=10,padx=10,pady=10,side="left")
"""

# place 座標布局
"""
(1) 絕對布局
(2) 相對布局
x,y是座標 width,height是寬度和高度
"""

# place (絕對布局)
"""
btn1 = tkinter.Button(text="1")
btn1.place(x=20,y=20,width=50,height=50)
btn3 = tkinter.Button(text="3")
btn3.place(x=160,y=20,width=50,height=50)

btn5 = tkinter.Button(text="5")
btn5.place(x=90,y=90,width=50,height=50)
btn7 = tkinter.Button(text="7")
btn7.place(x=20,y=160,width=50,height=50)

btn9 = tkinter.Button(text="9")
btn9.place(x=160,y=160,width=50,height=50)
"""

# place(相對布局)
"""
btn2 = tkinter.Button(text="2")
btn2.place(relx=0.3,rely=0.05,relwidth=0.2,relheight=0.2)

btn4 = tkinter.Button(text="4")
btn4.place(relx=0.05,rely=0.3,relwidth=0.2,relheight=0.2)
btn6 = tkinter.Button(text="6")
btn6.place(relx=0.55,rely=0.3.relwidth=0.2,relheight=0.2)

btn8 = tkinter.Button(text="8")
btn8.place(relx=0.3,rely=0.55,relwidth=0.2,relheight=0.2)
"""

# gird 網格布局
"""
btn1 = tkinter.Button(text="1")
btn1.grid(row=0,column=0,ipadx=10,ipady=10,padx=10,pady=10)
btn2 = tkinter.Button(text="1")
btn2.grid(row=0,column=1,ipadx=10,ipady=10,padx=10,pady=10)
btn3 = tkinter.Button(text="1")
btn3.grid(row=0,column=2,ipadx=10,ipady=10,padx=10,pady=10)
"""
# columnspan 列合并(左右合并)
# rowspan 行合并(上下合并)
"""
btn0 = tkinter.Button(text="0")
btn0.grid(row=3,column=0,ipadx=120,ipady=10,padx=10,pady=10,columnspan=3)
btn_echo = tkinter.Button(text="=")
btn_echo.grid(row=0,column=3,ipadx=10,ipady=120,padx=10,pady=10,rowspam=3)
"""

# frame
frame1 = tkinter.Frame(root,width=300,heght=50,bg="red")
frame1.pack(pady=5)

btn1 = tkinter.Button(frame1,text="1")
btn1.pack(side="left",ipadx=5,ipady=10)
btn2 = tkinter.Button(frame1,text="2")
btn2.pack(side="left",ipadx=5,ipady=10)
btn3 = tkinter.Button(frame1,text="3")
btn3.pack(side="left",ipadx=5,ipady=10)

# 固定顯示視窗 (涉及隊列)
root.mainloop()

"""
pack 方位布局
參數:ipadx ipady padx pady anchor side
place 座標布局
絕對布局參數:x y padx pady
相對布局參數:relx rely relwidth relheight
gird 網格布局
參數:row column ipadx ipady padx pady rowspan columnspan
"""

=======================================================

#Frame 屬性
  #--劃分頁面
    frame1 = tkinter.Frame(root,height = 50,width = 300)
    frame1.pack_propagate(0) # 按照原定義寬高分布,不會隨著其中內容的改變而改變
    frame1.pack(pady = 10)
    #在第一個frame中擺放組件
    btn = tkinter.Button(frame1,text = ‘1‘).pack(side = ‘left‘,padx = 20)

  #--各種組件
"""
公用屬性:
  text 設定文字
  bg 背景色
  fg 前景色彩
  bd 邊框
  width 寬度
  height 高度
  anchor 按鈕中的文字方位 e s w n nw ne sw se 預設center
  font 類型[,大小,粗細,斜體] 例: font= (‘黑體‘,20,‘bold‘,‘italic‘)
  command 點擊按鈕後觸發的動作(函數)  
  變數.set(參數) 設定值
  變數.get() 擷取值
"""


#--基本按鈕 button
"""
  button屬性:
  state 設定狀態 disabled 不能用 normal 正常
"""

#--選擇按鈕 Checkbutton
"""
  Checkbutton 屬性:
  variable 指定變數
  onvalue 選中值
  offvalue 沒選中值
  0值在哪代表預設狀態是什麼(選中 沒選中)
  tkinter.IntVar() tkinter.StringVar() 建立變數方式整型或字串
"""

#--選項按鈕 Radiobutton
"""
  #justify 設定內建多行文字的對其方式 left center right
"""

#--普通文字框 Entry
"""
  #密碼框 show 設定密碼數框的覆蓋符號
  #設定變數textvariable:字串 StringVar 整形IntVar 浮點型DoubleVar 布爾值BooleanVar 先設定變數在文字框
  #selectbackground 設定選中內容的背景色 selectforeground 選中內容的前景色彩
  #state 設定狀態 disabled 不能用 normal 正常 readonly 唯讀
"""

#--多行文本 Text
"""
  多行文本 除了show與普通文字框屬性一致
"""

#--標籤組件Label
"""
  標籤組件Label 除了show和選中設定 與普通文字框屬性一致
"""


#--菜單組件
  allmenu = tkinter.Menu()
#添加分割線
  edit.add_separator()
#向子功能表中添加選項卡
  edit = tkinter.Menu(tearoff = 0)
  edit.add_command(label = ‘退出‘,command = demo)
#將子功能表加入總菜單
  allmenu.add_cascade(menu = edit,label = ‘編輯‘)
#擺放總菜單
  root.config(menu = allmenu)

 

#--訊息框 messagebox
"""
  屬性:message title
"""
messagebox:
  showinfo 顯示資訊對話方塊
  showwarning 提示警告對話方塊
  showerror 顯示錯誤對話
  askquestion 問題對話方塊
  askokcancel 確定還是取消對話方塊
  askyesno 是不是對話方塊
  askretrycancel 重試或者取消對話方塊


#--簡易對話方塊simpledialog
"""
  屬性:title ,prompt,initialvalue
"""
simpledialog:
  askstring 字串對話方塊
  askinteger 整形對話方塊
  askfloat 浮點數對話方塊


#--檔案對話方塊filedialog
filedialog:
  #askopenfilename 請求檔案名稱對話方塊
  #askdirectory 請求檔案夾對話方塊
  #asksaveasfilename 儲存檔案對話方塊
"""
  title = ‘請選擇檔案儲存路徑‘,
  initialdir = ‘/‘,
  initialfile = ‘預設檔案名稱‘,
  filetypes =((‘文字檔‘,‘*.txt‘),(‘word檔案‘,‘*.doc‘),(‘任意檔案‘,‘*.*‘))
"""


#--最上層視窗 toplevel
  #withdraw 關閉視窗
  #iconify 隱藏視窗
  #deiconify 顯示視窗

 

Python_物件導向_tkinter庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.