怎么使用这个函数时 def on_click(self): self.print_window('检测完毕') newname = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) main(newname) pixmap = QPixmap('%s.png' % newname) self.label.setPixmap(pixmap) self.label.setScaledContents(True) 每次刷新显示的图片不重叠
时间: 2024-03-06 17:49:54 浏览: 58
您可以在每次更新图片前,先将`QLabel`中的`pixmap`对象置空,再更新`pixmap`。这样可以确保每次更新图片时,都是在一个空的`QLabel`中显示。修改后的代码如下:
```python
from PyQt5.QtGui import QPixmap
def on_click(self):
self.print_window('检测完毕')
# 先将 QLabel 中的 pixmap 置空
self.label.setPixmap(None)
newname = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())
main(newname)
pixmap = QPixmap('%s.png' % newname)
self.label.setPixmap(pixmap)
self.label.setScaledContents(True) # 图片适应 label 的大小
```
在这个示例中,我们在更新图片前先调用`self.label.setPixmap(None)`将`QLabel`中的`pixmap`置空。这样可以确保每次更新图片时,都是在一个空的`QLabel`中显示。
相关问题
在我的程序中按下ui界面的按钮只调用完成了一次后就自动进程结束了这个和什么有关系: def on_click(self): self.print_window('检测完毕,按下按键再次进行检测....') newname = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) self.main(newname) self.label.setPixmap(QPixmap("%s.png" % newname))
这个问题可能和程序中的资源管理有关。当您按下按钮时,程序可能会调用一些资源,例如内存或文件,如果这些资源没有被正确管理,程序就会崩溃或结束。您可以尝试检查您的代码中是否正确地释放了资源,或者尝试使用调试工具来查看程序崩溃的原因。此外,您也可以尝试使用异常处理来捕获可能导致程序崩溃的错误,以便您可以对它们进行处理。
把以下代码改为没有类的线程 class Cloud_oper(threading.Thread): def __init__(self,localpath): threading.Thread.__init__(self) self.localpath = localpath def run(self): last_send_time = 0 while True: now = datetime.now() current_time = now.strftime("%Y%m%d%H%M%S") filename = "time_{}.mp4".format(current_time) buzz = beep.get() now_time = time.time() if buzz == 1: if now_time - last_send_time >= 5: qiniu_test.qiniu_upload('./save') miao_note.send_note(filename) last_send_time = now_time # else:
以下是修改后的代码,去掉了类的部分:
```python
import threading
from datetime import datetime
import time
import beep
import qiniu_test
import miao_note
def cloud_oper(localpath):
last_send_time = 0
while True:
now = datetime.now()
current_time = now.strftime("%Y%m%d%H%M%S")
filename = "time_{}.mp4".format(current_time)
buzz = beep.get()
now_time = time.time()
if buzz == 1:
if now_time - last_send_time >= 5:
qiniu_test.qiniu_upload(localpath)
miao_note.send_note(filename)
last_send_time = now_time
# else:
# do something else
```
在上面的代码中,我们把原来的`Cloud_oper`类改成了一个普通的函数`cloud_oper`,并把`__init__`方法和`run`方法合并成一个函数。然后我们在这个函数中执行了原来`run`方法中的所有操作,除了最后的`else`分支。
阅读全文