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利用Beautiful Soup模块创建对象详解
Mar 27 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
运用Python的webbrowser实现定时打开特定网页
Feb 21 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
Python字节单位转换实例
Dec 05 Python
django的403/404/500错误自定义页面的配置方式
May 21 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
Python logging日志库空间不足问题解决
Sep 14 Python
python基于pygame实现飞机大作战小游戏
Nov 19 Python
Python中Qslider控件实操详解
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
php判断GIF图片是否为动画的方法
2020/09/04 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
父元素与子iframe相互获取变量和元素对象的具体实现
2013/10/15 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
python基于queue和threading实现多线程下载实例
2014/10/08 Python
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
python实现带错误处理功能的远程文件读取方法
2015/04/29 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
Why we need EJB
2016/10/20 面试题
网络文明传播志愿者活动方案
2014/08/20 职场文书
税务干部群众路线教育实践活动对照检查材料
2014/09/20 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技