使用PyQt4制作一个音乐播放器(1)

2023-05-16

1.前言

  最近用Python给老妈写了一个处理excel表格的小软件,因为自己平时用Python一般都是用在数值计算领域,所以一般使用命令行的方式交互即可。但是给老妈用发现用命令行交互方式使用并不是很方便,于是寻思能不能做个GUI的界面,这样只需通过鼠标即可完成所有操作。
  搜索了一下发现用Python开发GUI界面可以用到的库有Tk、PyQt及wxPython等,其中PyQt可以直接使用Qt Designer生成界面,比较便利。于是决定选用PyQt开发界面。目前PyQt有PyQt4和PyQt5两个版本,分别对应Qt4和Qt5。因为自己平时写代码多用Python2.7,而PyQt5目前只有支援Python3.4的版本,所以最终选择了PyQt4完成任务。
  为了巩固所学到的知识,决定用PyQt4写一个音乐播放器并将步骤详细的记录下来。

2.开发环境的搭建

  假设已经安装好了Python2.7,可以从PyQt的官网下载所需的源码以及相应的设计工具。我下载的是PyQt4-4.11.4-gpl-Py2.7-Qt4.8.7-x32.exe。安装完成后可以运行以下代码。
  

# -*- coding: utf-8 -*-
from PyQt4.QtGui import *
import sys

app = QApplication(sys.argv)
button = QPushButton("Hello World!")
button.show()
app.exec_()

即可得到一个最简单的窗口应用。运行结果如下,包含一个名叫Hello World!的按钮。
一个最简单的界面

3.将PyQt与Pycharm相结合

  Pycharm是一款优秀的python IDE工具,具有很完善的代码提示等功能,可以在这里下载免费的Community版。完成安装后打开软件, 选择File –> Settings –> Tools –> External Tools –> 单击“ADD”(加号图标) –> 弹出对话框,做如下设置:
1. 添加Qt designer工具,Work directory 使用变量

$ ProjectFileDir $

添加Qt designer
2. 添加PyUIC,用于将Qt designer生成的UI文件转换成python代码,其中parameters填入的是C:\Python27\Lib\site-packages\PyQT4\uic\pyuic.py $FileName$ -o $FileNameWithoutExtension$.py注意前半部分替换成自己的python路径。
添加PyUIC

4.利用Qt designer设计界面

  在本文的最后,我们将利用Qt designer设计一个简单的界面并将其整合到我们自己的代码中去。
  如果你已经按照上文安装了pycharm并完成了配置,新建工程后选择Tools –> External Tools –> PyQt4即可打开Qt designer。我们新建一个diolog without buttons,在界面上放置一个名叫退出的按钮,如下图:界面
  然后切换到信号与槽编辑界面,左击鼠标从按钮拖动至空白界面处,添加一个信号/槽如图,其中左边的clicked()代表按下button这一信号,右边的close()代表接收到clicked信号后做出的反应,即退出程序。关于信号与槽更详细的介绍请查阅官方文档。
  添加信号与槽

  点击确定后保存文件,命名为demo1。至此我们完成了界面部分的设计,接下去我们将.ui文件利用pyuic转换成python代码并在程序中调用。在pycharm中右击demo1.ui,选择External tools中的pyuic,即可看到当前目录下生成了demo1.py的文件。此时我们刚才设计的界面已经转换成了python代码。
  新建一个python文件,输入以下代码:
  

# -*- coding: utf-8 -*-
import sys
from PyQt4.QtGui import *
import demo1


class Demo(QDialog, demo1.Ui_Dialog):
    def __init__(self, parent=None):
        super(Demo, self).__init__(parent)
        self.setupUi(self)


app = QApplication(sys.argv)
dialog = Demo()
dialog.show()
app.exec_()

运行后,点击退出按钮,即可退出运行。

5.小结

  作为本系列的第一篇文章,简要介绍了一下python下可选用的gui库及pyqt+pycharm编程环境的搭建。然后介绍了如何利用qt designer简化界面的设计流程。从下一篇文章开始我们将正式开始制作我们的音乐播放器。


  最后给我的博客柚子酱的博客https://yzjam.com 打一个小广告,这个博客是我基于Django&Bootstrap制作的,欢迎大家的到访。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用PyQt4制作一个音乐播放器(1) 的相关文章

  • ubuntu下PyCharm遇到问题

    第三方库没有自动补全功能 xff08 autocomplete xff09 190921补充 xff1a 这个问题就是环境配置的问题当初真是无知 原因 xff1a PyCharm的人工编译环境和程序的运行环境不是同一个 xff08 说的太不
  • 用java简单的实现单链表的基本操作

    此代码仅供参考 xff0c 如有疑问欢迎评论 xff1a package com tyxh link 节点类 public class Node protected Node next 指针域 protected int data 数据域
  • 算法:海量日志数据,提取出某日访问百度次数最多的那个IP

    首先是这一天 xff0c 并且是访问百度的日志中的IP取出来 xff0c 逐个写入到一个大文件中 注意到IP是32位的 xff0c 最多有个2 32个IP 同样可以采用映射的方法 xff0c 比如模1000 xff0c 把整个大文件映射为1
  • 使用JUnit测试预期异常

    开发人员常常使用单元测试来验证的一段儿代码的操作 xff0c 很多时候单元测试可以检查抛出预期异常 expected exceptions 的代码 在Java语言中 xff0c JUnit是一套标准的单元测试方案 xff0c 它提供了很多验
  • BlockingQueue深入分析

    1 BlockingQueue 定义的常用方法如下 抛出异常特殊值阻塞超时插入add e offer e put e offer e time unit 移除remove poll take poll time unit 检查element
  • 聚合类新闻客户端产品功能点详情分析

    产品功能点 功能 今日头条 百度新闻 鲜果 ZAKER 媒体订阅 个性化内容推荐 个性化订阅 RSS 视频新闻 评论盖楼 搜索新闻 离线下载 地方新闻 一键分享 收藏 推送 天气 夜间模式 线上活动 主题设置 感兴趣 语音读文章 字体设置
  • 聚合类新闻客户端初体验

    初体验的产品 xff1a 今日头条 ios3 6 百度新闻 ios4 4 0 ZAKER ios4 4 5 鲜果 ios3 8 7 中搜搜悦 ios4 0 1 Flipboard ios2 3 9 1 Flipboard 一款国外很火的ap
  • 聚合类新闻客户端的改进

    zaker和鲜果是最早的聚合类新闻产品 xff0c 前几年发展很快 xff0c 迅速占领了市场 xff0c 但近两年发展变得缓慢 xff0c 而今日头条自发布以来才两年 xff0c 用户量就迅速超过了zaker和鲜果 xff0c 使用起来非
  • 单例模式优缺点

    主要优点 xff1a 1 提供了对唯一实例的受控访问 2 由于在系统内存中只存在一个对象 xff0c 因此可以节约系统资源 xff0c 对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能 3 允许可变数目的实例 主要缺点 xff
  • 适配器模式优缺点

    优点 xff1a 1 将目标类和适配者类解耦 2 增加了类的透明性和复用性 xff0c 将具体的实现封装在适配者类中 xff0c 对于客户端类来说是透明的 xff0c 而且提高了适配者的复用性 3 灵活性和扩展性都非常好 xff0c 符合开
  • Oracle 的 Round函数

    Round函数用法 xff1a 截取数字 格式如下 xff1a ROUND xff08 number decimals xff09 其中 xff1a number 待做截取处理的数值 decimals 指明需保留小数点后面的位数 可选项 x
  • Ubuntu安装卸载软件

    VMware 1 首先 xff0c 官网下载 vmware 虚拟机 2 转到下载目录下 给vmware升权限 sudo chmod 43 x VMware Workstation Full 15 1 0 13591040 x86 64 bu
  • eclipse报错:Failed to load the JNI shared library

    电脑自装系统以来 xff0c 好久没有写java代码了 xff0c 所以一直也没用 eclipse IDE xff0c 今天将eclipse打开 xff0c 报了个问题 xff0c Failed to load the JNI shared
  • ACM 鸡兔同笼 线性代数linear algebra

    想模仿线性代数变化的步骤写程序但总感觉失去了灵魂 java Scanner sc 61 new Scanner System in int head 61 sc nextInt int leg 61 sc nextInt int arr 6
  • 使用Example_where_Cause出现 Column 'goods_id' in where clause is ambiguous解决办法

    改写SSM项目https www bilibili com video BV18J411k7SF from 61 search amp seid 61 7715680395343362130出现 Column 39 goods id 39
  • 在CLI中打印表格----gotable使用介绍

    目录 介绍 获取gotable 在github中获取 下载源码 git clone go mod API 创建table 从结构体中创建空table 获取版本信息 获取版本列表 打印表格 给表格添加行 给表格添加多个行 给表格添加列 介绍
  • 抽象类和普通类

    包含抽象方法的类称为抽象类 xff0c 但并不意味着抽象类中只能有抽象方法 xff0c 它和普通类一样 xff0c 同样可以拥有成员变量和普通的成员方法 注意 xff0c 抽象类和普通类的主要有三点区别 xff1a 1 抽象方法必须为pub
  • 优化器(Optimizer)(SGD、Momentum、AdaGrad、RMSProp、Adam)

    文章目录 3 1 传统梯度优化的不足 BGD SGD MBGD 3 1 1 一维梯度下降3 1 2 多维梯度下降 3 2 动量 Momentum 3 3 AdaGrad算法3 4 RMSProp算法3 5 Adam算法 优化器在机器学习 深
  • ViewBinding绑定布局

    最近这段时间在学习Kotlin xff0c 突然发现谷歌已经把kotlin android extensions插件废弃 xff0c 目前推荐使用ViewBinding来进行替代 xff0c 接下来通过本文给大家分享Android使用Vie
  • element-ui更改图标icon大小

    element ui改变icon大小 在template里面加入div lt div class 61 34 change icon 34 gt lt i class 61 34 el icon switch button 34 gt lt

随机推荐