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实现在目录中查找指定文件的方法
Nov 11 Python
python optparse模块使用实例
Apr 09 Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 Python
python实现文本去重且不打乱原本顺序
Jan 26 Python
Python中存取文件的4种不同操作
Jul 02 Python
python实现Flappy Bird源码
Dec 24 Python
对python_discover方法遍历所有执行的用例详解
Feb 13 Python
python实现诗歌游戏(类继承)
Feb 26 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
详解Python文件修改的两种方式
Aug 22 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
Jan 03 Python
2020版Python学习路线图(附学习资料)
Sep 15 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 判断字符串中是否包含html标签
2014/02/17 PHP
PHP基本语法总结
2014/09/06 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
node.js中的path.join方法使用说明
2014/12/08 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
JS中利用localStorage防止页面动态添加数据刷新后数据丢失
2017/03/10 Javascript
基于JavaScript实现前端数据多条件筛选功能
2020/08/19 Javascript
python实现类的静态变量用法实例
2015/05/08 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
Python3生成手写体数字方法
2018/01/30 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Python简单I/O操作示例
2019/03/18 Python
python和c语言的主要区别总结
2019/07/07 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
html5+css如何实现中间大两头小的轮播效果
2018/12/06 HTML / CSS
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
OSPF有什么优点?为什么OSPF比RIP收敛快?
2013/02/13 面试题
会计电算化专业应届大学生求职信
2013/10/22 职场文书
班班通项目实施方案
2014/02/25 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
演讲开场白和结束语
2015/05/29 职场文书
2015年暑假工作总结
2015/07/13 职场文书
校长新学期致辞
2015/07/30 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript