首页 > 解决方案 > 从 pyqt5 文件到另一个 .py 文件的变量

问题描述

我正在尝试找出将类内部方法中的变量定义共享到不同 .py 文件的方法。确切的问题是,我正在尝试检查复选框是否打勾,并且根据状态,它可以将布尔值或整数返回到不同的 python 文件。有人可以帮我解决这个问题吗?

gui.py

class Window(QMainWindow):
def __init__(self):
    super().__init__()
    #code.....
    self.f_obj = QtWidgets.QCheckBox(self) 
    self.f_obj.setGeometry(QtCore.QRect(170, 120, 81, 20)) 
    self.f_obj.stateChanged.connect(self.obj)

def obj(self, checked):
    if checked:
        val = True
    else:
        val = False
    self.value = val

def ret(self):
    return value

文件.py

获取file.py中ret函数返回的值

标签: pyqtpyqt5

解决方案


这似乎更接近于对 python/通用编码的误解,而不是具体的 pyqt。我会尝试用一般的编码示例来澄清它,希望这会有所帮助。

假设我们有两个文件:A.pyB.py. A.py包含类fooB.py包含fi。如果fi需要访问 的方法或属性foo,则需要对foo对象的引用。

一个.py:

class foo():
    def get_something(self):
        return self.something

B.py:

class fi():
    def __init__(self, foo_object):
        self.foo_object = foo_object

    def do_something(self):
        self.foo_object.get_something()

如您所见,fi只需要对已初始化foo对象的引用即可调用具有的函数foo

但是,您提到这是将信息从主窗口发送到另一个类的一部分,所以这不是最好的方法。主窗口 ( foo) 应该具有对另一个类 ( fi) 的引用,并且当ret调用示例中的函数时,主窗口应该使用其对另一个类的引用来调用某种 setter 函数。

我希望这可以解决这个问题,但是,如果您不确定导入的工作原理(您将使用什么来从另一个文件初始化类),我建议您尝试研究一下。这是我在快速谷歌上找到的关于导入的初学者 Python 教程。


推荐阅读