python懒人听书
项目名称:懒人听书(基础版)
开发工具:pycharm
项目简介:打开文件选取文本(TXT小说),点击阅读
开始编程之前,首先需要明确思路,有了清晰的思路,编程就会相对的比较简单。
程序的编程思路如下:
1,首先需要一个整体的简易框架,创建一个整体的界面
2,为了使界面美观,要修改窗口的大小和位置,设置界面窗口的信息
3,框架完成之后,选择文件和阅读,需要相应的按钮,因而需要在窗口添加相应的控件
4,单纯的有按钮是不行的,还需要将按钮所需要具有的能力赋给按钮,因此需要创建功能函数并关联按钮
下面开始编程:
1,创建一个图形界面 程序窗口
稍微会用pycharm的都知道,程序运行一般都是在一个小黑框运行,但是我们一般开发的话都是在图形界面进行的,可以想象一下,你登录QQ的场景,双击QQ图标,跳出来的登录界面就是图形界面的一种。
使用图形界面的话,首先要在程序中引入python的一个tkinter库,这个库的作用就是用来创建图形界面的。
具体的引用为(名字有点长,所以将其定义为tk):
import tkinter as tk # 用于创建图形界面程序的库
首先使用tk(tkinter,下文均简称为tk)中对应的Tk方法,这个方法是专门用来创建图形界面窗口的,定义好之后,我们给他起个名字叫window。
# 1,创建一个图形界面窗口 程序窗口
window = tk.Tk() # 创建窗口
在这之后,我们添加“window.mainloop”代码,运行程序来显示结果(建议每一步都做完之后看看结果是否有改变,都有什么样的改变)。可以发现有了一个空白的窗口框,图形窗口就创建好了。
2,设置图形界面窗口的信息
第一步创建好之后,我们会发现,图形界面的名字就叫做tk,相较有点难看,我们首先给它个名字。创建标题有个简单的方法叫title,可以直接使用。
# 2,设置图形界面窗口的信息
window.title('懒人听书') # 设置窗口名字
名字修改好之后,我们会发现,图形界面的大小不怎么好看,我们为了追求更好看一点,对他的大小进行一定的调整。实现自定义的窗口的大小和位置我们一般用geometry方法进行修改(这里面有个注意点,我一开始也搞错了)。
window.geometry('640x480') # 设置窗口的大小 geometry中乘号用小写的x表示
3,创建相应的控件 文本框和按钮
第二步完成之后显示结果,发现只是一个空白的框,什么都没有,而我们需要导入文件和点击阅读,所以需要添加相应的按钮,有的时候可能还想边看边听,这个时候就需要向图形界面添加合适的文本框。
文本框的创建需要调用tk的一个Text方法创建,创建完毕之后,我们将它定义为text。
# 3,在窗口添加相应的控件
text = tk.Text(window) # 创建文本框
创建之后运行,我们会发现,创建前后没有任何的区别,这是因为我们没有给这个文本框设置一个放置我的位置。 调用一个place的方法给文本框选择位置(x,y为对应的位置变量,width和height表示的是文本框的长宽,这个自行调整,自己满意就好)。
text.place(x=10, y=10, width=620, height=400) # 设置文本框在窗口程序上的位置和大小
这样,文本框就创建好了。
按钮的创建方法需要调用tk的一个Button方法,说明创建的位置和按钮名称,具体如下:
button1 = tk.Button(window, text='选择书籍') # 设置按钮
button2 = tk.Button(window, text='开始听书')
就这样,文本框和按钮设置好了。
4,创建功能函数并关联按钮 两个按钮函数
第三步运行之后,我们发现,虽然按钮给它设置好了,但是点击它却没有任何的反应,这是因为我们还没有给它进行功能的赋予,就像送礼物只有个礼物盒一样毫无意义,因此我们需要创建两个功能函数,让按钮的存在变得有意义。
首先,我们先创建一个选择并打开书籍的函数,第一步,我们先定义一个一看就懂的函数名select_file(选择文件),这个函数的功能是把我们选择的小说读取并显示到文本框。对文件进行选择,我们首先要引进一个叫filedialog的库来进行操作。
import tkinter.filedialog as tkf# 用于选择文件并获取文件的路径
引用完毕之后,我们调用这个库,使用askopenfilename获取小说文件的路径,然后对其进行读取,并显示在文本框里。这样,选择文件的功能就创建完成了。
4,创建功能函数并关联按钮
# 创建一个选择并打开书籍的函数
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)# 把读取出来的文字显示到文本框中
创建完成之后,我们运行,发现点击按钮还是无法选择,这是因为我们没有把功能和按钮进行结合,因此我们需要对第三步进行添加,添加完成之后就是这样子。
button1 = tk.Button(window, text='选择书籍', command=select_file) # 设置按钮,并关联功能
之后,我们再创建一个可以用来阅读的函数,创建之前,我们也需要进行库的引进,这个库可以对文字进行阅读。
import pyttsx3# 可以把文字转换为声音的库
库引进完成之后,我们就简单的调用这个库,对我们的文件进行阅读。这样,阅读的功能也创建好了。
# 创建一个可以阅读的函数
def broadcast_text():
book = pyttsx3.init() # 创建并初始化一个可以说话的对象
book.say(book_text) # 设置说话的内容
book.runAndWait() # 开始说话
之后如图之前一样,对按钮进行功能的赋予,整个过程项目就完成了。
button2 = tk.Button(window, text='开始听书',command=broadcast_text)
项目运行之后,我们就能得到一个可以听书的程序了。
项目的完整代码如下:
import pyttsx3# 可以把文字转换为声音的库
import tkinter as tk # 用于创建图形界面程序的库
import tkinter.filedialog as tkf# 用于选择文件并获取文件的路径
# 4,创建功能函数并关联按钮
# 创建一个选择并打开书籍的函数
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 broadcast_text():
book = pyttsx3.init() # 创建并初始化一个可以说话的对象
book.say(book_text) # 设置说话的内容
book.runAndWait() # 开始说话
# 1,创建一个图形界面窗口 程序窗口
window = tk.Tk() # 创建窗口
# 2,设置图形界面窗口的信息
window.title('懒人听书') # 设置窗口名字
window.geometry('640x480') # 设置窗口的大小 geometry中乘号用小写的x表示
# 3,在窗口添加相应的控件
text = tk.Text(window) # 创建文本框
text.place(x=10, y=10, width=620, height=400) # 设置文本框在窗口程序上的位置和大小
button1 = tk.Button(window, text='选择书籍', command=select_file) # 设置按钮,并关联功能
button1.place(x=100, y=420, width=100, height=50) # 设置文本框在窗口程序上的位置和大小
button2 = tk.Button(window, text='开始听书',command=broadcast_text)
button2.place(x=400, y=420, width=100, height=50)
window.mainloop()
第一次发,有说的不清楚的可以和我留言,或者有大佬可以给我一些指点的,万分感谢。
页:
[1]