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编程中对文件和存储器的读写示例
Jan 25 Python
python基础while循环及if判断的实例讲解
Aug 25 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
python递归法实现简易连连看小游戏
Mar 25 Python
Python 合并多个TXT文件并统计词频的实现
Aug 23 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
python实现猜数游戏
Mar 27 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
Python求凸包及多边形面积教程
Apr 12 Python
python的setattr函数实例用法
Dec 16 Python
TensorFlow2.0使用keras训练模型的实现
Feb 20 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
德生PL990的分析评价
2021/03/02 无线电
php array_slice函数的使用以及参数详解
2008/08/30 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
Perl Substr()函数及函数的应用
2015/12/16 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
2016/07/22 Javascript
第一次接触神奇的Bootstrap导航条
2016/08/09 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
JS封装的选项卡TAB切换效果示例
2016/09/20 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
2017/09/18 Javascript
ES6解构赋值实例详解
2017/10/31 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
微信小程序实现笑脸评分功能
2018/11/03 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
python3实现微型的web服务器
2019/09/03 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Python中BeautifulSoup通过查找Id获取元素信息
2020/12/07 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
美术学专业求职信
2014/07/23 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
python实现简易自习室座位预约系统
2021/06/30 Python
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记