内容简介:注意:player必须在QApplication实例化后创建,否则无报错不播放文章首发:
from PyQt5.QtCore import *
from PyQt5.QtMultimedia import *
from PyQt5.QtWidgets import *
app = QApplication([])
player = QMediaPlayer()
player.setMedia(QMediaContent(QUrl.fromLocalFile('/mnt/d/music/test/金娃娃-彩虹糖的梦.wma')))
player.play()
app.exec()
注意:player必须在QApplication实例化后创建,否则无报错不播放
PyQt5多线程
import sys
import time
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class BigWork(QThread):
signal = pyqtSignal(type(None))
def run(self) -> None:
print("Big Working...")
time.sleep(3)
print("Big done.")
self.signal.emit(None)
def terminate(self) -> None:
print("Terminating...")
super().terminate()
print("Terminated.")
class Window(QWidget):
root_layout: QVBoxLayout
button1: QPushButton
button2: QPushButton
button3: QPushButton
work: QThread
def __init__(self) -> None:
super().__init__()
self.setup_layout()
self.work = BigWork()
self.work.signal.connect(lambda x: print("Signal received:", x))
def setup_layout(self):
self.button1 = QPushButton("Start", parent=self)
self.button2 = QPushButton("Stop", parent=self)
self.button3 = QPushButton("About Qt", parent=self)
self.root_layout = QVBoxLayout()
self.root_layout.addWidget(self.button1)
self.root_layout.addWidget(self.button2)
self.root_layout.addWidget(self.button3)
self.button1.clicked.connect(lambda: self.work.start())
self.button2.clicked.connect(lambda: self.work.terminate())
self.button3.clicked.connect(lambda: QMessageBox.aboutQt(self))
self.resize(600, 400)
self.setLayout(self.root_layout)
def main():
app = QApplication(sys.argv)
window = Window()
window.show()
app.exec()
if __name__ == '__main__':
main()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数字化生存
(美)Nicholas Negroponte(尼古拉·尼葛洛庞帝) / 胡泳、范海燕 / 电子工业出版社 / 2017-1-1 / 68.00
《数字化生存》描绘了数字科技为我们的生活、工作、教育和娱乐带来的各种冲击和其中值得深思的问题,是跨入数字化新世界的*指南。英文版曾高居《纽约时报》畅销书排行榜。 “信息的DNA”正在迅速取代原子而成为人类生活中的基本交换物。尼葛洛庞帝向我们展示出这一变化的巨大影响。电视机与计算机屏幕的差别变得只是大小不同而已。从前所说的“大众”传媒正演变成个人化的双向交流。信息不再被“推给”消费者,相反,人们或他......一起来看看 《数字化生存》 这本书的介绍吧!