代码:

 # -*- coding:utf8 -*-
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys class ani(QWidget):
def __init__(self):
super(ani, self).__init__()
self.OrigHeight = 50
self.ChangeHeight = 150
self.setGeometry(QRect(500, 400, 150, self.OrigHeight)) # 在X=500, Y=400 , Length=150 , Height=50
self.btn = QPushButton(u'展开', self)
self.btn.setGeometry(10, 10, 60, 35)
self.machine = QStateMachine()
self.connect(self.btn, SIGNAL('clicked()'), self.change) # 动画效果修改窗体大小
def change(self):
CurrentHeight = self.height()
if self.OrigHeight == CurrentHeight:
startHeight = self.OrigHeight
endHeight = self.ChangeHeight
self.btn.setText(u'收缩')
else:
startHeight = self.ChangeHeight
endHeight = self.OrigHeight
self.btn.setText(u'展开')
self.animation = QPropertyAnimation(window, 'geometry')
self.animation.setDuration(800)
self.animation.setStartValue(QRect(500, 400, 150, startHeight))
self.animation.setEndValue(QRect(500, 400, 150, endHeight))
self.animation.start() if __name__ == '__main__':
app = QApplication(sys.argv)
window = ani()
window.show()
sys.exit(app.exec_())

效果:

最新文章

  1. Struts2第一个入门案例
  2. ZOJ 1107FatMouse and Cheese(BFS)
  3. 我的第一个Node web程序
  4. IE6下position解决父元素被撑开的问题
  5. ruby编程语言-学习笔记3(第4章 表达式和操作符)
  6. IOS UI 第三篇:基本UI
  7. box-size
  8. CSS3秘笈复习:第七章
  9. Oracle表和表数据恢复
  10. python实战===实现读取txt每一行的操作,账号密码
  11. ListView中点击Item没有任何响应
  12. sp_tableoption
  13. java——封装和关键字
  14. IEnumerable<T>和IQueryable<T>区分
  15. gulp使用入门
  16. SQL SERVER 查看占用tempDB
  17. LIght OJ 1179
  18. PDF怎么编辑,如何旋转PDF页面方向
  19. VUE CLI 3.0 项目引入 ElementUI
  20. 洛谷P2059 卡牌游戏 [JLOI2013] 概率dp

热门文章

  1. Sound Generator 原理
  2. Android应用反破解的思路
  3. SVN的目录说明
  4. 【架构】Google的大规模集群管理工具Borg
  5. Semantic-UI-React (称 stardust) 对比 Antd
  6. Oracle 与 entity framework 6 的配置,文档
  7. centos7时间同步和时区设置
  8. Java集合中List的用法
  9. Java for LeetCode 237 Delete Node in a Linked List
  10. Java for LintCode 链表插入排序