python实现360皮肤按钮控件示例
#!/usr/bin/python
#-*-coding:utf-8-*-
fromPyQt4.QtGuiimport*
fromPyQt4.QtCoreimport*
fromPyQt4.Qtimport*
classChangeSkinWidget(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:3pxborder:1pxsolidrgb(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()
defchangeSkin(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"downloadcount:"+download_count)
deftranslateLanguage(self):
self.use_skin_button.setText(u"useskin")
defpaintEvent(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)
defmousePressEvent(self,event):
#只能是鼠标左键移动和改变大小
if(event.button()==Qt.LeftButton):
self.mouse_press=True
self.emit(SIGNAL("skin"),self.pixmap_name)
defmouseReleaseEvent(self,event):
self.mouse_press=False
defenterEvent(self,event):
self.mouse_enter=True
self.update()
defleaveEvent(self,event):
self.mouse_enter=False
self.update()
if__name__=="__main__":
importsys
app=QApplication(sys.argv)
skin=ChangeSkinWidget()
skin.show()
sys.exit(app.exec_())
相关文章
- 【Python矩阵转置】| 试使用多方法实现[通俗易懂]
- python的random()函数用法_Python随机函数random用法示例
- python实现矩阵转置的几种方法
- Python 敏感词过滤的实现「建议收藏」
- python敏感词过滤replace_python用类实现文章敏感词的过滤方法示例
- java和python哪个值得学-学java好还是Python好?
- 【说站】python如何实现初始化执行一次
- python上的表白代码_用Python实现表白代码
- python win32api sendmessage_Python win32api.SendMessage方法代码示例[通俗易懂]
- python程序化交易实例-用 Python 实现你的量化交易策略「建议收藏」
- 数据结构与算法Python_数据结构与算法python语言实现
- Python 实现子域名查询与爆破
- 使用python实现MySQL表结构比对【初级版】
- python-Python与PostgreSQL数据库-PostgreSQL数据库的基本知识(一)
- python通过reportlab实现图片转换pdf详解编程语言
- Python 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)详解编程语言
- python实现AutoResetEvent类的阻塞模式方法解析
- python搭建简易服务器分析与实现
- python实现ftp客户端示例分享
- python实现k均值算法示例(k均值聚类算法)
- 使用python实现strcmp函数功能示例
- python实现定制交互式命令行的方法