python中tkinter實現GUI程序:三個實例

python中tkinter實現GUI程序

  • 寫在最前面
  • Python中使用Tkinter實現GUI程序的基本元素
    • Tkinter簡介
    • 基本元素
      • 1. 根窗口(Root Window)
      • 2. 小部件(Widgets)
      • 3. 布局管理
      • 4. 事件處理
  • 1.用 tkinter實現一個簡單的 GUI程序,單擊“click”按鈕,在終端打印出“hello world”。
  • 2.設計一個窗體,模擬登錄界面,當用戶輸入正確的用戶名和密碼時提示“登錄成功”,否則提示“用戶名或密碼錯誤”。
  • 3.創建如圖11-35所示的界面,輸入作品和作者信息后,單擊“讀取信息”按鈕將輸入的信息在下方的輸入框中顯示,單擊“退出”按鈕退出程序的執行。
  • 結語

寫在最前面

Python作為一種多功能、易于學習的編程語言,不僅僅在數據科學、機器學習、網絡開發等領域大放異彩,也在圖形用戶界面(GUI)開發中扮演著重要角色。其中,Tkinter庫作為Python的標準GUI庫,以其簡單易用而廣受歡迎。


一位粉絲希望了解,如何實戰python中tkinter如何實現GUI程序。

在這里插入圖片描述

Python中使用Tkinter實現GUI程序的基本元素

本小節將介紹如何使用Tkinter創建基本的GUI程序,涵蓋了Tkinter的核心元素,并提供實用的示例和技巧,讓你迅速入門。

Tkinter簡介

Tkinter是Python的標準GUI庫,用于創建跨平臺的桌面應用程序。它是一個輕量級的庫,易于學習和使用,適合初學者和開發小型項目。Tkinter的核心優勢在于其簡潔性,你可以用很少的代碼實現功能豐富的窗體應用。

基本元素

1. 根窗口(Root Window)

每個Tkinter應用都開始于創建一個根窗口。這是你的應用的主窗口,其他所有的GUI元素都被放置在這個窗口中。

import tkinter as tkroot = tk.Tk()
root.mainloop()

2. 小部件(Widgets)

Tkinter的小部件是構建應用的基石。常用的小部件包括:

  • 按鈕(Button):執行命令的標準按鈕。
  • 標簽(Label):顯示文本或圖像。
  • 輸入框(Entry):單行文本輸入。
  • 文本框(Text):多行文本輸入。
  • 框架(Frame):組織其他小部件。

每個小部件都可以自定義其屬性,如大小、顏色、字體等。

3. 布局管理

Tkinter提供了幾種布局管理器來安排小部件:

  • pack():按順序放置小部件。
  • grid():在表格中放置小部件。
  • place():精確控制小部件的位置。

使用這些布局管理器,你可以創建整潔和吸引人的界面布局。

4. 事件處理

在GUI程序中,事件處理是核心。Tkinter允許你定義事件處理函數,響應用戶的行為,如點擊按鈕、輸入文本等。

def on_click():print("Button clicked!")button = tk.Button(root, text="Click Me", command=on_click)
button.pack()

1.用 tkinter實現一個簡單的 GUI程序,單擊“click”按鈕,在終端打印出“hello world”。

請添加圖片描述

import tkinter as tkdef hello_world():print("hello world")app = tk.Tk()
app.title("Hello World App")
button = tk.Button(app, text="Click", command=hello_world)
button.pack()
app.mainloop()

2.設計一個窗體,模擬登錄界面,當用戶輸入正確的用戶名和密碼時提示“登錄成功”,否則提示“用戶名或密碼錯誤”。

請添加圖片描述

from tkinter import messageboxdef check_login():username = entry_username.get()password = entry_password.get()if username == "your_username" and password == "your_password":  # replace with actual username and passwordmessagebox.showinfo("Login Status", "登錄成功")else:messagebox.showinfo("Login Status", "用戶名或密碼錯誤")app = tk.Tk()
app.title("Login")tk.Label(app, text="Username:").pack()
entry_username = tk.Entry(app)
entry_username.pack()tk.Label(app, text="Password:").pack()
entry_password = tk.Entry(app, show="*")
entry_password.pack()button_login = tk.Button(app, text="Login", command=check_login)
button_login.pack()app.mainloop()

3.創建如圖11-35所示的界面,輸入作品和作者信息后,單擊“讀取信息”按鈕將輸入的信息在下方的輸入框中顯示,單擊“退出”按鈕退出程序的執行。

請添加圖片描述

import tkinter as tkdef display_info():work = entry_work.get()author = entry_author.get()text_info.delete('1.0', tk.END)text_info.insert(tk.END, f"作品: {work}\n作者: {author}")app = tk.Tk()
app.title("Information Display")tk.Label(app, text="作品").pack()
entry_work = tk.Entry(app)
entry_work.pack()tk.Label(app, text="作者").pack()
entry_author = tk.Entry(app)
entry_author.pack()button_read = tk.Button(app, text="讀取信息", command=display_info)
button_read.pack()text_info = tk.Text(app)
text_info.pack()button_exit = tk.Button(app, text="退出", command=app.quit)
button_exit.pack()app.mainloop()

結語

Tkinter是Python中創建GUI的一種簡單而強大的方式。無論你是初學者還是有經驗的開發者,Tkinter都是入門GUI編程的理想選擇。通過學習和使用Tkinter,你可以構建出直觀、交互性強的桌面應用程序,增強用戶體驗。

開始你的Tkinter旅程,創造你的第一個Python GUI應用吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214253.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214253.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214253.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

項目方看過來,詳解Moonbeam Grants申請技巧

Grants加速計劃是Moonbeam基金會發起的生態資助計劃,旨在支持生態系統中的不同項目、社區和個人,幫助他們順利進入Moonbeam發展,依靠早期的生態扶持迅速成長。 每一份Grant計劃旨在融合社區參與、包容性和透明度等特性,加速Moonb…

Java項目-瑞吉外賣Day3

填充公共字段: 目的:由于某些屬性,例如createdTime這些需要填充的字段會在多個地方出現,所以考慮使用公共字段自動填充的辦法減少重復代碼。 在對應屬性上加入TableField注解。通過fill字段表明策略,是插入/更新的時候…

Android studio之ConstraintLayout使用

文章目錄 優勢使用ConstraintLayout的步驟使用多種方式定義控件的位置 優勢 ConstraintLayout是一個相對布局,是在Android 2.3版本中引入的。它可以在不同的屏幕大小和分辨率中提供一致的布局,并且是支持復雜布局的最佳選擇之一。ConstraintLayout相對于…

ROS2+ROS_DOMAN_ID

The ROS_DOMAIN_ID? Table of Contents Overview Choosing a domain ID (short version) Choosing a domain ID (long version) Platform-specific constraints Participant constraints Domain ID to UDP Port Calculator Overview? As explained elsewhere, the de…

Dockerfile模板和Docker Compose模板

記錄一下Dockerfile模板和Docker Compose模板, 基礎的系統加JDK環境來構建一個Java應用,其Dockerfile內容如下: # 基礎鏡像 FROM openjdk:11.0-jre-buster # 設定時區 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/local…

如何搭建廢品上門回收小程序

如今,隨著環境保護意識的增強,廢品的回收和再利用變得越來越重要。為了方便人們進行廢品回收,搭建一個廢品上門回收的小程序成為了一個不錯的選擇。本文將介紹如何從零開始搭建一個廢品上門回收小程序。 …

vue寶典之項目結構介紹

文章目錄 🍁前言🍁Vue.js基本概念🍁Vue.js核心特性🍁Vue.js應用場景🍁Vue項目結構🍁Vue開發流程 目前在學習vue項目,之前只是學習vue中基本語法,當接觸項目時發現vue項目結構之間配置…

【Go自學版】02-goroutine

利用時間片分割進程,致使宏觀上A,B,C同時執行(并發) CPU利用率包含了執行和切換,進程/線程的數量越多,切換成本也會增大 最大并行數:GOMAXPROCS work stealing: 偷其他隊列的G hand off: 當前G1阻塞&#…

css 修改滾動條樣式,解決Windows瀏覽器中滾動條不美觀問題

Windows環境中的瀏覽器中滾動條默認是直接顯示了,不管光標是否進入該區域,這樣就很不美觀,如下圖: 之前樣式為 .well {display: block;background-color: #f2f2f2;border: 1px solid #ccc;margin: 5px;width: calc(100% - 12px);h…

mycat部署和配置讀寫分離(二)

說明: MyCAT 是使用 JAVA 語言進行編寫開發,使用前需要先安裝 JAVA 運行環境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性,所以要求必須在 JDK7 以上的版本上運行。 1. jdk1.8安裝 詳見jdk環境安裝 2. Mysql安裝 詳見mysql8.0.11源碼安裝…

websoket 的使用

WebSocket是HTML5的API之一,允許瀏覽器和服務器之間進行雙向通信。Vue.js可以輕松地與WebSocket API集成,使用原生WebSocket API或其他WebSocket庫(如socket.io)都是可行的。 下面是一個使用Vue.js實現WebSocket的簡單示例&#…

【lesson11】數據類型之string類型

文章目錄 數據類型分類string類型set類型測試 enum類型測試 string類型的內容查找找所有女生(enum中)找愛好有游泳的人(set中)找到愛好中有足球和籃球的人 數據類型分類 string類型 set類型 說明: set:集…

SL9008 3.6-60V輸入 LED降壓恒流芯片 內置MOS管 帶PWM調光

SL9008是一款內置MOS管、具有PWM調光功能的LED降壓恒流芯片,適用于3.6-60V的輸入電壓范圍。它采用了先進的電路設計,確保了高效率和長壽命,同時具有寬電壓輸入范圍和優異的負載調整率。 SL9008的主要特點包括: 1. 寬輸入電壓范圍&…

C語言中常用的庫函數和頭文件

下面是C語言中常用的一部分庫函數和頭文件,不同編譯器或操作系統可能會有所差異。 1. 字符串相關函數 (string.h): - strlen:獲取字符串長度。 - strcpy、strncpy:復制字符串。 - strcat、strncat:連接字符串…

HarmonyOS4.0開發應用——【ArkUI組件使用】

ArkUI組件使用 這里會詳細演示以下組件使用: ImageTextTextInputButtonSliderColumn&&RowList自定義組件以及相關函數使用 Image 可以是網絡圖片、可以是本地圖片、也可以是像素圖 Image("https://ts1.cn.mm.bing.net/th?idOIP-C.cYA-_PINA-ND9OeBaolDTwHaHa&…

MySQL GTID詳解

概念 GTID 全局事務唯一標識( global transaction identifier) 格式 單個GTID由兩部分組成 ,用冒號分割;前面一部分為server_uuid,后面一部分transaction_id是由事務在源上提交的順序確定的序列號 GTID server_u…

免費熱門的API大全整理

實人認證(人像三要素):輸入姓名、身份證號碼和一張人臉照片,與公安庫身份證頭像進行權威比對,返回比對分值。實名認證(身份證二要素):核驗身份證二要素(姓名和身份證號碼…

CLIP在Github上的使用教程

CLIP的github鏈接:https://github.com/openai/CLIP CLIP Blog,Paper,Model Card,Colab CLIP(對比語言-圖像預訓練)是一個在各種(圖像、文本)對上進行訓練的神經網絡。可以用自然語…

鴻蒙HarmonyOS(ArkTS)語法 聲明變量及注意事項

好 今天我們來看一個基礎的harmonyOS語法 變量聲明 這里 我們還是用 ArkTS項目 我們聲明變量的語法并不是ArkTS的 而是 javaScript 和 TypeScript的 可以看一下下面一張圖 js是最初弱類型語言 于是TS作為js的副類 是一種更嚴謹的數據限定語法 而ArkTS 是TS的改良版 其實我們…

算法通關村第十八關 | 白銀 | 回溯熱門問題

1.組合總和問題 原題&#xff1a;力扣39. 元素可以重復拿取&#xff0c;且題目的測試用例保證了組合數少于 150 個。 class CombinationSum {List<List<Integer>> res new ArrayList<>();List<Integer> path new ArrayList<>();public List…