pyqt5 写一个功能齐全的音乐播放器(第三章)

pyqt5 写一个功能齐全的音乐播放器<<第三章>>

概要

这一章会写设定功能,写一个弹窗,并会导出一个设定文件,每次读取之前会加载设定上的项目,然后再搞搞杂项,不算水啦,内容还是有的

写一个弹窗

其实在实现之前咱就说一下其实是打开dialog类的窗口,其他的没试过,也没必要非要纠结怎么打开一个widget,一个mainwindow

首先画一个dialog

在这里插入图片描述
嘿嘿,有意思吧,不过,等化器我还在找资料,如果找到的话以后再补上吧

代码部分:

把刚才那个settings的ui 转一下py
然后把它贴到 主窗口代码里面,当然 你也可以 from settings import *
在主窗口(这里名字叫uiform)那里写一个函数

def opendialogwin(self):
        
        dialog=QDialog()
        dialog.ui = Settings()
        dialog.ui.setupUi(dialog)
        
        dialog.show()
        dialog.exec_()

基本只需要记住之后打开dialog就这么写就行,其实就是创建一个实例>使用函数setupui来构建ui ,show()显示,exec_()执行

然后写一下 关闭后执行设置

def opendialogwin(self):
        
        dialog=QDialog()
        # self.t1.stop()
        # self.t1.deleteLater()
        dialog.ui = Settings()
        
        dialog.ui.setupUi(dialog)
        dialog.closeEvent=self.closeevent#看这里看这里看这里看这里
        dialog.show()
        dialog.exec_()

self.closeevent

def closeevent(self,event):
        self.config.read('settings.ini')
        pic,saver,skin,down='0','0','0','0'
        if "pic" in self.config['DEFAULT']:
            pic=self.config['DEFAULT']['pic']
        if "saver" in self.config['DEFAULT']:
            saver=self.config['DEFAULT']['saver']
        if "skinconfig" in self.config['DEFAULT']:
            skin=self.config['DEFAULT']['skinconfig']
        if "downpath" in self.config['DEFAULT']:
            down=self.config['DEFAULT']['downpath']
        if pic!='0':
            self.picchange(self.config['DEFAULT']['pic'])
        if saver!='0':        
            self.scrsaver(self.config['DEFAULT']['saver'])
        if skin!='0':
            pass#皮肤之后会讲,大家不要着急
        
        if down!='0':
            pass#涉及有些音乐下载功能已经烂大街基本照抄了,
                # 所以爬虫那块我不会讲,但其实有地方直接抄,
                # 这提示已经很够了....
                # 会在之后简单带一下selenium

此课只是简单演示一下图片显示,其他就让我下一章一个个实现吧

其实就是用的python 的 configparser来实现设置的,暂时咱就只搞default一套下来就完了,之后要是要做多个设置有机会也可以搞细点,问题不大

注意的是closeevent 函数是必须要有event这个变量的

这里的功能就是检查设置文件里有没有这些选项而已

上代码:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file '1.ui'
#
# Created by: PyQt5 UI code generator 5.15.7
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtCore import QTimer,QDateTime
import time

from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QHBoxLayout, QVBoxLayout, QPushButton, QLineEdit,QDialog,QFileDialog
from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem, QLabel
from PyQt5.QtWidgets import QMessageBox, QMenu
import sqlite3


# from PyQt5 import QtCore, QtGui, QtWidgets,Qt
# from PyQt5.QtWidgets import QFileDialog,QListWidgetItem,QAbstractItemView,QGraphicsItem, QGraphicsPixmapItem,QGraphicsScene, QGraphicsView,QLabel,QTableWidgetItem,QApplication,QComboBox
# from PyQt5.QtCore import QTimer,QStringListModel,QSize,QObject,pyqtSignal,QThread,QUrl
from PyQt5.QtGui import QPixmap,QFont,QIcon
# from PyQt5.QtWebEngineWidgets import *
import os
import random,time
from pygame import mixer
from mutagen.mp3 import MP3
# import style
# import pymysql
# from netmusicsearch import *
import requests
# from dler import *
# from lyric import *
import music_tag

from datetime import timedelta

import configparser
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'c:\Users\user\Documents\new musicplayer\settings.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.



from PyQt5.QtCore import QObject , pyqtSignal
class Settings(QDialog):

    def setupUi(self, Form):

        Form.setObjectName("Form")
        Form.resize(389, 352)
        self.label = QtWidgets.QLabel(Form)
        self.label.setGeometry(QtCore.QRect(10, 20, 54, 12))
        self.label.setObjectName("label")
        self.label_3 = QtWidgets.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(10, 220, 54, 12))
        self.label_3.setObjectName("label_3")
        self.label_5 = QtWidgets.QLabel(Form)
        self.label_5.setGeometry(QtCore.QRect(10, 100, 54, 12))
        self.label_5.setObjectName("label_5")
        self.label_7 = QtWidgets.QLabel(Form)
        self.label_7.setGeometry(QtCore.QRect(10, 160, 54, 12))
        self.label_7.setObjectName("label_7")
        self.picbox = QtWidgets.QCheckBox(Form)
        self.picbox.setGeometry(QtCore.QRect(10, 40, 91, 16))
        self.picbox.setObjectName("picbox")
        self.websearch = QtWidgets.QCheckBox(Form)
        self.websearch.setGeometry(QtCore.QRect(190, 40, 71, 16))
        self.websearch.setObjectName("websearch")
        self.visual = QtWidgets.QCheckBox(Form)
        self.visual.setGeometry(QtCore.QRect(100, 40, 81, 16))
        self.visual.setObjectName("visual")
        self.normalmode = QtWidgets.QCheckBox(Form)
        self.normalmode.setGeometry(QtCore.QRect(140, 70, 71, 16))
        self.normalmode.setObjectName("normalmode")
        self.minimode = QtWidgets.QCheckBox(Form)
        self.minimode.setGeometry(QtCore.QRect(50, 70, 71, 16))
        self.minimode.setObjectName("minimode")
        self.picpath = QtWidgets.QLineEdit(Form)
        self.picpath.setGeometry(QtCore.QRect(10, 120, 113, 20))
        self.picpath.setObjectName("picpath")
        self.picimp = QtWidgets.QPushButton(Form)
        self.picimp.setGeometry(QtCore.QRect(130, 120, 75, 23))
        self.picimp.setObjectName("picimp")
        self.picfolder = QtWidgets.QLineEdit(Form)
        self.picfolder.setGeometry(QtCore.QRect(10, 180, 113, 20))
        self.picfolder.setObjectName("picfolder")
        self.fldimp = QtWidgets.QPushButton(Form)
        self.fldimp.setGeometry(QtCore.QRect(130, 180, 75, 23))
        self.fldimp.setObjectName("fldimp")
        self.skimp = QtWidgets.QPushButton(Form)
        self.skimp.setGeometry(QtCore.QRect(130, 240, 75, 23))
        self.skimp.setObjectName("skimp")
        self.skinpath = QtWidgets.QLineEdit(Form)
        self.skinpath.setGeometry(QtCore.QRect(10, 240, 113, 20))
        self.skinpath.setObjectName("skinpath")
        self.label_2 = QtWidgets.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(10, 280, 71, 16))
        self.label_2.setObjectName("label_2")
        self.downloadpath = QtWidgets.QLineEdit(Form)
        self.downloadpath.setGeometry(QtCore.QRect(10, 300, 113, 20))
        self.downloadpath.setObjectName("downloadpath")
        self.downimp = QtWidgets.QPushButton(Form)
        self.downimp.setGeometry(QtCore.QRect(130, 300, 75, 23))
        self.downimp.setObjectName("downimp")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
    
    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.label.setText(_translate("Form", "功能显示:"))
        self.label_3.setText(_translate("Form", "皮肤:"))
        self.label_5.setText(_translate("Form", "导入图片"))
        self.label_7.setText(_translate("Form", "幻灯片:"))
        self.picbox.setText(_translate("Form", "图片/幻灯片"))
        self.websearch.setText(_translate("Form", "网上搜索"))
        self.visual.setText(_translate("Form", "音乐可视化"))
        self.normalmode.setText(_translate("Form", "一般模式"))
        self.minimode.setText(_translate("Form", "迷你模式"))
        self.picimp.<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值