我试图创建一个配置文件,其中包含有关窗口大小、位置和关闭时状态的信息。再次打开时,应根据该信息进行恢复。
所以我用closeEvent
来触发这个函数:
cfg = ConfigParser() # create config object
def saveConfig(gui):
winW = gui.centralwidget.frameGeometry().width() # width of window
winH = gui.centralwidget.frameGeometry().height() # height of window
cfg['window'] = {} # window settings
window = cfg['window']
window['size'] = f"{winW},{winH}" # save current window size
window['pos'] = f"{gui.x()},{gui.y()}" # save current window position
with open(CONFIG_PATH, 'w') as file: # write config to file
cfg.write(file)
以下是loadConfig函数:
def loadConfig(gui):
cfg.read(CONFIG_PATH) # read config from CONFIG_PATH
if 'window' in cfg: # window settings
window = cfg['window']
size = window.get('size').split(',')
pos = window.get('pos').split(',')
gui.resize(int(size[0]), int(size[1])) # resize window to saved size
gui.move(int(pos[0]), int(pos[1])) # move window to save position
else:
gui.resize(1110,783)
gui.move(398,94)
但是,如果窗口在最大化时关闭,则在启动后不会再次显示最大化。只是在相同的大小和位置
我读到你可以得到windowState()。如果它是Qt.WindowMaximized
,那么比较起来就很容易了,但是当我使用print(gui.centralwidget.windowState()
时,它返回<PyQt5.QtCore.Qt.WindowStates object at 0x000001E7B1DBF970>
。
有什么想法吗
所有Qt枚举和标志都是整数值或位值,因此它们可以轻松转换为“可读”格式:
即使不知道数值,也可以使用位运算符直接比较标志:
注意,如果您想知道特定的状态:^{} 、^{} 和^{} ,您可以调用相关的便利函数
最后,请记住,Qt已经提供了^{} 和^{} ,这不仅存储窗口的几何图形,而且还存储窗口小部件当前所在的屏幕编号和几何图形,这确保窗口将尽可能恢复到保存状态时的状态,同时确保它始终可见,即使屏幕设置已更改
相关问题 更多 >
编程相关推荐