#!/usr/bin/env python3 from PyQt5 import QtCore from PyQt5 import QtWidgets from PyQt5 import QtGui from PyQt5 import QtPrintSupport def settings(): settings = QtCore.QSettings("Yansoft","Prasopes") defvals = {("view/autozoomy", True), ("view/filebrowservisible", True), ("view/intensities", False)} [settings.setValue(i[0], i[1]) for i in defvals if settings.value(i[0]) == None] return settings def pathsearch(text, value, config): filename = QtWidgets.QFileDialog.getExistingDirectory() if filename is not '': text.setText(filename) config.setValue(value, filename) def pathlayout(label, value, config): """adds generic filepath config line""" textfield = QtWidgets.QLineEdit(config.value(value)) textfield.editingFinished.connect(lambda: config.setValue( value, textfield.text())) browse_button = QtWidgets.QPushButton("Browse..") browse_button.clicked.connect(lambda: pathsearch( textfield, value, config)) layout = QtWidgets.QHBoxLayout() layout.addWidget(QtWidgets.QLabel("{}:".format(label))) layout.addWidget(textfield) layout.addWidget(browse_button) return layout def dial(parent): """constructs a dialog window""" dialog = QtWidgets.QDialog( parent, windowTitle='Settings') dialog.resize(600,-1) config = settings() close_button = QtWidgets.QPushButton("Close") close_button.clicked.connect(dialog.close) butt_layout = QtWidgets.QHBoxLayout() butt_layout.addWidget(close_button) butt_layout.addStretch(1) layout = QtWidgets.QVBoxLayout(dialog) layout.addLayout(pathlayout("Acquisition temp folder", "tmp_location", config)) layout.addLayout(pathlayout("Default open folder", "open_folder", config)) layout.addStretch(1) layout.addLayout(butt_layout) dialog.show()