尝试简单的QPushButton背景颜色更改

问题描述 投票:0回答:1

我需要通过更改Q按钮的背景颜色来创建简单的“闪烁”效果的帮助。我以为只要能足够快地在两种颜色之间改变背景色,我就能产生这种闪烁效果。但是,尽管我可以将背景色设置为一种颜色,但我不知道如何快速在两种颜色之间进行切换。我尝试使用循环,但是我的输出GUI仅保留一种颜色。我是这类东西的初学者,所以也许我错过了一个简单的解决方案。

我拥有所有必要的程序包和所有内容,因此,为了简单起见,我仅包括用于处理背景颜色的按钮部分,这是我所认为的问题所在。

self.powerup_button = QtWidgets.QPushButton(self.centralwidget)

count = 0

while count < 100:


   self.powerup_button.setStyleSheet("background-color: none")
   count = count + 1

   self.powerup_button.setStyleSheet("background-color: green")
   count = count + 1

我以为while循环将使按钮在两种颜色之间切换,从而创建了我想要的闪烁效果,但是我错了。

python user-interface pyqt5 qpushbutton
1个回答
0
投票

尝试:

import sys
from PyQt5 import QtWidgets, QtCore

class MyWindow(QtWidgets.QMainWindow): 
    def __init__(self):
        super().__init__()

        self.flag = True

        self.powerup_button = QtWidgets.QPushButton("Button")
        self.setCentralWidget(self.powerup_button)

        timer = QtCore.QTimer(self, interval=1000)
        timer.timeout.connect(self.update_background)
        timer.start()  

    def update_background(self):
        if self.flag:
            self.powerup_button.setStyleSheet("background-color: none;")
        else:
            self.powerup_button.setStyleSheet("background-color: green;")  
        self.flag = not self.flag            


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    myWindow = MyWindow()
    myWindow.show()
    app.exec_()       

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.