python实现360皮肤按钮控件示例


Posted in Python onFebruary 21, 2014
#!/usr/bin/python  
#-*-coding:utf-8-*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.Qt import *
class ChangeSkinWidget(QWidget):
 def __init__(self,parent = None):
  super(ChangeSkinWidget,self).__init__(parent)
  self.setFixedSize(140, 160)
  self.mouse_press = False
  self.mouse_enter = False
  #self.pixmap = QPixmap()
  self.pixmap_name = ""
  self.skin_label =  QLabel() #显示皮肤
  self.skin_name_label =  QLabel() #显示皮肤名称
  self.download_count_label =  QLabel() #显示下载次数
  self.use_skin_button =  QPushButton() #使用此皮肤按钮
  self.setCursor(Qt.PointingHandCursor)
  self.use_skin_button.setStyleSheet("border-radius:3px border:1px solid rgb(180, 190, 200) color:rgb(70, 70, 70) background:transparent")
  self.skin_label.setScaledContents(True)
  self.skin_label.setFixedSize(100, 65)
  self.use_skin_button.setFixedSize(85, 25)
  self.background_layout =  QVBoxLayout()
  self.background_layout.addWidget(self.skin_label, 0, Qt.AlignCenter)
  self.background_layout.addWidget(self.skin_name_label, 0, Qt.AlignCenter)
  self.background_layout.addWidget(self.download_count_label, 0, Qt.AlignCenter)
  self.background_layout.addWidget(self.use_skin_button, 0, Qt.AlignCenter)
  self.background_layout.setSpacing(5)
  self.background_layout.setContentsMargins(0, 10, 0, 10)
  self.setLayout(self.background_layout)
  self.skin.connect(self.changeSkin)
  self.translateLanguage()
 skin = pyqtSignal()
 def changeSkin(self, pixmap_name,  skin_name,  download_count):
  self.background_name = pixmap_name + "_big.png"
  self.pixmap_name = self.background_name
 #更改皮肤背景
  #self.pixmap()
  self.skin_label.setPixmap(QPixmap(self.background_name))
 #更改皮肤名称
  self.skin_name_label.setText(skin_name)
 #更改下载次数
  self.download_count_label.setText(u"download count:" + download_count)
 def translateLanguage(self):
  self.use_skin_button.setText(u"use skin")
 def paintEvent(self,event):
  if(self.mouse_enter):
   #绘制边框
   painter = QPainter(self)
   pen = QPen(QColor(210, 225, 230))
   painter.setPen(pen)
   painter.drawRoundRect(0,0,self.width()-1, self.height()-1, 5, 5)
 def mousePressEvent(self,event):
  #只能是鼠标左键移动和改变大小
  if(event.button() == Qt.LeftButton):
   self.mouse_press = True
   self.emit(SIGNAL("skin"),self.pixmap_name)
 def mouseReleaseEvent(self,event):
  self.mouse_press = False
 def enterEvent(self,event):
  self.mouse_enter = True
  self.update()
 def leaveEvent(self,event):
  self.mouse_enter = False
  self.update()
if __name__ == '__main__':
 import sys
 app = QApplication(sys.argv)
 skin = ChangeSkinWidget()
 skin.show()
 sys.exit(app.exec_())
Python 相关文章推荐
Python中实现结构相似的函数调用方法
Mar 10 Python
python虚拟环境virualenv的安装与使用
Dec 18 Python
Python实现的弹球小游戏示例
Aug 01 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
Python实现的文本对比报告生成工具示例
May 22 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
简单了解Python读取大文件代码实例
Dec 18 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
Jan 08 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
Jun 14 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 Python
django上传文件的三种方式
Apr 29 Python
python实现360的字符显示界面
Feb 21 #Python
python和pyqt实现360的CLable控件
Feb 21 #Python
python使用7z解压软件备份文件脚本分享
Feb 21 #Python
python发布模块的步骤分享
Feb 21 #Python
python列表操作使用示例分享
Feb 21 #Python
使用python统计文件行数示例分享
Feb 21 #Python
python 多进程通信模块的简单实现
Feb 20 #Python
You might like
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
2015/08/06 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
vue-star评星组件开发实例
2018/03/01 Javascript
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
python检测lvs real server状态
2014/01/22 Python
更改Python命令行交互提示符的方法
2015/01/14 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
2019/08/05 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
python利用faker库批量生成测试数据
2020/10/15 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
大学系主任推荐信范文
2013/12/24 职场文书
母亲追悼会答谢词
2014/01/27 职场文书
个人自我评价范文
2014/02/05 职场文书
美术教学感言
2014/02/22 职场文书
会议室标语
2014/06/21 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
安全员岗位职责范本
2015/04/11 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP