PyQt5窗体左右声道测试

本博客介绍了一个音视频应用程序的设计与实现,包括使用PyQt5创建交互界面,通过pygame和mp3play处理音频文件,以及利用随机数生成器进行音乐选择。详细解释了如何在界面中布局按钮,响应鼠标事件,并根据用户操作播放不同音频。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


from PyQt5.Qt import *
import sys
import time
import pygame
#import mp3play
import os
import random#随机数

class Windows(QWidget):
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        #self.setWindowFlag(Qt.FramelessWindowHint)#取消窗体标题栏
        self.setWindowTitle("Right And Left Channel Test V1.00")

        self.setWindowIcon(QIcon("ralct.ico"))#设置窗体图标
        self.setWindowFlags(Qt.WindowCloseButtonHint)#显示关闭按钮
        self.resize(300,300)
        self.btn_w=80
        self.but_h=40
        self.Click_Number=0
        self.setup_ui()
        self.number=random.randint(1,5)
        self.Play_Mp3_Media(self.number)
        self.button_1.pressed.connect(lambda :self.Left_Mouse_Operation_Evt(1))
        self.button_2.pressed.connect(lambda :self.Left_Mouse_Operation_Evt(2))
        self.button_3.pressed.connect(lambda :self.Left_Mouse_Operation_Evt(3))
        self.button_4.pressed.connect(lambda :self.Left_Mouse_Operation_Evt(4))
        self.button_5.pressed.connect(lambda :self.Left_Mouse_Operation_Evt(5))
        self.button_6.pressed.connect(lambda :self.Right_Mouse_Operation_Evt(6))
        self.button_7.pressed.connect(lambda :self.Right_Mouse_Operation_Evt(7))
        self.button_8.pressed.connect(lambda :self.Right_Mouse_Operation_Evt(8))
        self.button_9.pressed.connect(lambda :self.Right_Mouse_Operation_Evt(9))
        self.button_10.pressed.connect(lambda :self.Right_Mouse_Operation_Evt(10))

        #self.Play_Mp3()

    def setup_ui(self):
        #按钮1
        self.button_1=QPushButton(self)
        self.button_1.setText("1")
        self.button_1.resize(self.btn_w,self.but_h)
        #self.button_1.setEnabled(False)
        #按钮2
        self.button_2=QPushButton(self)
        self.button_2.setText("2")
        self.button_2.resize(self.btn_w,self.but_h)
        #self.button_2.setEnabled(False)
        #按钮3
        self.button_3=QPushButton(self)
        self.button_3.setText("3")
        self.button_3.resize(self.btn_w,self.but_h)
        #self.button_3.setEnabled(False)
        #按钮4
        self.button_4=QPushButton(self)
        self.button_4.setText("4")
        self.button_4.resize(self.btn_w,self.but_h)
        #self.button_4.setEnabled(False)
        #按钮5
        self.button_5=QPushButton(self)
        self.button_5.setText("5")
        self.button_5.resize(self.btn_w,self.but_h)
        #self.button_5.setEnabled(False)
         #按钮6
        self.button_6=QPushButton(self)
        self.button_6.setText("6")
        self.button_6.resize(self.btn_w,self.but_h)
        self.button_6.setEnabled(False)
        #按钮7
        self.button_7=QPushButton(self)
        self.button_7.setText("7")
        self.button_7.resize(self.btn_w,self.but_h)
        self.button_7.setEnabled(False)
        #按钮8
        self.button_8=QPushButton(self)
        self.button_8.setText("8")
        self.button_8.resize(self.btn_w,self.but_h)
        self.button_8.setEnabled(False)
        #按钮9
        self.button_9=QPushButton(self)
        self.button_9.setText("9")
        self.button_9.resize(self.btn_w,self.but_h)
        self.button_9.setEnabled(False)
        #按钮10
        self.button_10=QPushButton(self)
        self.button_10.setText("10")
        self.button_10.resize(self.btn_w,self.but_h)
        self.button_10.setEnabled(False)

    def resizeEvent(self, QResizeEvent):#窗体大小改时执行
        #按钮1
        self.button_1_x=self.width()/6
        self.button_1_y=self.height()/20
        self.button_1.move(self.button_1_x,self.button_1_y)
        #按钮2
        self.button_2_x=self.button_1_x
        self.button_2_y=self.height()/4.2
        self.button_2.move(self.button_2_x,self.button_2_y)
        #按钮3
        self.button_3_x=self.button_1_x
        self.button_3_y=self.height()/2.3
        self.button_3.move(self.button_3_x,self.button_3_y)
        #按钮4
        self.button_4_x=self.button_1_x
        self.button_4_y=self.height()/1.57
        self.button_4.move(self.button_4_x,self.button_4_y)
        #按钮5
        self.button_5_x=self.button_1_x
        self.button_5_y=self.height()/1.2
        self.button_5.move(self.button_5_x,self.button_5_y)
         #按钮6
        self.button_6_x=self.width()/1.7
        self.button_6_y=self.height()/20
        self.button_6.move(self.button_6_x,self.button_6_y)
        #按钮7
        self.button_7_x=self.button_6_x
        self.button_7_y=self.height()/4.2
        self.button_7.move(self.button_7_x,self.button_7_y)
        #按钮8
        self.button_8_x=self.button_6_x
        self.button_8_y=self.height()/2.3
        self.button_8.move(self.button_8_x,self.button_8_y)
        #按钮9
        self.button_9_x=self.button_6_x
        self.button_9_y=self.height()/1.57
        self.button_9.move(self.button_9_x,self.button_9_y)
        #按钮10
        self.button_10_x=self.button_6_x
        self.button_10_y=self.height()/1.2
        self.button_10.move(self.button_10_x,self.button_10_y)

    def mousePressEvent(self, evt):#鼠标执行
        if evt.button()==Qt.LeftButton:#判断是否为左键执行
            self.Flag=True
            self.mouse_x=evt.globalX()
            self.mouse_y=evt.globalY()
            self.origin_x=self.x()
            self.origin_y=self.y()

    def mouseMoveEvent(self, evt):#鼠标移动
        if self.Flag==True:
            move_x=evt.globalX()-self.mouse_x
            move_y=evt.globalY()-self.mouse_y
            dest_x=self.origin_x+move_x
            dest_y=self.origin_y+move_y
            self.move(dest_x,dest_y)

    def mouseReleaseEvent(self, QMouseEvent):#鼠标释放
        self.Flag=False

    def Play_Mp3_Media(self,Random_Number):#播放音乐
        self.player=QMediaPlayer()
        self.player.setVolume(100)
        self.playlist=QMediaPlaylist()
        self.Path_Name="123.mp3"
        if(Random_Number==1):
            self.Path_Name="1.mp3"
        elif(Random_Number==2):
            self.Path_Name="2.mp3"
        elif(Random_Number==3):
            self.Path_Name="3.mp3"
        elif(Random_Number==4):
            self.Path_Name="4.mp3"
        elif(Random_Number==5):
            self.Path_Name="5.mp3"
        elif(Random_Number==6):
            self.Path_Name="6.mp3"
        elif(Random_Number==7):
            self.Path_Name="7.mp3"
        elif(Random_Number==8):
            self.Path_Name="8.mp3"
        elif(Random_Number==9):
            self.Path_Name="9.mp3"
        elif(Random_Number==10):
            self.Path_Name="10.mp3"
        self.playlist.addMedia(QMediaContent(QUrl.fromLocalFile(self.Path_Name)))
        #self.playlist.setPlaybackMode(QMediaPlaylist.CurrentItemInLoop)#设置循环播放
        self.player.setPlaylist(self.playlist)
        self.videoWidget=QVideoWidget()
        self.palette=QPalette()
        self.palette.setBrush(QPalette.Background,Qt.black)
        self.player.setVideoOutput(self.videoWidget)
        #self.videoWidget.show()#显示窗体
        self.player.play()

    def Left_Mouse_Operation_Evt(self,n):#左边鼠标操作事件
        if(n==self.number):
            self.button_1.setEnabled(False)
            self.button_2.setEnabled(False)
            self.button_3.setEnabled(False)
            self.button_4.setEnabled(False)
            self.button_5.setEnabled(False)
            self.button_6.setEnabled(True)
            self.button_7.setEnabled(True)
            self.button_8.setEnabled(True)
            self.button_9.setEnabled(True)
            self.button_10.setEnabled(True)
            self.number=random.randint(6,10)
            self.Play_Mp3_Media(self.number)
        else:
            self.number=random.randint(1,5)
            self.Play_Mp3_Media(self.number)
    def Right_Mouse_Operation_Evt(self,n):#右边鼠标操作事件
        #print(n,self.number)
        if(n==self.number):
            #QCoreApplication.instance().quit
            quit(0)
        else:
            self.number=random.randint(6,10)
            self.Play_Mp3_Media(self.number)
            #return 0;

    def closeEvent(self, QCloseEvent):#窗体关闭事件
        quit(1)
if __name__=="__main__":
    app=QApplication(sys.argv)
    win=Windows()
    win.show()
    #Play_Mp3_Media(r"125.mp3")

    sys.exit(app.exec_())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值