フラッシュ/ペン/ usb /ジャンプ/サムドライブから直接実行できるアプリケーションの場合、あるマシンから別のマシンに移動する際の移植性のためには、プログラムが実行されているのと同じディレクトリにあるメモリスティックに格納される設定(Windows/Mac/Linuxユーザまたはマシンごとのシステムディレクトリではなく)。QSettings():現在の作業ディレクトリに保存する方法
QSettings()は便利ですが、現在の作業ディレクトリを使用するよう指示できますか?
はここで)(QSettingsを使用して実行するたびにその画面位置を保ち、ほとんどのプログラム例です:
from PySide import QtGui, QtCore
from PySide.QtGui import QTabWidget, QApplication
from PySide.QtCore import QSettings
class AbcApp(QTabWidget):
def __init__(self):
super(AbcApp, self).__init__()
self.settings = QSettings(QSettings.IniFormat,QSettings.SystemScope, '__MyBiz', '__settings')
self.settings.setFallbacksEnabled(False) # File only, not registry or or.
# setPath() to try to save to current working directory
self.settings.setPath(QSettings.IniFormat,QSettings.SystemScope, './__settings.ini')
# Initial window size/pos last saved
self.resize(self.settings.value("size", QtCore.QSize(270, 225)))
self.move(self.settings.value("pos", QtCore.QPoint(50, 50)))
self.tab = QtGui.QWidget()
self.textEdit = QtGui.QTextEdit(self.tab)
self.textEdit.setHtml('<font color=grey>[QTextEdit area]</font><p><center><font color=blue size=4><b>Allo Woyld</b></font></center>')
self.addTab(self.tab, 'tab1')
def closeEvent(self, e):
# Write window size and position to config file
self.settings.setValue("size", self.size())
self.settings.setValue("pos", self.pos())
e.accept()
if __name__ == '__main__':
app = QApplication('')
frame = AbcApp()
frame.show()
app.exec_()
私は、現時点ではWindows上で実行することが起こるので、この.iniファイルが作成されます。C :\ Documents and Settings \ All Users \ Application Data__MyBiz__settings.ini。
SystemScopeではなくUserScopeが役に立ちません。 '.'
'./__settings.ini'
の代わりに、setPath()基本的に効果がありません。
も無駄にこれを試してみました:
filepath = os.getcwd() + '/__settings.ini'
self.settings.setPath(QSettings.IniFormat,QSettings.SystemScope, filepath)
参考:私はPySideに適応する方法を知りませんがhttps://doc.qt.io/archives/qt-4.8/qsettings.html http://www.pyside.org/docs/pyside/PySide/QtCore/QSettings.html
は有望:
http://www.qtcentre.org/archive/index.php/t-35287.html
更新日: alexisdmの回答がうまくいきますので、今更新したコードは次のとおりです:
from PySide import QtGui, QtCore
from PySide.QtGui import QTabWidget, QApplication
from PySide.QtCore import QSettings
class AbcApp(QTabWidget):
def __init__(self):
super(AbcApp, self).__init__()
self.settings = QSettings('settings.ini', QSettings.IniFormat)
self.settings.setFallbacksEnabled(False) # File only, no fallback to registry or or.
# Initial window size/pos last saved if available
self.resize(self.settings.value('size', QtCore.QSize(270, 225)))
self.move(self.settings.value('pos', QtCore.QPoint(50, 50)))
self.tab = QtGui.QWidget()
self.textEdit = QtGui.QTextEdit(self.tab)
self.textEdit.setHtml('<font color=grey>[QTextEdit area]</font><p><center><font color=blue size=4><b>Allo Woyld</b></font></center>')
self.addTab(self.tab, 'tab1')
def closeEvent(self, e):
self.settings.setValue('size', self.size())
self.settings.setValue('pos', self.pos())
e.accept()
if __name__ == '__main__':
app = QApplication('')
frame = AbcApp()
frame.show()
app.exec_()
これは機能します、ありがとうございます。 – gseattle