Tkinter开发中PreferencesWindow类的self.parent = view.parent含义解析
问题解答
3. 参数view的指代对象
你在主模块View类的on_preference_menu_clicked方法中,调用preferenceswindow.PreferencesWindow(self),这里传入的self就是当前View类的实例对象,因此PreferencesWindow初始化方法接收的view参数,就是你的应用主窗口的View实例。
1. parent值的来源
主模块View类初始化时,已经将根窗口root赋值给了实例属性self.parent。view是View类的实例,因此view.parent就是主窗口的根对象root,PreferencesWindow不需要单独定义parent,直接从传入的view实例中获取即可。
2. self.parent = view.parent赋值的作用
这行代码的作用是将主窗口的根对象保存到偏好设置窗口的实例属性中,核心用途有两个:
- 创建
Toplevel子窗口时指定父组件,建立主窗口和偏好设置窗口的从属关系,避免子窗口被主窗口遮挡、或任务栏单独显示子窗口图标的问题 - 调用
transient(self.parent)方法时需要传入父窗口对象,设置后关闭主窗口会自动关闭偏好设置窗口,主窗口最小化时子窗口也会同步最小化,符合桌面软件的常规交互逻辑
补充:如果不做这层赋值,后续使用父窗口时每次都写
self.view.parent也可以实现相同效果,单独赋值只是为了简化后续代码调用。
内容的提问来源于stack exchange,提问作者ChainSaw
相关产品推荐
相关产品推荐

