質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

Q&A

1回答

1211閲覧

QComboBoxに追加した項目を保存、再読み込みしたい

M3U3kHtlUzKWo17

総合スコア0

Qt

QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

0グッド

0クリップ

投稿2020/09/10 08:24

発生している問題・エラーメッセージ

pysideのQ combboxを編集可能状態にして、ui上でテキストを打ち込み
itemを追加した状態でuiを閉じたときに設定ファイルに書き出しもう一度開いたときに前回のitemがあるようにしたいです。
現状ではdefultに戻ってしまいます。

設定ファイルはiniで書き出し、setvalueでsaveしてsetting valueで読み込みたいと思っています。

試したこと

ここに問題に対して試したことを記載してください。

webサイトでは追加までは見つかりましが、保存までの記載がありませんでした。

補足情報(FW/ツールのバージョン

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ini 形式での設定ファイルは QSettings を利用するのが一般的です。

QComboBox の設定は、setupUi() の後に setCurrentText() で指定するか、findData()findText() の結果を setCurrentIndex() で指定します。

投稿2020/09/10 09:11

tasuku.

総合スコア347

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

M3U3kHtlUzKWo17

2020/09/10 15:05 編集

#!python3 # -*- coding: utf-8 -*- import sys import os.path from PySide2 import QtCore, QtGui, QtWidgets from PySide2.QtUiTools import QUiLoader CURRENT_PATH = os.path.dirname(os.path.abspath(sys.argv[0])) class UISample(QtWidgets.QMainWindow): def __init__(self, parent=None): super(UISample, self).__init__(parent) self.ui = QUiLoader().load(os.path.join(CURRENT_PATH, 'qsettings.ui')) self.setCentralWidget(self.ui) self.loadSettings() def closeEvent(self, e): self.saveSettings() def loadSettings(self): setting = QtCore.QSettings("setting.ini", QtCore.QSettings.IniFormat) if setting.value(self.ui.comboBox.objectName()) is not None: self.ui.comboBox.setCurrentIndex(int(setting.value(self.ui.comboBox.objectName()))) def saveSettings(self): setting = QtCore.QSettings("setting.ini", QtCore.QSettings.IniFormat) # ComboBoxの選択情報保存 setting.setValue(self.ui.comboBox.objectName(), self.ui.comboBox.currentIndex()) def str2bool(val): if val == 'true': return True return False if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) a = UISample() a.show() sys.exit(app.exec_()) ------------------------------------------------------------------------------------------------ 回答ありがとうございます。 今記載しているコードを記載しました。 よろしければサンプルのコードなどいただければ幸いです。 またitem欄に関してはユーザーが自由に消したり足したりした状態でウインドウが閉じたときに保存できればと思っています。 よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問