Tkinter - Python圖形界面開發指南

作者:唐叔在學習
專欄:唐叔學python
標簽:Python GUI編程 Tkinter教程 圖形界面開發 Python實戰 界面設計 事件監聽 Python入門 唐叔Python 編程學習 軟件開發

文章目錄

    • 一、Tkinter是什么?為什么選擇它?
    • 二、Tkinter基礎組件詳解
      • 2.1 標簽(Label)和按鈕(Button) - 界面基礎
      • 2.2 輸入框(Entry)和文本框(Text) - 用戶輸入處理
    • 三、Tkinter高級組件精講
      • 3.1 單選按鈕(Radiobutton)和復選框(Checkbutton)
      • 3.2 列表框(Listbox) - 數據展示利器
      • 3.3 尺度(Scale)和畫布(Canvas) - 交互式組件
      • 3.4 菜單(Menu) - 打造專業級應用界面
        • 3.4.1 基礎菜單實現
        • 3.4.2 右鍵上下文菜單
      • 3.5 彈窗(Messagebox) - 用戶交互必備
        • 3.5.1 常見彈窗類型
        • 3.5.2 自定義彈窗
      • 3.6 框架(Frame) - 界面布局神器
        • 3.6.1 基礎Frame使用
        • 3.6.2 嵌套Frame實現復雜布局
    • 四、Tkinter布局與事件處理
      • 4.1 三大布局管理器對比
      • 4.2 常見事件監聽
    • 五、綜合案例:帶菜單的文本編輯器
    • 六、總結與思維導圖

一、Tkinter是什么?為什么選擇它?

各位小伙伴們好,我是唐叔!今天咱們來聊聊Python中一個超級實用的庫——Tkinter。作為Python標準庫中的GUI工具包,Tkinter可以說是Python圖形界面開發的"瑞士軍刀"!

為什么我推薦大家學習Tkinter呢?原因很簡單:

  1. 內置標準庫:無需額外安裝,Python自帶
  2. 跨平臺:Windows、Mac、Linux通吃
  3. 簡單易學:比PyQt、wxPython等更輕量
  4. 快速原型開發:小工具開發效率極高
import tkinter as tk
root = tk.Tk()
root.title("唐叔的Tkinter教程")
root.mainloop()

在這里插入圖片描述

這三行代碼就能創建一個窗口,是不是很簡單?接下來,唐叔就帶大家深入探索Tkinter的奧秘!

二、Tkinter基礎組件詳解

2.1 標簽(Label)和按鈕(Button) - 界面基礎

Label是顯示文本或圖像的組件,Button則是交互的起點,我們先來看個例子:

import tkinter as tkdef say_hello():label.config(text="你好,Tkinter!")root = tk.Tk()
label = tk.Label(root, text="歡迎來到唐叔的教程", font=('Arial', 12))
button = tk.Button(root, text="點擊我", command=say_hello)label.pack()
button.pack()
root.mainloop()

在這里插入圖片描述

這里我們創建了一個標簽和一個按鈕,點擊按鈕會改變標簽文本。pack()是布局管理器,后面唐叔會專門講解。

2.2 輸入框(Entry)和文本框(Text) - 用戶輸入處理

Entry是單行輸入框,Text是多行文本框,非常適合表單類應用:

import tkinter as tkdef show_text():content = entry.get()text.insert(tk.END, f"\n你輸入了:{content}")root = tk.Tk()
entry = tk.Entry(root, width=30)
text = tk.Text(root, height=5)
button = tk.Button(root, text="顯示", command=show_text)entry.pack()
button.pack()
text.pack()
root.mainloop()

在這里插入圖片描述

三、Tkinter高級組件精講

3.1 單選按鈕(Radiobutton)和復選框(Checkbutton)

Radiobutton用于單選,Checkbutton用于多選:

import tkinter as tkdef show_choice():tk.Label(root, text=f"性別:{gender.get()}").pack()tk.Label(root, text=f"愛好:{', '.join([h for h, v in hobbies.items() if v.get()])}").pack()root = tk.Tk()# 單選按鈕
gender = tk.StringVar()
tk.Label(root, text="性別:").pack()
tk.Radiobutton(root, text="男", variable=gender, value="男").pack()
tk.Radiobutton(root, text="女", variable=gender, value="女").pack()# 復選框
hobbies = {"音樂": tk.BooleanVar(),"運動": tk.BooleanVar(),"閱讀": tk.BooleanVar()
}
tk.Label(root, text="愛好:").pack()
for text, var in hobbies.items():tk.Checkbutton(root, text=text, variable=var).pack()tk.Button(root, text="提交", command=show_choice).pack()
root.mainloop()

在這里插入圖片描述

3.2 列表框(Listbox) - 數據展示利器

Listbox可以顯示項目列表,支持單選或多選:

import tkinter as tkdef show_selection():selection = listbox.curselection()label.config(text=f"\n你選中了:{', '.join([listbox.get(h) for h in selection])}")root = tk.Tk()
listbox = tk.Listbox(root, selectmode=tk.MULTIPLE)
for item in ["Python", "Java", "C++", "JavaScript"]:listbox.insert(tk.END, item)
button = tk.Button(root, text="顯示選中", command=show_selection)
label = tk.Label(root)listbox.pack()
button.pack()
label.pack()
root.mainloop()

在這里插入圖片描述

3.3 尺度(Scale)和畫布(Canvas) - 交互式組件

Scale是滑塊組件,Canvas則是繪圖區域:

import tkinter as tkdef update_color(_):r = red_scale.get()g = green_scale.get()b = blue_scale.get()color = f"#{r:02x}{g:02x}{b:02x}"canvas.config(bg=color)hex_label.config(text=color)root = tk.Tk()red_scale = tk.Scale(root, from_=0, to=255, orient=tk.HORIZONTAL, command=update_color)
green_scale = tk.Scale(root, from_=0, to=255, orient=tk.HORIZONTAL, command=update_color)
blue_scale = tk.Scale(root, from_=0, to=255, orient=tk.HORIZONTAL, command=update_color)canvas = tk.Canvas(root, width=200, height=100, bg="#000000")
hex_label = tk.Label(root, text="#000000")red_scale.pack()
green_scale.pack()
blue_scale.pack()
canvas.pack()
hex_label.pack()
root.mainloop()

在這里插入圖片描述

3.4 菜單(Menu) - 打造專業級應用界面

菜單是桌面應用的標配,Tkinter的Menu組件可以輕松實現多級菜單功能。

3.4.1 基礎菜單實現
import tkinter as tkdef new_file():print("新建文件")def about():tk.messagebox.showinfo("關于", "唐叔的Tkinter教程\n版本1.0")root = tk.Tk()
root.title("菜單演示")# 創建主菜單欄
menubar = tk.Menu(root)# 文件菜單
filemenu = tk.Menu(menubar, tearoff=0)
filemenu.add_command(label="新建", command=new_file)
filemenu.add_command(label="打開")
filemenu.add_separator()  # 分隔線
filemenu.add_command(label="退出", command=root.quit)
menubar.add_cascade(label="文件", menu=filemenu)# 幫助菜單
helpmenu = tk.Menu(menubar, tearoff=0)
helpmenu.add_command(label="幫助主題")
helpmenu.add_command(label="關于", command=about)
menubar.add_cascade(label="幫助", menu=helpmenu)# 配置菜單欄
root.config(menu=menubar)root.mainloop()

在這里插入圖片描述

關鍵點說明

  • tearoff=0 禁用菜單可撕下功能
  • add_separator() 添加菜單分隔線
  • add_cascade() 創建子菜單
3.4.2 右鍵上下文菜單
import tkinter as tkdef popup(event):context_menu.post(event.x_root, event.y_root)root = tk.Tk()
context_menu = tk.Menu(root, tearoff=0)
context_menu.add_command(label="復制")
context_menu.add_command(label="粘貼")
context_menu.add_separator()
context_menu.add_command(label="自定義操作")root.bind("<Button-3>", popup)  # 右鍵綁定
root.mainloop()

在這里插入圖片描述

3.5 彈窗(Messagebox) - 用戶交互必備

彈窗是與用戶交互的重要方式,Tkinter提供了多種預定義彈窗:

3.5.1 常見彈窗類型
from tkinter import messagebox# 信息提示框
messagebox.showinfo("提示", "操作成功完成!")# 警告框
messagebox.showwarning("警告", "磁盤空間不足")# 錯誤框
messagebox.showerror("錯誤", "文件打開失敗")# 詢問框
result = messagebox.askquestion("確認", "確定要刪除嗎?")
if result == 'yes':print("用戶選擇了確定")# 是/否選擇框
result = messagebox.askyesno("選擇", "是否繼續?")# 重試/取消框
result = messagebox.askretrycancel("重試", "連接失敗,是否重試?")

在這里插入圖片描述

3.5.2 自定義彈窗
import tkinter as tkdef custom_dialog():dialog = tk.Toplevel()dialog.title("自定義對話框")tk.Label(dialog, text="請輸入內容:").pack()entry = tk.Entry(dialog)entry.pack()def on_ok():print("輸入內容:", entry.get())dialog.destroy()tk.Button(dialog, text="確定", command=on_ok).pack()root = tk.Tk()
tk.Button(root, text="打開對話框", command=custom_dialog).pack()
root.mainloop()

在這里插入圖片描述

3.6 框架(Frame) - 界面布局神器

Frame是組織復雜界面的容器組件,相當于HTML中的<div>標簽。

3.6.1 基礎Frame使用
import tkinter as tkroot = tk.Tk()# 創建左側框架
left_frame = tk.Frame(root, borderwidth=2, relief="groove")
tk.Label(left_frame, text="左側面板").pack()
tk.Button(left_frame, text="按鈕1").pack(pady=5)
tk.Button(left_frame, text="按鈕2").pack(pady=5)
left_frame.pack(side="left", padx=10, pady=10, fill="y")# 創建右側框架
right_frame = tk.Frame(root)
tk.Label(right_frame, text="右側面板").grid(row=0, column=0, columnspan=2)
tk.Entry(right_frame).grid(row=1, column=0, pady=5)
tk.Button(right_frame, text="搜索").grid(row=1, column=1, padx=5)
right_frame.pack(side="right", padx=10, pady=10)root.mainloop()

在這里插入圖片描述

3.6.2 嵌套Frame實現復雜布局
import tkinter as tkroot = tk.Tk()# 頂部工具欄
toolbar = tk.Frame(root, bg="#eee", height=40)
toolbar.pack(fill="x", padx=2, pady=2)
tk.Button(toolbar, text="文件").pack(side="left", padx=5)
tk.Button(toolbar, text="編輯").pack(side="left")# 主內容區
main_area = tk.Frame(root)
main_area.pack(fill="both", expand=True)# 左側導航
nav_frame = tk.Frame(main_area, width=150, bg="#f0f0f0")
nav_frame.pack(side="left", fill="y")
tk.Label(nav_frame, text="導航菜單", bg="#ddd").pack(fill="x")
for item in ["首頁", "設置", "幫助"]:tk.Button(nav_frame, text=item).pack(fill="x", pady=2)# 右側內容
content_frame = tk.Frame(main_area)
content_frame.pack(side="right", fill="both", expand=True)
tk.Label(content_frame, text="主內容區").pack()
tk.Text(content_frame).pack(fill="both", expand=True)root.mainloop()

在這里插入圖片描述

四、Tkinter布局與事件處理

4.1 三大布局管理器對比

  1. pack():簡單自動布局
  2. grid():表格形式布局
  3. place():精確坐標布局
import tkinter as tk
# grid布局示例
root = tk.Tk()
tk.Label(root, text="用戶名:").grid(row=0, column=0)
tk.Entry(root).grid(row=0, column=1)
tk.Label(root, text="密碼:").grid(row=1, column=0)
tk.Entry(root, show="*").grid(row=1, column=1)
tk.Button(root, text="登錄").grid(row=2, columnspan=2)
lumn=0)
tk.Entry(root, show="*").grid(row=1, column=1)
tk.Button(root, text="登錄").grid(row=2, columnspan=2)
root.mainloop()

在這里插入圖片描述

4.2 常見事件監聽

Tkinter支持多種事件綁定方式:

def on_click(event):print(f"點擊位置:({event.x}, {event.y})")root = tk.Tk()
button = tk.Button(root, text="測試事件")
button.bind("<Button-1>", on_click)  # 左鍵點擊
button.pack()# 常見事件:
# <Button-1> 鼠標左鍵
# <Double-Button-1> 雙擊左鍵
# <KeyPress-A> A鍵按下
# <Motion> 鼠標移動

五、綜合案例:帶菜單的文本編輯器

import tkinter as tk
from tkinter import filedialogclass TextEditor:def __init__(self, root):self.root = rootself.setup_ui()def setup_ui(self):# 菜單欄menubar = tk.Menu(self.root)# 文件菜單filemenu = tk.Menu(menubar, tearoff=0)filemenu.add_command(label="新建", command=self.new_file)filemenu.add_command(label="打開", command=self.open_file)filemenu.add_command(label="保存", command=self.save_file)filemenu.add_separator()filemenu.add_command(label="退出", command=self.root.quit)menubar.add_cascade(label="文件", menu=filemenu)# 編輯菜單editmenu = tk.Menu(menubar, tearoff=0)editmenu.add_command(label="撤銷")editmenu.add_command(label="重做")editmenu.add_separator()editmenu.add_command(label="剪切")editmenu.add_command(label="復制")editmenu.add_command(label="粘貼")menubar.add_cascade(label="編輯", menu=editmenu)self.root.config(menu=menubar)# 工具欄toolbar = tk.Frame(self.root, bd=1, relief=tk.RAISED)tk.Button(toolbar, text="打開", command=self.open_file).pack(side=tk.LEFT, padx=2)tk.Button(toolbar, text="保存", command=self.save_file).pack(side=tk.LEFT)toolbar.pack(side=tk.TOP, fill=tk.X)# 狀態欄self.status = tk.StringVar()self.status.set("就緒")statusbar = tk.Label(self.root, textvariable=self.status, bd=1, relief=tk.SUNKEN, anchor=tk.W)statusbar.pack(side=tk.BOTTOM, fill=tk.X)# 文本編輯區self.text = tk.Text(self.root, wrap=tk.WORD)self.text.pack(expand=True, fill=tk.BOTH)def new_file(self):self.text.delete(1.0, tk.END)self.status.set("新建文件")def open_file(self):filepath = filedialog.askopenfilename()if filepath:with open(filepath, 'r') as f:self.text.delete(1.0, tk.END)self.text.insert(tk.END, f.read())self.status.set(f"已打開: {filepath}")def save_file(self):filepath = filedialog.asksaveasfilename()if filepath:with open(filepath, 'w') as f:f.write(self.text.get(1.0, tk.END))self.status.set(f"已保存: {filepath}")root = tk.Tk()
root.title("文本編輯器")
app = TextEditor(root)
root.mainloop()

在這里插入圖片描述

六、總結與思維導圖

通過本文,唐叔帶大家系統學習了Tkinter的核心組件和事件處理機制。下面用一張思維導圖總結關鍵知識點:

Tkinter知識體系
├── 基礎組件
│   ├── Label - 文本/圖像展示
│   ├── Button - 按鈕交互
│   ├── Entry - 單行輸入
│   └── Text - 多行文本
├── 高級組件
│   ├── Listbox - 列表展示
│   ├── Radiobutton - 單選
│   ├── Checkbutton - 多選
│   ├── Scale - 滑塊
│   ├── Canvas - 繪圖
│   ├── Menu - 菜單系統
│   │   ├── 主菜單欄
│   │   ├── 下拉菜單
│   │   └── 右鍵菜單
│   ├── Messagebox - 系統彈窗
│   │   ├── 提示框
│   │   ├── 警告框
│   │   └── 確認框
│   └── Frame - 布局容器
│       ├── 基礎框架
│       └── 嵌套布局
├── 布局管理
│   ├── pack() - 自動布局
│   ├── grid() - 網格布局
│   └── place() - 絕對定位
└── 事件處理├── bind() - 事件綁定├── command - 按鈕回調└── 常見事件類型

掌握了這些內容,你已經能夠開發大多數簡單的GUI應用了!Tkinter雖然不如一些專業GUI庫強大,但對于快速開發小型工具來說絕對是利器。

唐叔小貼士:學習GUI編程最重要的是多實踐,建議從模仿開始,逐步增加功能。遇到問題可以查閱官方文檔或在CSDN社區提問交流。

如果覺得本文有幫助,別忘了點贊收藏哦!關注唐叔,獲取更多Python實戰教程!


下期預告:《Tkinter高級技巧:自定義樣式與主題美化》,我們將學習如何讓Tkinter界面更加美觀專業!

往期Python精彩文章:

  • Pandas - JSON格式數據操作實踐
  • Pandas - Python爬蟲數據處理分析神器

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

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

相關文章

Java基礎day15

目錄 一、Java集合簡介 1.什么是集合&#xff1f; 2.集合接口 3.小結 二、List集合 1.List集合簡介 三、ArrayList容器類 1.初始化 1.1無參初始化 1.2有參初始化 2.數據結構 3.常用方法 3.1增加元素 3.2查找元素 3.3 修改元素 3.4 刪除元素 3.5 其他方法 4.擴…

React Three Fiber 實現晝夜循環:從光照過渡到日月聯動的技術拆解

在 3D 場景中用 React Three Fiber 實現自然的晝夜循環&#xff0c;核心難點在于光照的平滑過渡、日月運動的聯動邏輯、晝夜狀態下的光影差異處理&#xff0c;以及性能與視覺效果的平衡。本文以一個 ReactThree.js 的實現為例&#xff0c;詳細解析如何通過三角函數計算日月位置…

進階向:基于Python的簡易屏幕畫筆工具

用Python打造你的專屬屏幕畫筆工具&#xff1a;零基礎也能輕松實現你是否曾在觀看網課或參加遠程會議時&#xff0c;想要直接在屏幕上標注重點&#xff1f;或者作為設計師&#xff0c;需要快速繪制創意草圖&#xff1f;現在&#xff0c;只需幾行Python代碼&#xff0c;你就能輕…

Elasticsearch-ik分析器

CLI 安裝步驟 1、停止 Elasticsearch&#xff08;如果正在運行&#xff09;&#xff1a; 在安裝插件之前&#xff0c;確保 Elasticsearch 沒有在運行。 命令&#xff1a; systemctl stop elasticsearch2、安裝插件&#xff1a; 使用 elasticsearch-plugin 命令安裝 IK 插件。進…

MySQL八股篇

查詢關鍵字執行先后順序FROM&#xff08;及 JOIN)WHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMIT / OFFSETCHAR 和 VARCHAR 的區別&#xff1f;使用場景&#xff1f;特性CHARVARCHAR?存儲方式??定長&#xff0c;存儲時填充空格至定義長度變長&#xff0c;存儲實際數據 長…

QT RCC 文件

RCC (Qt Resource Compiler) 是 Qt 框架中的一個工具&#xff0c;用于將資源文件&#xff08;如圖像、音頻、翻譯文件等&#xff09;編譯成二進制格式&#xff0c;并嵌入到應用程序可執行文件中。RCC 文件基本概念作用&#xff1a;將應用程序所需的資源文件編譯成 C 代碼&#…

數據湖典型架構解析:2025 年湖倉一體化解決方案

數據湖架構概述&#xff1a;從傳統模型到 2025 年新范式數據湖作為存儲海量異構數據的中央倉庫&#xff0c;其架構設計直接影響企業數據價值的釋放效率。傳統數據湖架構主要關注數據的存儲和管理&#xff0c;而 2025 年的數據湖架構已經演變為更加智能化、自動化的綜合性數據平…

繪圖庫 Matplotlib Search

關于Pathon的繪圖庫的認識和基本操作的學習 這里學習了兩款常用便捷的繪圖庫去學習使用Matplotlib介紹是最受歡迎的一種數據可視化包 是常用的2D繪圖庫 一般常于Numpy和Pandas使用 是數據分析中非常重要的工具可以自定義XY軸 繪制線形圖 柱狀圖 直方圖 密度圖 散點圖 更清晰的展…

Docker詳解及實戰

&#x1f389; Docker 簡介和安裝 - Docker 快速入門 Docker 簡介 Docker是一個開源的平臺&#xff0c;用于開發、交付和運行應用程序。它能夠在Windows&#xff0c;macOS&#xff0c;Linux計算機上運行&#xff0c;并將某一應用程序及其依賴項打包至一個容器中&#xff0c;這…

嵌入式學習的第三十三天-進程間通信-UDP

一、網絡1.定義不同主機間進程通信主機間在硬件層面互聯互通主機在軟件層面互聯互通2.國際網絡體系結構OSI模型&#xff08;7層&#xff09;: open system interconnect -------理論模型------定義了網絡通信中不同層的協議1977 國際標準化組織各種不同體系結構的計算機能在世…

4、Spring AI_DeepSeek模型_結構化輸出

一、前言 Spring AI 提供跨 AI 供應商&#xff08;如 OpenAI、Hugging Face 等&#xff09;的一致性 API, 通過分裝的ChatModel或ChatClient即可輕松調動LLM進行流式或非流式對話。 本專欄主要圍繞著通過OpenAI兼容接口調用各種大語言模型展開學習&#xff08;因為大部分模型…

Spring Data Redis 從入門到精通:原理與實戰指南

一、Redis 基礎概念 Redis&#xff08;Remote Dictionary Server&#xff09;是開源的內存鍵值對數據庫&#xff0c;以高性能著稱。它支持多種數據結構&#xff08;String、Hash、List、Set、ZSet&#xff09;&#xff0c;并提供持久化機制&#xff08;RDB、AOF&#xff09;。 …

免費版酒店押金原路退回系統——仙盟創夢IDE

項目介紹?東方仙盟開源酒店押金管理系統是一款面向中小型酒店、民宿、客棧的輕量級前臺管理工具&#xff0c;專注于簡化房態管理、訂單處理和押金跟蹤流程。作為完全開源的解決方案&#xff0c;它無需依賴任何第三方服務&#xff0c;所有數據存儲在本地瀏覽器中&#xff0c;確…

10. isaacsim4.2教程-RTX Lidar 傳感器

1. 前言RTX Lidar 傳感器Isaac Sim的RTX或光線追蹤Lidar支持通過JSON配置文件設置固態和旋轉Lidar配置。每個RTX傳感器必須附加到自己的視口或渲染產品&#xff0c;以確保正確模擬。重要提示&#xff1a; 在運行RTX Lidar仿真時&#xff0c;如果你在Isaac Sim UI中停靠窗口&…

QT6 源,七章對話框與多窗體(14)棧式窗體 QStackedWidget:本類里代碼很少。舉例,以及源代碼帶注釋。

&#xff08;1&#xff09;這不是本章節要用到的窗體組件&#xff0c;只是跟著標簽窗體 QTabWidget 一起學了。這也是 QT 的 UI 界面里的最后幾個容器了。而且本類也很簡單。就了解一下它。 本類的繼承關系如下 &#xff1a; UI 設計界面 &#xff1a;運行效果 &#xff1a;&…

魔百和M401H_國科GK6323V100C_安卓9_不分地區免拆卡刷固件包

魔百和M401H_國科GK6323V100C_安卓9_不分地區免拆卡刷固件包刷機說明&#xff1a;1&#xff0c;進機頂盒設置&#xff08;密碼10086&#xff09;&#xff0c;在其他里&#xff0c;一直按左鍵約32下&#xff0c;打開調試模式2&#xff0c;進網絡設置&#xff0c;查看IP地址。3&a…

MySQL基礎02

一. 函數在 MySQL 中&#xff0c;函數是用于對數據進行特定處理或計算的工具&#xff0c;根據作用范圍和返回結果的不同&#xff0c;主要分為單行函數和聚合函數&#xff08;又稱分組函數&#xff09;。以下是詳細介紹&#xff1a;1.單行函數單行函數對每一行數據單獨處理&…

LabVIEW 視覺檢測SIM卡槽

針對SIM 卡槽生產中人工檢測效率低、漏檢誤檢率高的問題&#xff0c;設計了基于 LabVIEW 機器視覺的缺陷檢測系統。該系統通過光學采集與圖像處理算法&#xff0c;實現對卡槽引腳折彎、變形、漏銅等缺陷的自動檢測&#xff0c;誤報率為 0&#xff0c;平均檢測時間小于 750ms&am…

RocketMQ5.3.1的安裝

1、下載安裝 RocketMQ 的安裝包分為兩種&#xff0c;二進制包和源碼包。1 下載 Apache RocketMQ 5.3.1的源碼包后上傳到linux https://dist.apache.org/repos/dist/release/rocketmq/5.3.1/rocketmq-all-5.3.1-source-release.zip2 解壓編譯 $ unzip rocketmq-all-5.3.1-source…

FunASR實時多人對話語音識別、分析、端點檢測

核心功能&#xff1a;FunASR是一個基礎語音識別工具包&#xff0c;提供多種功能&#xff0c;包括語音識別&#xff08;ASR&#xff09;、語音端點檢測&#xff08;VAD&#xff09;、標點恢復、語言模型、說話人驗證、說話人分離和多人對話語音識別等。FunASR提供了便捷的腳本和…