莫凡辰 发表于 2022-12-22 16:57:13

如何检测一个变量的值是否发生变化

首先我有两个文件,分别为a.py和b.py
然后a.py中我定义了一个类,在类中我设置的有函数。部分的代码为
    def openimage(self):
      global imgName
      imgName, imgType = QFileDialog.getOpenFileName(self, "打开图片", "", "*.jpg;;*.png;;All Files(*)")
      jpg = QtGui.QPixmap(imgName).scaled(self.label_2.width(), self.label_2.height())
      self.label_2.setPixmap(jpg)
      new_imgName = imgName
      
      #start_directory = r'E:\kantushuohua\s1\图片'
      # os.system("explorer.exe %s" % start_directory)
      #商城积分
      a = self.text_9.toPlainText()# d读取
      print(a)
      i = str(int(a) + 1)
      print(i)
      self.text_9.setText(i)# 写入
变量imgName输出的是一张图片的地址,然后我的要求是当imgName发生变化时,就运行文件b.py。应该怎么解决?

dolly_yos2 发表于 2022-12-22 17:47:14

每次给这个变量赋值时,检查一下和当前的值是否一样,如果不一样不就是变化了吗?

洋洋痒 发表于 2022-12-22 18:30:28

再建立一个全局变量,最开始赋值为None,或者随便什么。
然后while True循环,一直对比新建的变量与imgName是否相等,如果不相等就执行b.py,并且把imgName的值赋给新变量,方便下一次比较。
如果需要等待同时执行其他任务,就需要用多线程。

莫凡辰 发表于 2022-12-23 09:15:27

洋洋痒 发表于 2022-12-22 18:30
再建立一个全局变量,最开始赋值为None,或者随便什么。
然后while True循环,一直对比新建的变量与imgNam ...

我去试一下

zsy0226 发表于 2022-12-23 16:50:43

dolly_yos2 发表于 2022-12-22 17:47
每次给这个变量赋值时,检查一下和当前的值是否一样,如果不一样不就是变化了吗?

对啊

chinajz 发表于 2022-12-23 20:58:58

如不同文件或不同进程查看、比较数据,我是用xml文件存放或交换放数据,稳定可靠。楼主可以试试。
页: [1]
查看完整版本: 如何检测一个变量的值是否发生变化