【问题标题】:Variable from pyqt5 file to another .py file从 pyqt5 文件到另一个 .py 文件的变量
【发布时间】:2020-06-09 23:55:30
【问题描述】:

我正在尝试找出将类内部方法中的变量定义共享到不同 .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函数返回的值

【问题讨论】:

标签: pyqt pyqt5


【解决方案1】:

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

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

A.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 函数某种意义上的。

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

【讨论】:

  • 我还是一头雾水。类可以返回值吗?
  • 我认为您正在寻找调用类的函数来获取值。答案是你在一个对象上调用的函数可以返回一些东西。例如:``` foo = [1, 2] ``` 这里foo是一个列表对象,也就是列表类的一个实例。列表有几个函数,例如pop,它删除并返回列表的最后一个值。不过老实说,如果您正在寻找有关基本课堂行为的更多信息,最好单独提出问题或在 google 上查找基本课堂教程和示例。
  • 你是对的@Nicholas,让我重新提出这个问题。我想在另一个文件中获取 ckeckbox 的状态以进行进一步计算。假设如果我勾选复选框,我应该得到一个 bool 或一个特定的 int,并将在另一个文件中使用。同样,如果复选框是 untick 。任何人都可以提出一个好的方法来做到这一点
猜你喜欢
  • 2021-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多