Когда я в любом случае перемещаю и / или изменяю размеры своих окон на моем экране, я хотел бы сохранить эти параметры в следующий раз, когда я буду запускать свое приложение, но это невозможно.
Я открываю новую проблему, потому чтоЯ не вижу в разделе pyqt5, что я разместил здесь
Я нахожусь в Linux (Manjaro), использую PyCharm с последними PyQT5, Python и QT5 на ядре 5.1.18-1.
Я пробовал несколько вещей, подобных этой: https://github.com/baoboa/pyqt5/blob/master/examples/mainwindows/application/application.py#L197-L207
Я не использовал класс QDesktopWidget: кажется, что он устарел: Класс QDesktopWidget
Я в Linux (Manjaro) использую PyCharm с последними PyQT5, Python и QT5 в ядре 5.1.18-1.
#check if the hidden project folder is created by default, if not it is created
HOME_PATH = os.path.expanduser("~")
USER_PATH = os.path.join(HOME_PATH, ".mx5000")
if not os.path.exists(USER_PATH):
os.mkdir(USER_PATH)
#configFolder = os.path.join(QDir.homePath(), ".mx5000")
#configFile = os.path.join(QDir.homePath(), ".mx5000/config.conf")
#configLog = os.path.join(QDir.homePath(), ".mx5000/logfile")
config_path = os.path.join(USER_PATH, "config.ini")
#settings = QSettings()
# config = configparser.ConfigParser()
# config['DEFAULT'] = {'path_keyboard': "/dev/hiddev0",
# 'keyboard_name': "Whatever",
# 'server_type': "self.ui.rdbimap.setChecked(True)",
# 'server_adress': "self.ui.lneserveradress.setText(imap.yourserver.com)",
# 'username': 'username',
# 'password': "cnffjbep",
# 'time_to_check': '10',
# 'keyboard_beep': '1',
# 'play_sound': '1',
# 'sound_directory': "/home/user/.mx5000/notify.ogg"}
#if not os.path.isfile("config"):
#os.mkdir(USER_PATH)
# with open('config.ini', 'w') as configfile:
config.write(configfile)
class Mx5000(QDialog):
def __init__(self, parent=None):
super(Mx5000, self).__init__(parent)
self.setupUi()
self.connectActions()
self.dirty = False
self.loadSettings()
# self.default_size = QSize(615, 800)
# self.default_position = QPoint(20, 20)
# self.ui.lneserveradress.setText('imap.yourserver.com')
# settings = QSettings()
# pos = settings.value("pos", QPoint(200, 200))
# size = settings.value("size", QSize(615, 800))
# self.resize(size)
# self.move(pos)
#===============================================================================
...
def closeEvent(self, event):
if self.okToContinue():
# settings = QSettings()
# pass
self.writeSettings()
event.accept()
else:
event.ignore()
#====================================================================================================================
def loadSettings(self):
settings = QSettings('Exemple app', 'MX5000')
pos = settings.value("pos", QPoint(200, 200))
size = settings.value("size", QSize(615, 800))
self.resize(size)
self.move(pos)
def writeSettings(self):
settings = QSettings('Exemple app', 'MX5000')
settings.setValue("pos", self.pos())
settings.setValue("size", self.size())
#====================================================
# settings.setValue("size", QSize(615, 800).tosize())
# settings.setValue("pos", QPoint(200, 200).toPoint())
#====================================================
settings.sync()
#===================================================================================================================
def okToContinue(self):
if self.dirty is True:
reply = QMessageBox.question(self, self.tr("MX 5000", "Did you want to close the application ?"),
QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
if reply == QMessageBox.Cancel:
return False
elif reply == QMessageBox.Yes:
self.Mx5000.close()
self.application.quit()
self.writeSettings()
return True
Все файлы (Python и пользовательский интерфейс)доступно, если неясно некоторое время здесь: файл python
и
файл пользовательского интерфейса
Предварительно Спасибомного.