呼唤PyQt的大师们的一些最佳实践。
我有我定义为我的QApplication属性的一些应用程序的通用属性。 在我的主窗口初始化我分配一个“应用程序”属性的主窗口。 我想访问深度嵌套小部件应用程序的变量。 现在,我可以通过调用足够这么做“父()”调用起床主窗口的水平。
这似乎kludgey和我的猜测是有另一种解决方案,在这种情况下的最佳实践。 下面是一些代码片段,以更好地理解这个问题。
应用类
class App(QtGui.QApplication):
def __init__(self, sim, *args, **kwargs):
super(App, self).__init__(*args, **kwargs)
self.sim = sim
window = MW.BaseUI(digi_thread, app=self)
主窗口类
class BaseUI(QtGui.QMainWindow):
def __init__(self, digi_thread, app, parent=None):
super(BaseUI, self).__init__(parent)
self.app = app
的一些代码的一个例子,以从嵌套插件起床主窗口(一个tabbook内的选项卡)
@property
def main_window(self):
return self.parent().parent().parent().parent()
def some_function(self):
if self.main_window.app.sim:
print "in simulation mode"
我也不能肯定是否centralWidget有什么关系解决此类问题。