파이썬 윈도우 크기와 위치를 저장해 뒀다가 새로 시작할 때 가져올려 몇가지 검색..
그런데 너무 쉽게 되어 있어서 쓸 게 없을 정도.
왜 딱 바로 안찾아 지는지 모르지만
QMainWindow 에서 만든 파이썬 응용 같으면 아주 쉽다.
close 할때 이벤트에서 아래 정보를 저장하는 코드이다.
위치는 간단하게 .x(), .y()
크기도 간단하게 .width(), .height()
로 아주 손쉽게 정보를 가져올 수 있다.
# close event 처리
def closeEvent(self, ev):
if QMessageBox.question(self, 'Closing', 'Really close?') == QMessageBox.Yes:
# # 이상하게 사이즈가 2px 크게 나오네..
# width = self.frameGeometry().width()
# height = self.frameGeometry().height()
# print("Enter CloseEvent", width, height)
# 사이즈가 잘 나오네..
print('Height: ' + str(self.height()) + ' | Width: ' + str(self.width()) + ' | X: ' + str(self.x()) + ' | Y: ' + str(self.y()))
self.config['Last'] = {}
self.config['Last']['height'] = self.height()
self.config['Last']['width'] = self.width()
self.config['Last']['x'] = self.x()
self.config['Last']['y'] = self.y()
self.config['Last']['close'] = strftime('%Y-%m-%d %H:%M:%S')
# 설정파일 저장
self.updateConfig('./config.json')
self.deleteLater()
ev.accept()
else:
ev.ignore()
재 로딩할 때 저장한 정보로 창 사이즈와 위치를 복원하고 싶다면, 간단하게 아래 코드를 참고해 보세용.
사이즈는 resize()
위치는 move()
로 처리하면 된다.
if (self.config['Last']['height'] is None):
startSize = QSize(1024, 768)
self.resize(startSize)
else :
startSize = QSize(self.config['Last']['width'], self.config['Last']['height'])
self.resize(startSize)
startPos = QPoint(self.config['Last']['x'],self.config['Last']['y'])
self.move(startPos)
BJ.
'IT > 파이썬' 카테고리의 다른 글
파이썬 JSON 읽기 에서 특정 키 가 있는지 먼저 확인하기 (0) | 2021.02.02 |
---|---|
파이썬 JSON 파일 읽고 쓰기 (0) | 2021.02.02 |
파이썬 Qt Designer 에서 Layout stretch 옵션 값 설정 (0) | 2021.02.01 |
파이썬 리소스 파일 py 파일로 변환하기 - pyside2 rcc (0) | 2021.01.28 |
파이썬 Qt Designer 로 원 모양 진행바 만들어보기 (0) | 2021.01.27 |