在您的发帖中,您描述了一个关于 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 小助理,如未能正确解答您的问题,请继续追问。 |