私は、既存のオプションで事前設定している設定ダイアログを持っています。これはcfg
に保存されています。ユーザーが「保存」(または同等のもの)をクリックすると、QLineEditオブジェクトから新しい値を取得する必要があります。私はそれを理解できないことを除いて。私は昨日夕方からグーグルでテストしていました。PyQt5から変更されたデータを取得QDialog
class Config(QDialog):
def __init__(self):
super(Config, self).__init__()
popup = QDialog()
config_ui = configform()
config_ui.setupUi(popup)
config_ui.programver.setText(cfg['config']['programver'])
if cfg['config']['dummycopy']:
config_ui.democheck.setChecked(True)
config_ui.tmdbAPIkey.setText(cfg['config']['TMDB_KEY'])
config_ui.tvdbAPIkey.setText(cfg['config']['TVDB_KEY'])
config_ui.tvdbUserkey.setText(cfg['config']['TVDB_USERKEY'])
theme = cfg['config']['theme']
if theme == "blue":
config_ui.bluebutton.setChecked(True)
elif theme == "yellow":
config_ui.yellowbutton.setChecked(True)
elif theme == "light":
config_ui.lightmetalbutton.setChecked(True)
elif theme == "dark":
config_ui.darkmetalbutton.setChecked(True)
programversion = config_ui.programver.text()
config_ui.savebutton.clicked.connect(lambda: Config.save(self, programversion))
popup.exec_()
def save(self, programversion):
QDialog.close(self)
print(programversion)
私が変更されたフィールドで取得するには、いくつかのブードゥー教が必要になります。ここに私のダイアログのコードは、(フォームにはGUIのコードはありません理由ですQtのデザイナー、からである)です。私が今取得できるのは、ダイアログが生まれてからの元の値です。これにトリックはありますか?ダイアログボックスをあらかじめ設定しておくのは初めての人にはなりません。私は、ボタンとボタンボックスのバリエーションを組み合わせて試してみたことを誓っています。
ダイアログを隠してデータを取得してからダイアログを破棄する方法があると思いますか?とにかくそれは一つの働く理論です。
ありがとうございます。
cfgに加えて、Qt Designerの設計を共有してください。 – eyllanesc
configファイルの要点(ConfigParserモジュールが読む)、config.uiのXML、生成されたPythonファイル... https://gist.github.com/bundito/e6656928dedc61fa45fa2e1b90b18b12 – Dito
私の答えを参照してください。 – eyllanesc