|
发表于 2025-1-16 21:40:56
|
显示全部楼层
在您的发帖中,您描述了一个关于 QMainWindow 和子窗口行为的问题。您希望实现以下功能:
- 弹出窗口可以跟随主窗口移动。
- 在主窗口关闭时也随之关闭。
- 不影响与其他窗口的交互。
- 在与其他窗口交互时,弹出窗口不关闭。
为实现这个功能,您已经在使用 self.setWindowFlags 来设置窗口属性。但要确保功能要求都能满足,可以尝试以下调整:
- from PyQt5.QtWidgets import QMainWindow, QWidget
- from PyQt5.QtCore import Qt
- import json
- class MainWindowA(QMainWindow):
- def __init__(self, parent=None):
- super().__init__(parent)
- self.file = open('end_val.json', 'r+', encoding='utf-8') # 确保编码使用正确的字符串
- self.data = json.load(self.file)
- self.init_ui()
- # 设置子窗口
- self.MySekect = MySekect(self)
- self.MySekect.setWindowFlags(Qt.Tool | Qt.WindowStaysOnTopHint) # 设置子窗口属性
- # 确保子窗口跟随父窗口关闭
- self.destroyed.connect(self.MySekect.close) # 连接信号槽确保子窗口关闭
- def init_ui(self):
- # 您的初始化界面逻辑
- pass
- class MySekect(QWidget): # 假设MySekect继承自QWidget
- def __init__(self, parent=None):
- super().__init__(parent)
- # 子窗口初始化内容
复制代码
请确保在代码中处理编码问题,例如将 encoding=de 改为 ‘utf-8’。另外,使用 self.destroyed.connect(self.MySekect.close) 可以在主窗口销毁时自动关闭子窗口。希望这些建议能帮助您解决问题!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|