개정판 e9d9cab4
issue #1048: save and restore layout of application
Change-Id: I4863897daa1c4a65c3aabc2b17a6a3723a08ee3e
HYTOS/HYTOS/App.py | ||
---|---|---|
19 | 19 |
class App(QApplication): |
20 | 20 |
""" This is App class inherits from QApplication """ |
21 | 21 |
|
22 |
COMPANY = 'SECL' |
|
22 | 23 |
NAME = 'HYTOS' # program name |
23 | 24 |
|
24 | 25 |
def __init__(self, args): |
HYTOS/HYTOS/MainWindow.py | ||
---|---|---|
101 | 101 |
self._label_mouse.setText(self.tr('mouse pos : ({},{})'.format(0, 0))) |
102 | 102 |
self.statusbar.addWidget(self._label_mouse) |
103 | 103 |
self.addMessage.connect(self.onAddMessage) |
104 |
self.showMaximized() |
|
105 | 104 |
|
106 | 105 |
self.setMainWindowTitle() |
107 | 106 |
|
... | ... | |
160 | 159 |
self.tabifyDockWidget(self.dockWidgetDrawingExplorer, self.dockWidgetSymbolExplorer) |
161 | 160 |
self.dockWidgetDrawingExplorer.raise_() |
162 | 161 |
|
162 |
self.read_settings() |
|
163 |
|
|
163 | 164 |
# ToDo.. |
164 | 165 |
# Menu bar - Admin Hide |
165 | 166 |
# Loop Tab Hide |
... | ... | |
168 | 169 |
sys.exc_info()[-1].tb_lineno) |
169 | 170 |
self.addMessage.emit(MessageType.Error, message) |
170 | 171 |
|
172 |
def read_settings(self): |
|
173 |
"""read geometry and state""" |
|
174 |
from App import App |
|
175 |
|
|
176 |
try: |
|
177 |
self.settings = QSettings(App.COMPANY, App.NAME) |
|
178 |
self.restoreGeometry(self.settings.value("geometry", "")) |
|
179 |
self.restoreState(self.settings.value("windowState", "")) |
|
180 |
except Exception as ex: |
|
181 |
message = 'error occurred({}) in {}:{}'.format(ex, sys.exc_info()[-1].tb_frame.f_code.co_filename, |
|
182 |
sys.exc_info()[-1].tb_lineno) |
|
183 |
self.addMessage.emit(MessageType.Error, message) |
|
184 |
|
|
171 | 185 |
def load_stylesheet_file(self): |
172 | 186 |
# load stylesheet file list |
173 | 187 |
stylesheet_name = QtWidgets.qApp.stylesheet_name |
... | ... | |
225 | 239 |
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tabLogs), 'Logs') |
226 | 240 |
|
227 | 241 |
def closeEvent(self, a0: QCloseEvent) -> None: |
228 |
"""ask user to save drawing which is modified""" |
|
242 |
"""save geometry and state and then ask user to save drawing which is modified""" |
|
243 |
|
|
244 |
self.settings.setValue('geometry', self.saveGeometry()) |
|
245 |
self.settings.setValue('windowState', self.saveState()) |
|
246 |
|
|
229 | 247 |
self.save_drawing_if_necessary() |
230 | 248 |
a0.accept() |
231 | 249 |
|
내보내기 Unified diff