Pyqt 以OOP方式动画的效果改变自身窗体大小
2024-09-03 11:40:53
代码:
# -*- 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_())
效果:
最新文章
- Struts2第一个入门案例
- ZOJ 1107FatMouse and Cheese(BFS)
- 我的第一个Node web程序
- IE6下position解决父元素被撑开的问题
- ruby编程语言-学习笔记3(第4章 表达式和操作符)
- IOS UI 第三篇:基本UI
- box-size
- CSS3秘笈复习:第七章
- Oracle表和表数据恢复
- python实战===实现读取txt每一行的操作,账号密码
- ListView中点击Item没有任何响应
- sp_tableoption
- java——封装和关键字
- IEnumerable<;T>;和IQueryable<;T>;区分
- gulp使用入门
- SQL SERVER 查看占用tempDB
- LIght OJ 1179
- PDF怎么编辑,如何旋转PDF页面方向
- VUE CLI 3.0 项目引入 ElementUI
- 洛谷P2059 卡牌游戏 [JLOI2013] 概率dp