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在校内发人人网状态(人人网看状态)
Feb 19 Python
详解常用查找数据结构及算法(Python实现)
Dec 09 Python
Python实现对象转换为xml的方法示例
Jun 08 Python
django在接受post请求时显示403forbidden实例解析
Jan 25 Python
Python中文件的读取和写入操作
Apr 27 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
May 29 Python
解决Pycharm出现的部分快捷键无效问题
Oct 22 Python
django 类视图的使用方法详解
Jul 24 Python
python获取引用对象的个数方式
Dec 20 Python
Python递归函数特点及原理解析
Mar 04 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
Django对接elasticsearch实现全文检索的示例代码
Aug 02 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管理Session的回调函数详解
2013/06/21 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
PHP+Redis开发的书签案例实战详解
2019/07/09 PHP
PHP使用PhpSpreadsheet操作Excel实例详解
2020/03/26 PHP
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
Javascript闭包用法实例分析
2015/01/23 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
Three.js基础学习教程
2017/11/16 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
详解React 元素渲染
2020/07/07 Javascript
python实现2048小游戏
2015/03/30 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python编程嵌套函数实例代码
2018/02/11 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Python3实现获取图片文字里中文的方法分析
2018/12/13 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
python word转pdf代码实例
2019/08/16 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
大四自我鉴定范文
2013/10/06 职场文书
会计应聘求职信范文
2013/12/17 职场文书
大学生个人事迹材料
2014/01/21 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python