gpt4 book ai didi

python - 如何使用pyqt5在运行时用另一个图像替换原始图像?

转载 作者:太空宇宙 更新时间:2023-11-03 20:16:54 26 4
gpt4 key购买 nike

我正在尝试制作可以通过图形表示显示天气网关闭或打开的应用程序。对于我使用 pyqt5 的任务,但是当我尝试执行此操作时,它只是一次又一次地重叠在同一张图像上。

time2 = ""
class DigitalClock(QLCDNumber, QWidget):
def __init__(self, parent=None):
super(DigitalClock, self).__init__(parent)
self.setWindowTitle("Digital Clock")
self.showFullScreen()
self.mainlayout = QHBoxLayout()
timer = QTimer(self)
timer.timeout.connect(self.ui)
timer.start(1000)
self.ui()
self.show()

def ui(self):
global time2
time = QTime.currentTime()
text = time.toString('hh:mm')
if (time.second() % 2) == 0:
text = text[:2]+" "+ text[3:]


if text[3:] != time2:
if os.system("ping -c 1 192.168.63.145") == 0:
self.network = QLabel(self)
self.network.setPixmap(QPixmap("signal-bars.png"))
self.network.move(50,300)
self.network.show()
time2 = text[3:]
else:
self.network = QLabel(self)
self.network.setPixmap(QPixmap("no-internet.png"))
time2 = text[3:]
self.network.move(50,300)
self.network.show()
self.display(text)




def main():
app = QApplication(sys.argv)
clock = DigitalClock()
sys.exit(app.exec_())

if __name__ == '__main__':
main()

最佳答案

QLCDNumber 类 - 继承:QFrame。

QFrame 类 - 继承:QWidget。

无需每次都创建 - self.network = QLabel (self)

您不需要全局变量。

尝试一下:

import sys
import os
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


#time2 = ""

class DigitalClock(QLCDNumber): #, QWidget):
def __init__(self, parent=None):
super(DigitalClock, self).__init__(parent)

self.time2 = True # +
self.network = QLabel(self) # +
self.network.setGeometry(50, 300, 150, 150) # +

self.setWindowTitle("Digital Clock")
self.showFullScreen()
self.mainlayout = QHBoxLayout() # ?

timer = QTimer(self)
timer.timeout.connect(self.ui)
self.ui()
timer.start(1000)

def ui(self):
# global time2 # ---
time = QTime.currentTime()
text = time.toString('hh:mm')
if (time.second() % 2) == 0:
text = text[:2]+" "+ text[3:]


# if text[3:] != time2:
# if os.system("ping -c 1 192.168.63.145") == 0:
if self.time2:
# self.network = QLabel(self) # ---
self.network.setPixmap(QPixmap("im.png").scaled(150, 150, Qt.KeepAspectRatio, Qt.FastTransformation))
# time2 = text[3:]
else:
# self.network = QLabel(self)
self.network.setPixmap(QPixmap("Ok.png").scaled(150, 150, Qt.KeepAspectRatio, Qt.FastTransformation))
# time2 = text[3:]

self.time2 = not self.time2

self.display(text)


def main():
app = QApplication(sys.argv)
clock = DigitalClock()
clock.show() # +
sys.exit(app.exec_())

if __name__ == '__main__':
main()

enter image description here

关于python - 如何使用pyqt5在运行时用另一个图像替换原始图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58395794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com