PyQt5 - 单窗体的循环渐入渐出(QTimer)

2024-02-15 09:59

本文主要是介绍PyQt5 - 单窗体的循环渐入渐出(QTimer),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    self.timer = QTimer(Test_Transparent)self.timer.start(50)self.timer.timeout.connect(self.show)#counter用于根据计时器更新窗体透明度self.counter = 1#degree用于控制透明度的增减性(“显示-透明-显示-透明”为一个循环周期)self.degree = -0.03def show(self):if self.counter >= 1:time.sleep(3)self.counter -= 0.01self.degree *= -1else:window.setWindowOpacity(self.counter)self.counter -= self.degreeif self.counter < 0:self.degree *= -1self.counter = 0.01


实例:【心灵毒鸡汤的淡入淡出显示】

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication,QDialog
from PyQt5.QtCore import QTimer,Qt
import sys
import time
import randomclass Ui_Test_Transparent(object):def setupUi(self, Test_Transparent):Test_Transparent.setObjectName("Test_Transparent")Test_Transparent.resize(850, 620)Test_Transparent.setMinimumSize(QtCore.QSize(850, 620))Test_Transparent.setMaximumSize(QtCore.QSize(850, 620))icon = QtGui.QIcon()icon.addPixmap(QtGui.QPixmap("./img/icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)Test_Transparent.setWindowIcon(icon)Test_Transparent.setWindowOpacity(1)#Test_Transparent.setWindowFlags(Qt.FramelessWindowHint)self.label = QtWidgets.QLabel(Test_Transparent)self.label.setEnabled(False)self.label.setGeometry(QtCore.QRect(0, 0, 851, 621))self.label.setStyleSheet("")self.label.setText("")self.label.setPixmap(QtGui.QPixmap("./img/x.jpg"))self.label.setScaledContents(True)self.label.setObjectName("label")self.label_2 = QtWidgets.QLabel(Test_Transparent)self.label_2.setGeometry(QtCore.QRect(155, 130, 551, 341))font = QtGui.QFont()font.setPointSize(15)self.label_2.setFont(font)self.label_2.setWordWrap(True)self.label_2.setObjectName("label_2")self.retranslateUi(Test_Transparent)QtCore.QMetaObject.connectSlotsByName(Test_Transparent)def retranslateUi(self, Test_Transparent):_translate = QtCore.QCoreApplication.translateTest_Transparent.setWindowTitle(_translate("Test_Transparent", "心灵毒鸡汤"))self.timer = QTimer(Test_Transparent)self.timer.start(50)self.timer.timeout.connect(self.show)#语录列表a1 = "我感觉我也累了,不折腾了。可能我不配幸福吧,我认命了。"a2 = "我以为我能逗你笑你就会喜欢我,可我却输给了让你哭的人。"a3 = "若能避开猛烈的欢喜,自然不会有悲痛袭来。"a4 = "大学一转眼四年就过去了。"self.sentense = [a1,a2,a3,a4]self.label_2.setText(random.choice(self.sentense))#counter用于根据计时器更新窗体透明度self.counter = 1#degree用于控制透明度的增减性(“显示-透明-显示-透明”为一个循环周期)self.degree = -0.03def show(self):if self.counter >= 1:time.sleep(4)self.counter -= 0.01self.degree *= -1else:window.setWindowOpacity(self.counter)self.counter -= self.degreeif self.counter < 0:self.label_2.setText(random.choice(self.sentense))self.degree *= -1self.counter = 0.01if __name__ == "__main__":app = QApplication(sys.argv)window = QDialog()ui = Ui_Test_Transparent()ui.setupUi(window)window.show()sys.exit(app.exec_())

 

这篇关于PyQt5 - 单窗体的循环渐入渐出(QTimer)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/711079

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

poj3750约瑟夫环,循环队列

Description 有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 Input 第一行输入小孩的人数N(N<=64) 接下来每行输入一个小孩的名字(人名不超过15个字符) 最后一行输入W,S (W < N),用

校验码:奇偶校验,CRC循环冗余校验,海明校验码

文章目录 奇偶校验码CRC循环冗余校验码海明校验码 奇偶校验码 码距:任何一种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据检验码的码距。 奇偶校验码的编码方法是:由若干位有效信息(如一个字节),再加上一个二进制位(校验位)组成校验码。 奇校验:整个校验码中1的个数为奇数 偶校验:整个校验码中1的个数为偶数 奇偶校验,可检测1位(奇数位)的错误,不可纠错。

react笔记 8-17 属性绑定 class绑定 引入图片 循环遍历

1、绑定属性 constructor(){super()this.state={name:"张三",title:'我是一个title'}}render() {return (<div><div>aaaaaaa{this.state.name}<div title={this.state.title}>我是一个title</div></div></div>)} 绑定属性直接使用花括号{}   注

【Python篇】PyQt5 超详细教程——由入门到精通(终篇)

文章目录 PyQt5超详细教程前言第9部分:菜单栏、工具栏与状态栏9.1 什么是菜单栏、工具栏和状态栏9.2 创建一个简单的菜单栏示例 1:创建带有菜单栏的应用程序代码详解: 9.3 创建工具栏示例 2:创建带有工具栏的应用程序代码详解: 9.4 创建状态栏示例 3:创建带有状态栏的应用程序代码详解: 9.5 菜单栏、工具栏与状态栏的结合示例 4:完整的应用程序界面代码详解: 9.6 总结

Spring是如何解决循环依赖?

现象解释: 在Spring框架中,循环依赖(Circular Dependency)是指两个或多个Bean之间相互依赖,形成了一个循环。例如,Bean A依赖于Bean B,而Bean B又依赖于Bean A。Spring通过多种机制解决循环依赖问题,具体来说,主要有以下几种方式: 1.三级缓存机制 Spring容器在实例化Bean时使用了三级缓存来解决循环依赖,主要涉及三个缓存结构: 一级

【Python篇】PyQt5 超详细教程——由入门到精通(中篇二)

文章目录 PyQt5超详细教程前言第7部分:生成图表与数据可视化7.1 matplotlib 与 PyQt5 的结合7.2 在 PyQt5 中嵌入 matplotlib 图表示例 1:嵌入简单的 matplotlib 图表代码详解: 7.3 动态生成图表示例 2:动态更新图表代码详解: 7.4 在应用程序中展示不同类型的图表示例 3:展示不同类型的图表代码详解: 7.5 总结 第8部分:对话

FPGA开发:条件语句 × 循环语句

条件语句 if_else语句 if_else语句,用来判断是否满足所给定的条件,根据判断的结果(真或假)决定执行给出的两种操作之一。 if(表达式)语句; 例如: if(a>b) out1=int1; if(表达式)         语句1; else         语句2; 例如: if(a>b)out1=int1;elseout1=int2; if(表达式1) 语句1; els

shell循环sleep while例子 条件判断

i=1# 小于5等于时候才执行while [ ${i} -le 5 ]doecho ${i}i=`expr ${i} + 1`# 休眠3秒sleep 3doneecho done 参考 http://c.biancheng.net/cpp/view/2736.html

C# 通过拖控件移动窗体

目录 引言一、通过控件事件移动窗体1、创建窗体界面2、添加控件事件3、添加代码 二、通过windowsAPI移动窗体1、 构建窗体和添加事件2、代码展示 引言 在C#Form窗体设计中,如果我们不需要使用默认边框设计自己个性化的窗体(FromBorderStyle=none时),这时候你会发现拖动窗体的功能就没有了,这里需要自己构建方法让用户可以拖动整个窗体,这里我们使用前辈的