pyqt - 从 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函数返回的值
解决方案
这似乎更接近于对 python/通用编码的误解,而不是具体的 pyqt。我会尝试用一般的编码示例来澄清它,希望这会有所帮助。
假设我们有两个文件:A.py
和B.py
. A.py
包含类foo
和B.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 教程。
推荐阅读
- dataframe - 检查 DataFrame 名称是否包含另一个数组中的名称
- php - Laravel Http 路由请求永远发送
- java - 无法启动应用程序。Bean 创建异常
- reactjs - 问题 – “toHaveStyleRule” 带有用于测试的导入组件(jest-styled-components)
- swift - GoogleSignIn - 未找到框架 AppAuth,框架为红色 Swift
- autodesk-forge - 使用 Forge API 从 BIM 360 获取审阅信息
- jackson - Jackson 将 JSON 解析为 Java Map
- glusterfs - 创建 Gluster 集群时在 /dev/sdb1 偏移 1080 处检测到 ext4 签名
- javascript - 如何在事件中运行一次函数?
- python - wget缺少带有shlex和子进程的url