使用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) 的相关文章

  • [Qt入门篇]8 Qt的属性系统——总结

    QT常用的属性READ WRITE MEMBER NOTIFY RESET 1 QObject子类中使用Q PROPERTY宏声明属性 xff1b 2 Q PROPERTY宏中不能使用逗号 xff08 xff0c xff09 xff0c 只
  • [GIT] git打标签tag和分支branch的区别

    tag代表了当前的提交点 xff0c 是个点 xff0c tag是当前提交点的一个记录 xff0c tag名字是不能重复的 xff0c 就代表了唯一的这个点 branch代表里新的支线 xff0c 是个线 xff0c 可以继续延展 当在某个
  • 从社区贡献者到加入核心团队,开源给他带来了这些变化

    作者 尔悦 采访嘉宾 谭雪峰 就在今年六月份 xff0c 又一位社区Contributor成功入职涛思数据 xff0c 他的身份也从TDengine的社区贡献者转变为专职的研发人员 在身份变换的同时 xff0c 他对于自身的成长和发展 对于
  • quartus Ⅱ 12.1 使用教程(4) uart 测试

    开发板使用的是EP4CE15F23C8 xff0c 软件使用的是quartus 12 1 xff0c 工程实现的功能是使用uart进行回环测试 顶层 module uart test i clk i rst n rx tx input i
  • WebRTC音视频同步

    这两篇文章 xff0c 可以直接去看 xff1b WebRTC音视频同步机制实现分析 https www jianshu com p 3a4d24a71091 WebRTC音视频同步分析 https blog csdn net lincai
  • qemu 虚拟机和宿主机之间传输文件

    实现简单的虚拟机和宿主机之间的文件传输 使用dd创建一个文件 xff0c 作为虚拟机和宿主机之间传输桥梁 dd if 61 dev zero of 61 opt share img bs 61 1M count 61 200格式化share
  • apt update和apt upgrade命令 - 有什么区别?

    在之前的文章中 xff0c 我们查看了APT 命令以及您可以使用包管理器来管理包的各种方法 这是一个总体概述 xff0c 但在本指南中 xff0c 我们暂停并重点关注 2 个命令用法 这些是apt update和apt upgrade命令
  • 48 个 Linux 面试问题和答案

    你在准备 Linux 面试吗 xff1f 我们准备了一些常见的 Linux 面试问题及其答案 如果您是初学者 xff08 具有一定的 Linux 知识或获得认证 xff09 或具有专业的 Linux 管理经验 xff0c 那么下面的问答有助
  • linux服务篇-Xinetd服务

    Xinetd 61 eXtended InterNET services daemon 扩展互联网服务守护进程 61 超级互联网守护进程 61 超级服务 xff0c xinetd是新一代的网络守护进程服务程序 xff0c 又叫超级Inter
  • 内参、外参、畸变参数三种参数与相机的标定方法与相机坐标系的理解

    https blog csdn net yangdashi888 article details 51356385 1 相机参数是三种不同的参数 相机的内参数是六个分别为 xff1a 1 dx 1 dy r u0 v0 f u0 v0为图像
  • C语言中的__FILE__、__LINE__和#line

    原文链接 xff1a http hi baidu com 419836321 blog item fcf5ceec484681cfb31cb1f7 html C语言中的 FILE 用以指示本行语句所在源文件的文件名 xff0c 举例如下 x
  • PX4 SITL MAVROS速度控制-用机身坐标系发布速度

    不改变PX4控制双闭环源码 xff0c 仅依靠mavros现有的速度控制和位置控制话题 xff0c 来实现旋翼圆形轨迹 1 位置控制 xff1a mavros setpoint position local 优点 xff1a 位置准确 xf
  • 用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
  • Qt对directshow的封装

    在源码路径中 xff1a qt everywhere opensource src 5 1 1 qtmultimedia src plugins directshow xff0c 有两个文件夹player 和 camera xff0c 1
  • 聚合类新闻客户端产品功能点详情分析

    产品功能点 功能 今日头条 百度新闻 鲜果 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
  • eclipse报错:Failed to load the JNI shared library

    电脑自装系统以来 xff0c 好久没有写java代码了 xff0c 所以一直也没用 eclipse IDE xff0c 今天将eclipse打开 xff0c 报了个问题 xff0c Failed to load the JNI shared
  • 10串口通信

    51单片机学习记录10 通信通信的的基本概念串口参数及时序图常用通信接口比较 51单片机串口介绍串口通信简介串口内部结构串口通信相关寄存器 串口通信实验串口向计算机发送数据计算机通过串口控制LED 通信 通信的的基本概念 通信的方式 通信方
  • 【已解决】zookeeper配置出现问题合集

    已解决 zookeeper配置出现问题合集 1 问题诊断 日志2 问题解决合集2 1zookeeper集群搭建报错 拒绝连接 2 2zookeeper集群搭建报错 没有找到主机路由 1 问题诊断 日志 1 进入文件查看日志 xff1a zo
  • noVNC 安装、配置与使用

    最近项目中使用到了远程终端操控 xff0c 从各方找到了noVNC这个神奇的家伙 xff0c 废话不多说 xff0c 开始介绍它的安装配置与使用 1 下载noNVC 好多渠道可以下载到noVNC xff0c 可以直接访问noVNC的官方网页
  • 360极速浏览器网页保护色

    方法一 xff1a 360浏览器的 扩展中心 有一个 绿色眼睛 的插件 xff1b 但是感觉一般 xff0c 不够彻底 xff1b 方法二 xff1a 360急速浏览器是基于开源Chrome浏览器修改的 xff0c 所以可以直接用Chrom
  • STM32基于FreeRTOS的多任务程序案例

    STM32基于FreeRTOS的多任务程序案例 一 初步了解FreeRTOS二 实验要求三 基于FreeRTOS的多任务程序案例四 参考链接 使用工具 野火stm32mini开发板 Keil uVision5 野火多功能调试助手 一 初步了
  • 【TcaplusDB知识库】TcaplusDB刷新tbus通道介绍

    命令 xff1a RefreshBusCfg 其中 xff0c 指进程的进程id xff0c 比如1 2 2 2 1 2 1 2等 xff0c 也支持简单的正则表达式 xff0c 比如RefreshBusCfg 1 2 2 那么只要匹配到1
  • Python中下划线的5种含义

    作者 xff1a 地球的外星人君 链接 xff1a https zhuanlan zhihu com p 36173202 来源 xff1a 知乎 著作权归作者所有 商业转载请联系作者获得授权 xff0c 非商业转载请注明出处 分享一篇文章
  • ubuntu下 安装PX4编译环境

    最近博主的ubuntu虚拟机再次崩溃 xff0c 狠下决心将4G内存升级为12G 这样就可以给虚拟机多分配些内存了 鉴于前两次安装PX4环境出现了很多错误 xff0c 走了很多弯路 xff0c 没有一一记录下来 xff0c 所获甚少 故而借
  • PX4原生固件,position_estimator_inav解读

    INAV integrated navigation组合导航 对于多旋翼的位置姿态估计系统 xff1a PX4原生固件如今已经默认使用EKF2了 xff0c 另一种情况是 使用local position estimator attitud
  • FusionCharts Free (FCF) 版本 v3.0 更新细节

    版本 v3 0 更新细节 1 新的图表类型 滚动图 柱二维 xff0c 二维和区系的二维 xff0c 堆栈柱二维 xff0c 二维结合 xff0c 结合二维 xff08 双 Y 轴 xff09 样图 样条区域图 对数坐标图 二维多图单 组合
  • dwm-1000 测距总是出现 #define SYS_STATUS_RXPTO 0x00200000UL /* Preamble detection timeout */

    ex 05b ds twr resp 程序 总是出现 致使官方的代码 无法实现通讯 define SYS STATUS RXPTO 0x00200000UL Preamble detection timeout 需要着重修改参数
  • VNC远程桌面到linux,提示connection refused(10061)解决办法

    确认server端的VNC服务开启 xff0c service vncserver start xff0c 检测状态时ok的 ps ef grep vnc xff0c 来查看不是已经开启多个vnc连接 如果有多个vnc连接 xff0c 使用
  • uio驱动框架

    核心 xff0c 利用mmap进行映射 参考资料 uio 编写实例 1 https blog csdn net wujiangguizhen article details 12453253 uio编写实例 2 https blog csd
  • enum类型被intent所携带时需要注意的地方

    一般我们在Activity之间传递对象时多用Parcelable 比如写一个class xff0c 在这个class上标明implements Parcelable并实现接口就可以用Intent putExtra String Parcel
  • dump文件,windbg

    dump文件 xff0c 在VC中的调试还是非常非常非常有用的 xff0c 因为我们也不会经每一行代码都加上日志 xff0c 当然如果你愿意 xff0c 也可以每一行都加上日志 xff1b 在Windows上 xff0c 添加dump文件有
  • 使用PyQt4制作一个音乐播放器(1)

    1 前言 最近用Python给老妈写了一个处理excel表格的小软件 xff0c 因为自己平时用Python一般都是用在数值计算领域 xff0c 所以一般使用命令行的方式交互即可 但是给老妈用发现用命令行交互方式使用并不是很方便 xff0c