360的单个标题按钮

#!/usr/bin/python  
#-*-coding:utf-8-*-

from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.Qt import *

class ToolButton(QToolButton):
	def __init__(self,pic_name,parent = None):
		super(ToolButton,self).__init__(parent)
		
		#设置图标
		self.pixmap= QPixmap(pic_name) 
		self.setIcon(QIcon(self.pixmap))
		self.setIconSize(self.pixmap.size())
		#设置大小
		self.setFixedSize(self.pixmap.width()+25, self.pixmap.height()+27)
		self.setAutoRaise(True)
		
		#设置文本颜色
		self.text_palette = QPalette()#palette() QPalette
		self.text_palette.setColor(self.text_palette.ButtonText, QColor(230, 230, 230))
		self.setPalette(self.text_palette)

		#设置文本粗体
		self.text_font = QFont() #QFont & const_cast<QFont &>(font())
		self.text_font.setWeight(QFont.Bold)
		
		#设置字体在下面
		self.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

		self.setStyleSheet("background:transparent")
		
		self.mouse_over  = False#鼠标是否移过
		self.mouse_press = False#鼠标是否按下
		
	def enterEvent(self,event):
		self.mouse_over = True
		self.update()
		
	
	def leaveEvent(self,event):
		self.mouse_over = False
		self.update()
		
	def mousePressEvent(self,event):
		if(event.button() == Qt.LeftButton):		
			self.clicked.emit(True)
			
	def setMousePress(self, mouse_press):
		self.mouse_press = mouse_press
		self.update()
		
	def paintEvent(self,event):
		if(self.mouse_over):
			#绘制鼠标移到按钮上的按钮效果
			self.painterInfo(0, 100, 150)
		else:
			if(self.mouse_press):
				self.painterInfo(0, 100, 150)
		QToolButton.paintEvent(self,event)
		
	def painterInfo(self,top_color,middle_color,bottom_color):
		self.painter = QPainter()
		self.painter.begin(self)
		self.pen = QPen(Qt.NoBrush)
		self.pen.setWidth(1)
		self.painter.setPen(self.pen)
		
		self.linear = QLinearGradient(QPointF(self.rect().topLeft()),QPointF(self.rect().bottomLeft()))
		#self.linear.start()
		self.linear.setColorAt(0, QColor(230, 230, 230, top_color))
		self.linear.setColorAt(0.5, QColor(230, 230, 230, middle_color))
		self.linear.setColorAt(1, QColor(230, 230, 230, bottom_color))
		#self.linear.finalStop()
		
		self.painter.setBrush(self.linear)
		self.painter.drawRect(self.rect()) #
		self.painter.end()

			
if __name__ == '__main__':
	
	
	import sys
	app = QApplication(sys.argv)
	tool = ToolButton("./img/toolWidget/gongNeng.png")
	#tool.setMousePress(True)
	tool.show()
	sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值