天天看點

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

##################################################

目錄

活動簡介

初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

直接上代碼 —— Python 3 第一個 Tk 桌面視窗程式

關于 Python 視窗

關于 Tk 接口

Tk 程式設計抽象了解

綁定 tkinter 标簽 文本/圖檔 和變量

文本控件 "Hello, World!" 視窗版

Tk 中的圖像控件

面向對象搭配 Tk 控件進行 GUI 程式設計

示例如何在面向對象中進行 GUI 程式設計

##################################################

活動簡介

活動位址:CSDN21天學習挑戰賽

學習的最大理由是想擺脫平庸,早一天就多一份人生的精彩;遲一天就多一天平庸的困擾;一個人摸索學習很難堅持,想組團高效學習;想寫部落格但無從下手,急需寫作幹貨注入能量;熱愛寫作,願意讓自己成為更好的人…

歡迎參與CSDN學習挑戰賽,成為更好的自己,請參考活動中各位優質專欄部落客的免費高品質專欄資源(這部分優質資源是活動限時免費開放喔~),按照自身的學習領域和學習進度學習并記錄自己的學習過程,或者按照自己的了解釋出專欄學習作品!

##################################################

初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

——————————

直接上代碼 —— Python 3 第一個 Tk 桌面視窗程式

        Python 第一個視窗程式手把手教:

Python 3 建立自己的視窗 需要先将 tkinter 導入

然後通過 Tk() 方法建立一個根視窗 同時設定視窗樣式

最後進入等待與處理視窗事件 讓視窗一直顯示

        先将 tkinter 導入:

from tkinter import *   # 導入 tk 子產品
           

        建立根視窗

        通過 Tk() 方法建立一個根視窗 同時設定視窗樣式:

window_1 = Tk() # 建立一個視窗對象

window_1.title ( "我的第一個視窗" )	# 通過該方法設定該視窗對象标題
window_1.geometry ( "520x521" )	# 視窗大小 * 是小寫的 X 字母
window_1.configure ( bg = "purple" )	# 視窗的背景顔色
window_1.maxsize ( 521, 1314 )	# 設定視窗的最大尺寸
           

        運作視窗

        進入等待與處理視窗事件 讓視窗一直顯示:

window_1.mainloop() # 根視窗循環顯示
           

        VSCode demo 視窗預設 520x521 尺寸:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

        視窗可以放大至 521, 1314 尺寸:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

        我們的第一個 Python Tk 視窗:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

——————————

關于 Python 視窗

        學習了 Python 程式設計語言之後可以做許多有趣的事情

        例如可以使用 Python 設計一個視窗

Python 視窗是一個完全互動式的 Python 解釋程式或者說界面

允許在 ArcGIS for Desktop 應用程式内執行地理處理工具和 Python 功能

在 ArcGIS 中該視窗是直接通路 Python 腳本函數的最佳位置

        建立更為複雜的獨立 Python 腳本或 Python 腳本工具時

        可以直接利用在 Python 視窗中學到的技巧

        Python 視窗之是以能成為運作和實驗 Python 指令和文法的重要工具要得益于其幾大主要特征:

所有 Python 函數均可以通過 Python 視窗顯示

    可輸入并執行包含多個處理工具或處理器方法的多行指令

    可重新調用編輯和重新執行已輸入并執行的工具或函數

    可從現有 Python 檔案中加載 Python 指令或代碼塊

    可将 Python 指令或代碼塊儲存至 Python 檔案或文本檔案中以便日後重新加載或在不同的環境中使用

    還能自動完成功能讓填寫處理工具參數的工作較使用工具對話框更友善快捷
           

——————————

關于 Tk 接口

        對于有 GUI 程式設計經驗的人來說 Python 的 Tkinter 界面庫是非常簡單的
           

        Python 的 GUI 庫非常多 選擇 Tkinter 一是最為簡單 二是自帶庫不需下載下傳安裝随時使用

        三則是從需求出發 Python 作為一種腳本語言 一種膠水語言 一般不會用她來開發複雜的桌面應用

        Python 本身并不具備這方面的優勢 是以使用 Python 可以把她作為一個靈活的工具 而不是作為主要開發語言

        那麼在工作中 需要制作一個小工具 肯定是需要有界面的 不僅自己用 也能分享别人使用

        在這種需求下 Tkinter 是足夠勝任的!

        Tkinter 是什麼:

Tkinter 是使用 Python 進行視窗視窗設計的子產品

	Tkinter 子產品/Tk 接口 是 Python 的标準 Tk GUI 工具包的接口
	作為 Python 特定的 GUI 界面 是一個圖像的視窗

	tkinter 是 Python 自帶的可以編輯的 GUI 界面
           

        我們可以用 GUI 實作很多直覺的功能

        比如想開發一個電腦

        如果隻是一個程式輸入輸出視窗的話是沒用使用者體驗的

        是以開發一個圖像化的小視窗就是必要的!

%%%%%

Tk 程式設計抽象了解

        對于 Tkinter 程式設計 可以用兩個比喻來了解

        第一個 作畫:

我們都見過學生寫生的場景

先支一個畫架        相應的 對應到 tkinter 程式設計 那麼我們的顯示器就是支起來的畫架

放上畫闆        根窗體就是畫闆 在 tkinter 中則是 Toplevel

蒙上畫布        畫布就是 tkinter 中的容器 Frame 畫闆上可以放很多張畫布 Convas 而 tkinter 中的容器中也可以放很多個容器

構思内容 用鉛筆畫草圖 組織結構和比例 調色闆調色        繪畫中的構圖布局則是 tkinter 中的布局管理器 幾何管理器

最後畫筆勾勒        繪畫的内容就是 tkinter 中的一個個小元件 一幅畫由許多元素構成 而我們的 GUI 界面就是一個個元件拼裝起來的 她們就是 widget
           

        第二個 我們小時候都玩過積木 隻要發揮創意 相同的積木可以堆出各種造型

        tkinter 的元件也可以看做一個個積木

        形狀或許不同 其本質都是一樣的 就是一個積木

        不管她長什麼樣子始終就是積木!

        是以這些小元件都有許多共性

——————————

綁定 tkinter 标簽 文本/圖檔 和變量

%%%%%

文本控件 "Hello, World!" 視窗版

        VSCode code:

import tkinter as tk    # 換一種方式導入 tk 子產品
 
window_1 = tk.Tk()  # 新方式建立視窗

window_1_text = tk.Label (
    # 示例文本控件 "Hello, World!"

        window_1,    # 為 window_1_text 添加元件

        text = "Hello, World!", # text 文本内容
        bg = "white", fg = "black",  # bg 背景色 fg 前景色
        font = ( "微軟雅黑 14 bold" ),  # 字型 字型大小 字型樣式

        bd = 4, # 邊界寬度
        relief = "groove",  # 邊框樣式

        width = 52, # 像素寬
        height = 25,  # 像素高
        anchor = "center",  # 該文本控件相對與視窗位置居中
    )
window_1_text.pack() # 放置文本元件的位置預設為視窗頂部
 
window_1.mainloop() # 視窗事件循環
           

        VSCode demo:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

        可以放大至全屏:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!
py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

%%%%%

Tk 中的圖像控件

        首先在工作目錄放置一個 png 圖檔:

        注意 Python 内置支援 png 和 gif 如果需要 jpg 可能需要安裝其她子產品
py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

        然後編寫代碼 VSCode code:

import tkinter as tk    # 導入 tk 子產品

window_1 = tk.Tk()  # 建立視窗

img = tk.PhotoImage ( file = "E:/PY/118木蘭.png" )   # 圖檔變量 注意是 / 而不是 \ !!!不然路徑識别不出來
window_1_image = tk.Label ( window_1, image = img ) # 綁定圖像控件
window_1_image.pack() # 放置位置為視窗頂部

window_1.mainloop() # 視窗事件循環
           

        執行結果 VSCode demo:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

        放大之後:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

——————————

面向對象搭配 Tk 控件進行 GUI 程式設計

%%%%%

示例如何在面向對象中進行 GUI 程式設計

        還是上次的圖檔示例程式 不過面向對象程式設計中變得高大上 VScode code:

import tkinter    # 導入 tk 子產品

class Gui():
    # Gui 類

    def __init__ ( self ):
        # 魔術方法

        self.window_1 = tkinter.Tk()  # 建立執行個體視窗對象
        self.window_1.title ( "第一個圖檔" )  # 圖檔标題
        self.window_1.geometry ( "800x600" )    # 圖檔大小

        photo = tkinter.PhotoImage ( file = "E:/PY/118木蘭.png" )   # 圖檔位置變量
        window_1_image = tkinter.Label ( self.window_1, image = photo ) # 綁定圖像控件
        window_1_image.pack() # 放置位置為視窗頂部
 
        self.window_1.mainloop() # 視窗事件循環

gui = Gui()    # 執行個體化 Gui 類的 gui 對象自動調用 __init__ 函數
           

        VSCode demo:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

        放大之後:

py20_(終于第 21 天)初識 Python 3 GUI 程式設計 tk 視窗之文本圖像控件及面向對象 GUI 程式設計!初識 Python 3 GUI 程式設計之 tk 視窗及面向對象 GUI 程式設計!

        巧了 這是第 118 篇部落格 絕絕子!