代码:

 #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_()

实现QQ抽屉效果的更多相关文章

  1. 基于Qt的相似QQ好友列表抽屉效果的实现

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/shuideyidi/article/details/30619167     前段时间在忙毕业设计, ...

  2. iOS开发——实用技术OC篇&简单抽屉效果的实现

    简单抽屉效果的实现 就目前大部分App来说基本上都有关于抽屉效果的实现,比如QQ/微信等.所以,今天我们就来简单的实现一下.当然如果你想你的效果更好或者是封装成一个到哪里都能用的工具类,那就还需要下一 ...

  3. iOS中 超简单抽屉效果(MMDrawerController)的实现

    ios开发中,展示类应用通常要用到抽屉效果,由于项目需要,本人找到一个demo,缩减掉一些不常用的功能,整理出一个较短的实例. 首先需要给工程添加第三方类库 MMDrawerController: 这 ...

  4. Android使用ToolBar+DrawerLayout+NavigationView实现侧滑抽屉效果

    学会使用DrawerLayout 学会使用NavigationView 学会使用ToolBar+DrawerLayout+NavigationView实现侧滑抽屉效果 学会实现Toolbar在顶部以及 ...

  5. iOS实现抽屉效果

    抽屉效果 在iOS中非常多应用都用到了抽屉效果,比如腾讯的QQ,百度贴吧- --- 1. 终于效果例如以下图所看到的 --- 2.实现步骤 1.開始启动的时候.新建3个不同颜色的View的 1.设置3 ...

  6. 浅谈DrawerLayout(抽屉效果)

    DrawerLayout是V4包下提供的一种左滑右滑抽屉布局效果. 实现效果如下: 因为是官方提供的,所以使用起来也相对的比较简单. DrawerLayout 提供 1.当界面弹出的时候,主要内容区会 ...

  7. iOS开发之抽屉效果实现

    说道抽屉效果在iOS中比较有名的第三方类库就是PPRevealSideViewController.一说到第三方类库就自然而然的想到我们的CocoaPods,今天的博客中用CocoaPods引入PPR ...

  8. Android 抽屉效果的导航菜单实现

    Android 抽屉效果的导航菜单实现 抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而 ...

  9. 对抽屉效果几大github第三方库的调研

    在公司项目新版本方案选择中,对主导航中要使用的抽屉效果进行了调研.主要原因是旧的项目中所用的库ECS评价不是很好.现对当下比较火的几大热门抽屉效果的第三方库进行了调研.代码全部选自github 如果你 ...

随机推荐

  1. win8 内置管理员账号既能使用metro应用又能使用默认共享

    一.内置管理员账号打开METRO应用 1.按WIN+R 弹出运行框. 2.输入gpedit.msc点确定,打开本地组策略编辑器. 3.逐级选择"计算机配置","Windo ...

  2. python常见模块之collections模块

    一.模块简介 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtu ...

  3. Python迭代对象与迭代器

    一.迭代对象 1.概念 迭代对象:可以直接作用于for循环的对象统称为可迭代对象:Iterable. 2.可以直接作用于for循环的数据类型 (1)集合类数据类型,如list, tuple, dict ...

  4. Linux学习笔记(4)磁盘分区(fdisk)、挂载与文件系统命令

    Linux学习笔记(4)磁盘分区(fdisk).挂载与文件系统命令 1.磁盘分区是怎么表示的? 1.1 对于IDE接口,第一主盘为hda,第1从盘为hdb,第1从盘的第1个分区为hdb1 1.2 对于 ...

  5. 购物单问题—WPS使用excel

    ****     180.90       88折 ****      10.25       65折 ****      56.14        9折 ****     104.65        ...

  6. yii根据id查询一条数据

    model层 public function selectone($ag_id=''){ return $this->findBySql("SELECT * FROM agency w ...

  7. Redis以服务的形式启动

    ★期望目标:把RedisWatcher安装为windows服务. 安装完成后, 到安装目录下修改watcher.conf. 注意,任何路径都不可包含空格,中文,特殊字符,且全部使用绝对路径 ※配置文件 ...

  8. SqlHelper简单实现(通过Expression和反射)2.特性和实体设计

    对于需求中的不要暴露DataTable或DataSet,我想到了设计中常用的对象:实体(Entity),通过实体将数据库中的字段封装成类,这样做不仅使代码更有可读性,维护起来也很方便.同时我自定义了一 ...

  9. Nested DollsHDU1677

    /*题意:有n个矩形,用长和宽表示,如果一个的长和宽都比另一个小,那么这个嵌放在另一个中 所以先对w从大到小排序,w一样的按h从小到大排序,那么就从后面的箱子往前找,只要前面找到一个人h比自己大的就放 ...

  10. Django学习笔记之使用 Django项目开发框架

    Django 项目是一个定制框架,它源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来.Django 框架的核心组件有: 用于创建模型的对象关系映射 为最终用户设计的完美管理界面 ...