1. 程式人生 > >tkinter學習系列(二)之窗口的設置

tkinter學習系列(二)之窗口的設置

code 註意 figure con loop 基本 icon 方法 mos

目錄

  • (一)窗體的最小框架
    • 1.說明:
    • 2.源代碼:
    • 3.實現效果:
  • (二)窗體的基本設置
    • 1.說明:
    • 2.完整代碼:
    • 3.實現效果:
  • (三)窗體的外形設置
    • 1.說明:
    • 2.完整代碼:
    • 3.實現效果:
  • (四)窗體的三個方法:
    • 1.獲取屏幕的大小
    • 2.獲取窗體的大小
    • 3.獲取窗體的位置

目錄:

1.窗體的最小框架

2.窗體的基本設置

3.窗體的外形設置

(一)窗體的最小框架

1.說明:

需要導入標準庫:
import tkinter

2.源代碼:

# 導入模塊,並取別名
import tkinter as tk
# 實例化一個窗體對象
win = tk.Tk()
# 設置窗體的大小(300x300),與出現的位置距離窗體左上角(+150+150)
win.geometry("300x300+150+150")
# 進入消息循環,顯示窗體
win.mainloop()

3.實現效果:

技術分享圖片

(二)窗體的基本設置

1.說明:

(1)添加標題:

# 設置標題
win.title("標題")

(2)添加圖標:

圖標:必須是以 .ico 為後綴的圖標文件,放於同目錄下。

# 設置圖標,以QQ頭為例
win.iconbitmap("app.ico")

(3)添加背景:

顏色:可以用英文名,也可以用RGU,十六進制表示的顏色。

# 設置背景色,以“藍色”為例
win["background"] = "blue"

2.完整代碼:

# 導入模塊,並去別名
import tkinter as tk
# 實例化一個窗體對象
win = tk.Tk()
# 設置窗體的大小(300x300),與出現的位置距離窗體左上角(+150+150)
win.geometry("300x300+150+150")
# 設置標題
win.title("標題")
# 設置圖標,以QQ頭為例
win.iconbitmap("app.ico")
# 設置背景色,以“藍色”為例
win["background"] = "blue"
# 進入消息循環,顯示窗體
win.mainloop()

3.實現效果:

技術分享圖片

(三)窗體的外形設置

1.說明:

(1)設置透明度:

透明度的值是:0~1 可以是小數點,0:全透明;1:全不透明
python win.attributes("-alpha", 0.6)

(2)設置工具欄樣式:

工具樣式:True 只有退出按鈕,也沒有圖標; False 正常的窗體樣式

win.attributes("-toolwindow", True)

透明度與工具欄的效果圖:

技術分享圖片

(3)設置全屏:

全屏模式:True 全屏;False 正常顯示

win.attributes("-fullscreen", True)

(4)設置窗體置頂

窗體置頂:True 所有窗口中處於最頂層;False 正常顯示

win.attributes("-topmost", True)

(5)設置成脫離工具欄

脫離工具欄:True 沒有工具欄按鈕;False 正常顯示

win.overrideredirect(True)

脫離工具欄的效果圖:

技術分享圖片

2.完整代碼:

# 導入模塊,並去別名
import tkinter as tk
# 實例化一個窗體對象
win = tk.Tk()
# 設置窗體的大小(300x300),與出現的位置距離窗體左上角(+150+150)
win.geometry("300x300+150+150")
# 設置標題
win.title("標題")
# 設置圖標,以QQ頭為例
win.iconbitmap("app.ico")
# 設置背景色,以“藍色”為例
win["background"] = "blue"
# 設置透明度
win.attributes("-alpha", 0.6)
# 設置窗口為工具樣式:
win.attributes("-toolwindow", True)
# # 設置全屏:
win.attributes("-fullscreen", False)
# 設置窗體置頂
win.attributes("-topmost", True)
# 設置成脫離工具欄
win.overrideredirect(False)
# 進入消息循環,顯示窗體
win.mainloop()

3.實現效果:

技術分享圖片

(四)窗體的三個方法:

1.獲取屏幕的大小

(1)語法說明:

# 獲取屏幕的大小;
screen_height = root.winfo_screenheight()
screen_width = root.winfo_screenwidth()

(2)源代碼:

import tkinter as tk
root = tk.Tk()
# 獲取屏幕的大小;
screen_height = root.winfo_screenheight()
screen_width = root.winfo_screenwidth()
print("你電腦的屏幕的高度是:", screen_height)
print("你電腦的屏幕的寬度度是:", screen_width)
root.mainloop()

(3)輸出結果:

技術分享圖片

2.獲取窗體的大小

(1)語法說明:

# 獲取屏幕的大小;
win_height = root.winfo_height()
win_width = root.winfo_width()

需要註意的是:要用root.update()方法,才能看到更新後的數值

(2)源代碼:

import tkinter as tk
root = tk.Tk()
root.geometry("600x500")
# 更新窗體
root.update()
# 獲取屏幕的大小;
win_height = root.winfo_height()
win_width = root.winfo_width()
print("控件的高度是:", win_height)
print("控件的寬度度是:", win_width)
root.mainloop()

(3)輸出結果:

技術分享圖片

3.獲取窗體的位置

(1)語法說明:

# 獲取窗體的位置
win_x = win.winfo_x()
win_y = win.winfo_y()

(2)源代碼:

import tkinter as tk
win = tk.Tk()
win.geometry("600x500")


def change(event):
    win.update()
    # 獲取窗體的位置
    win_x = win.winfo_x()
    win_y = win.winfo_y()
    print(win_x)
    print(win_y)


# 綁定事件,窗體的改變事件
win.bind("<Configure>", change)
win.mainloop()

(3)輸出結果:

當我用鼠標拖動窗體時,更新了一系列的位置數值

技術分享圖片

tkinter學習系列(二)之窗口的設置