您的位置:首页 > 其它

实现QQ抽屉效果

2015-05-15 10:28 465 查看


代码:

#coding: utf-8
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

QTextCodec.setCodecForTr(QTextCodec.codecForName("utf8"))

class MyQQ(QToolBox):
def __init__(self, parent=None):
super(MyQQ, self).__init__(parent)
#创建了一个 QToolButton 类实例, 在这里 QToolButton 分别对应于抽屉中的每一个按钮。
toolButton1_1 = QToolButton()
toolButton1_1.setText(self.tr("朽木"))
toolButton1_1.setIcon(QIcon("image/9.gif"))
#toolButton1_1.setWindowIcon(QSize(60, 60))
#设置按钮的 AutoRaise 属性为 True,当鼠标离开时,按钮自动恢复成弹起状态
toolButton1_1.setAutoRaise(True)
toolButton1_1.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
#设置按钮的 ToolButtonStyle 属性,ToolButtonStyle 属性主要用来描述按钮的文字和图标的显示方式
toolButton1_2 = QToolButton()
toolButton1_2.setText(self.tr("Cindy"))
toolButton1_2.setIcon(QIcon("image/8.gif"))
#toolButton1_2.setWindowIcon(QSize(60, 60))
toolButton1_2.setAutoRaise(True)
toolButton1_2.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

toolButton1_3 = QToolButton()
toolButton1_3.setText(self.tr("了了"))
toolButton1_3.setIcon(QIcon("image/1.gif"))
#toolButton1_3.setWindowIcon(QSize(60, 60))
toolButton1_3.setAutoRaise(True)
toolButton1_3.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

toolButton1_4 = QToolButton()
toolButton1_4.setText(self.tr("张三虎"))
toolButton1_4.setIcon(QIcon("image/3.gif"))
#toolButton1_4.setWindowIcon(QSize(60, 60))
toolButton1_4.setAutoRaise(True)
toolButton1_4.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

toolButton1_5 = QToolButton()
toolButton1_5.setText(self.tr("CSDN"))
toolButton1_5.setIcon(QIcon("image/4.gif"))
#toolButton1_5.setWindowIcon(QSize(60, 60))
toolButton1_5.setAutoRaise(True)
toolButton1_5.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

toolButton2_1 = QToolButton()
toolButton2_1.setText(self.tr("丫头"))
toolButton2_1.setIcon(QIcon("image/5.gif"))
#toolButton2_1.setWindowIcon(QSize(60, 60))
toolButton2_1.setAutoRaise(True)
toolButton2_1.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

toolButton2_2 = QToolButton()
toolButton2_2.setText(self.tr("梅子"))
toolButton2_2.setIcon(QIcon("image/6.gif"))
#toolButton2_2.setWindowIcon(QSize(60, 60))
toolButton2_2.setAutoRaise(True)
toolButton2_2.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

toolButton3_1 = QToolButton()
toolButton3_1.setText(self.tr("在耀"))
toolButton3_1.setIcon(QIcon("image/7.gif"))
#toolButton3_1.setWindowIcon(QSize(60, 60))
toolButton3_1.setAutoRaise(True)
toolButton3_1.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

toolButton3_2 = QToolButton()
toolButton3_2.setText(self.tr("和梁"))
toolButton3_2.setIcon(QIcon("image/6.gif"))
#toolButton3_2.setWindowIcon(QSize(60, 60))
toolButton3_2.setAutoRaise(True)
toolButton3_2.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
#创建了一个 QGroupBox 类实例,在本例中对应每一个抽屉
groupbox1 = QGroupBox()
#创建一个 QVBoxLayout 类实例,用来设置抽屉内各按钮的布局
vlayout1 = QVBoxLayout(groupbox1)
vlayout1.setMargin(10)
vlayout1.setAlignment(Qt.AlignCenter)
vlayout1.addWidget(toolButton1_1)
vlayout1.addWidget(toolButton1_2)
vlayout1.addWidget(toolButton1_3)
vlayout1.addWidget(toolButton1_4)
vlayout1.addWidget(toolButton1_5)
vlayout1.addStretch()
#调用 addStretch()方法在按钮之后插入一个占位符,使得所有按钮能靠上对齐。并且在整个抽屉大小发生改变时,保证按钮的大小不发生变化
groupbox2 = QGroupBox()
vlayout2 = QVBoxLayout(groupbox2)
vlayout2.setMargin(10)
vlayout2.setAlignment(Qt.AlignCenter)
vlayout2.addWidget(toolButton2_1)
vlayout2.addWidget(toolButton2_2)

groupbox3 = QGroupBox()
vlayout3 = QVBoxLayout(groupbox3)
vlayout3.setMargin(10)
vlayout3.setAlignment(Qt.AlignCenter)
vlayout3.addWidget(toolButton3_1)
vlayout3.addWidget(toolButton3_2)
#把准备好的抽屉插入至 QToolBox中
self.addItem(groupbox1, self.tr("我的好友"))
self.addItem(groupbox2, self.tr("丫头"))
self.addItem(groupbox3, self.tr("朋友"))

app = QApplication(sys.argv)
form = MyQQ()
form.setWindowTitle("MyQQ")
form.show()
app.exec_()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: