2 Star 2 Fork 1

陈士龙/pyside6

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
speak.py 2.33 KB
一键复制 编辑 原始数据 按行查看 历史
陈士龙 提交于 2022-07-21 16:16 . file
"""PySide6 QTextToSpeech example"""
import sys
from PySide6.QtCore import Qt
from PySide6.QtWidgets import (QApplication, QComboBox, QFormLayout,
QHBoxLayout, QLineEdit, QMainWindow, QPushButton, QSlider, QWidget)
from PySide6.QtTextToSpeech import QTextToSpeech
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
centralWidget = QWidget()
self.setCentralWidget(centralWidget)
layout = QFormLayout(centralWidget)
textLayout = QHBoxLayout()
self.text = QLineEdit('Hello, PySide6')
self.text.setClearButtonEnabled(True)
textLayout.addWidget(self.text)
self.sayButton = QPushButton('Say')
textLayout.addWidget(self.sayButton)
self.text.returnPressed.connect(self.sayButton.animateClick)
self.sayButton.clicked.connect(self.say)
layout.addRow('Text:', textLayout)
self.voiceCombo = QComboBox()
layout.addRow('Voice:', self.voiceCombo)
self.volumeSlider = QSlider(Qt.Horizontal)
self.volumeSlider.setMinimum(0)
self.volumeSlider.setMaximum(100)
self.volumeSlider.setValue(100)
layout.addRow('Volume:', self.volumeSlider)
self.engine = None
engineNames = QTextToSpeech.availableEngines()
if len(engineNames) > 0:
engineName = engineNames[0]
self.engine = QTextToSpeech(engineName)
self.engine.stateChanged.connect(self.stateChanged)
self.setWindowTitle(f'QTextToSpeech Example ({engineName})')
self.voices = []
for voice in self.engine.availableVoices():
self.voices.append(voice)
self.voiceCombo.addItem(voice.name())
else:
self.setWindowTitle('QTextToSpeech Example (no engines available)')
self.sayButton.setEnabled(False)
def say(self):
self.sayButton.setEnabled(False)
self.engine.setVoice(self.voices[self.voiceCombo.currentIndex()])
self.engine.setVolume(float(self.volumeSlider.value()) / 100)
self.engine.say(self.text.text())
def stateChanged(self, state):
if (state == QTextToSpeech.State.Ready):
self.sayButton.setEnabled(True)
if __name__ == '__main__':
app = QApplication(sys.argv)
mainWin = MainWindow()
mainWin.show()
sys.exit(app.exec())
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/chenbool/pyside6.git
git@gitee.com:chenbool/pyside6.git
chenbool
pyside6
pyside6
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385