> 文档中心 > Python Tkinter实现一个听书神器

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 tkfimport 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日常小操作专栏查看