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 相关文章推荐
详解Django框架中用context来解析模板的方法
Jul 20 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
python Pandas 读取txt表格的实例
Apr 29 Python
django ajax json的实例代码
May 29 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
Python 堆叠柱状图绘制方法
Jul 29 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
基于keras输出中间层结果的2种实现方式
Jan 24 Python
Django 如何实现文件上传下载
Apr 08 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
如何在PHP中使用Oracle数据库(4)
2006/10/09 PHP
JQuery从头学起第二讲
2010/07/04 Javascript
jquery remove方法应用详解
2012/11/22 Javascript
IE8下Jquery获取select选中的值post到后台报错问题
2014/07/02 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
xmlplus组件设计系列之选项卡(Tabbar)(5)
2017/05/03 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
Vue 一键清空表单的实现方法
2020/02/07 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
深入浅析Python字符编码
2015/11/12 Python
Django实现快速分页的方法实例
2017/10/22 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
2018/04/21 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
django2.0扩展用户字段示例
2019/02/13 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
python生成13位或16位时间戳以及反向解析时间戳的实例
2020/03/03 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
材料物理专业大学毕业生求职信
2013/10/15 职场文书
饮料业务员岗位职责
2013/12/15 职场文书
致百米运动员广播稿
2014/01/29 职场文书
应届毕业生自荐书
2014/06/18 职场文书
二胎满月酒致辞
2015/07/29 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
python图片灰度化处理的几种方法
2021/06/23 Python