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抽象基类用法实例分析
Jun 04 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
Python 对象中的数据类型
May 13 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
对python中执行DOS命令的3种方法总结
May 12 Python
python中的变量如何开辟内存
Jun 26 Python
在python中画正态分布图像的实例
Jul 08 Python
Python脚本去除文件的只读性操作
Mar 05 Python
python的reverse函数翻转结果为None的问题
May 11 Python
了解一下python内建模块collections
Sep 07 Python
关于python中导入文件到list的问题
Oct 31 Python
关于Python中*args和**kwargs的深入理解
Aug 07 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实现mysql数据库备份类
2008/03/20 PHP
关于PHP中Object对象的笔记分享
2011/06/28 PHP
php调用C代码的实现方法
2014/03/11 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
Yii中表单用法实例详解
2016/01/05 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
2020/03/24 PHP
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
3分钟学会一个Python小技巧
2018/11/23 Python
Python的高阶函数用法实例分析
2019/04/11 Python
python双向链表原理与实现方法详解
2019/12/03 Python
深入分析python 排序
2020/08/24 Python
python爬取抖音视频的实例分析
2021/01/19 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
求网格中的黑点分布
2013/11/06 面试题
个性大学生自我评价
2013/12/04 职场文书
求职自荐信
2013/12/14 职场文书
大学生职业生涯规划范文——找准自我,定位人生
2014/01/23 职场文书
材料化学专业求职信
2014/07/15 职场文书
毕业典礼邀请函
2015/01/31 职场文书
少先队大队委竞选口号
2015/12/25 职场文书