Python Tkinter实现一个听书神器

前提条件

相关介绍

  • 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类似,但是可以指定输入范围值
PanedWindowPanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。
LabelFramelabelframe 是一个简单的容器控件。常用与复杂的窗口布局。
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实现一个听书神器

更多精彩内容,可点击进入Python日常小操作专栏查看

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FriendshipT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值