0
点赞
收藏
分享

微信扫一扫

Python Tkinter实现一个听书神器


Python Tkinter实现一个听书神器

  • ​​前提条件​​
  • ​​相关介绍​​
  • ​​Tkinter 组件​​
  • ​​实验环境​​
  • ​​听书神器​​
  • ​​实现步骤​​
  • ​​代码实现​​
  • ​​输出结果​​

前提条件

  • 熟悉​​Python​​
  • 熟悉​​Tkinter​​
  • 熟悉​​Pyttsx3​​

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
  • Pyttsx3是 Python 中的文本到语音转换库。

Tkinter 组件

  • Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。
  • 目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:

控件

描述

Button

按钮控件;在程序中显示按钮。

Canvas

画布控件;显示图形元素如线条或文本

Checkbutton

多选框控件;用于在程序中提供多项选择框

Entry

输入控件;用于显示简单的文本内容

Frame

框架控件;在屏幕上显示一个矩形区域,多用来作为容器

Label

标签控件;可以显示文本和位图

Listbox

列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户

Menubutton

菜单按钮控件,用于显示菜单项。

Menu

菜单控件;显示菜单栏,下拉菜单和弹出菜单

Message

消息控件;用来显示多行文本,与label比较类似

Radiobutton

单选按钮控件;显示一个单选的按钮状态

Scale

范围控件;显示一个数值刻度,为输出限定范围的数字区间

Scrollbar

滚动条控件,当内容超过可视化区域时使用,如列表框。.

Text

文本控件;用于显示多行文本

Toplevel

容器控件;用来提供一个单独的对话框,和Frame比较类似

Spinbox

输入控件;与Entry类似,但是可以指定输入范围值

PanedWindow

PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。

LabelFrame

labelframe 是一个简单的容器控件。常用与复杂的窗口布局。

tkMessageBox

用于显示你应用程序的消息框。

实验环境

  • Python 3.x (面向对象的高级语言)
  • Tkinter(Python标准库)
  • Pyttsx3(Python第三方库) ​​pip3 install pyttsx3​

听书神器

实现步骤

  1. 图形界面(窗口标题、大小等)
  2. 设置相应的Tkinter控件(文本框等)
  3. 实现每个控件的功能(选择书籍,开始听书等)
  4. 把文字转化为语音

代码实现

import threading # 线程库
import tkinter as tk # Python自带GUI库
import tkinter.filedialog as tkf
import pyttsx3 # 一个可以把文字转化为语音的库
# 选择电子书
def select_file():
global book_text
book_text = ''
path = tkf.askopenfilename()
with open(path,'r',encoding='utf-8') as file:
book_text=file.read()
text.insert('end',book_text)

# 创建线程
def creat_thread():
th = threading.Thread(target=listen_book)
th.setDaemon(True) # 守护线程
th.start()

# 开始听书
def listen_book():
book = pyttsx3.init()
book.say(book_text)
book.runAndWait()


# 创建并设置图形界面
window = tk.Tk() # 窗口对象
window.title('听书神器') # 窗口标题
window.geometry('640x480') # 窗口大小
# 增加控件
text = tk.Text(window) # 文本框
text.place(x=20,y=20,width=600,height=400) # 文本框的属性配置
# '选择书籍'按键
open_button = tk.Button(window,text='选择书籍',command=select_file)
open_button.place(x=100,y=430,width=150,height=30)
# '开始听书'按键
listen_button = tk.Button(window,text='开始听书',command=creat_thread)
listen_button.place(x=350,y=430,width=150,height=30)

window.mainloop() # 进入消息循环

输出结果

Python Tkinter实现一个听书神器_tkinter

Python Tkinter实现一个听书神器

举报

相关推荐

0 条评论