私は初心者で、PyQT5モジュールをいじって、小さなプログラムのGUIを作成する方法を学びます。
3つのチェックボックスと1つのボタンを備えた小さなGUIを作成しました。チェックボックスの機能は変更されます。
私の現在の実装は次のようになります:
#Checkboxes and button logic
def stateChanged(self):
if self.GetErrorsBox.isChecked() and self.GetSpecsBox.isChecked() and self.GetConfigBox.isChecked():
self.execButton.clicked.connect(lambda: self.getErrors())
self.execButton.clicked.connect(lambda: self.copyConfig())
self.execButton.clicked.connect(lambda: self.getSpecs())
elif self.GetErrorsBox.isChecked() and self.GetSpecsBox.isChecked():
self.execButton.clicked.connect(lambda: self.getSpecs())
self.execButton.clicked.connect(lambda: self.getErrors())
elif self.GetErrorsBox.isChecked() and self.GetConfigBox.isChecked():
self.execButton.clicked.connect(lambda: self.getErrors())
self.execButton.clicked.connect(lambda: self.getSpecs())
elif self.GetSpecsBox.isChecked() and self.GetConfigBox.isChecked():
self.execButton.clicked.connect(lambda: self.copyConfig())
self.execButton.clicked.connect(lambda: self.getSpecs())
elif self.GetSpecsBox.isChecked():
self.execButton.clicked.connect(lambda: self.getSpecs())
elif self.GetErrorsBox.isChecked():
self.execButton.clicked.connect(lambda: self.getErrors())
elif self.GetConfigBox.isChecked():
self.execButton.clicked.connect(lambda: self.copyConfig())
質問:これらすべてのIFおよびELIFをより読みやすいものにリファクタリングする方法はありますか?
私はので、私は、将来的にはさらに別のチェックボックスを追加することができ、本当にのIFとELIFsを追加し続ける必要はありません。私は次のヤンデブになりたくないです、笑。
あなたはすべてを必要とせずelif
、ただ次のようにしてください:
if self.GetSpecsBox.isChecked():
self.execButton.clicked.connect(lambda: self.getSpecs())
if self.GetErrorsBox.isChecked():
self.execButton.clicked.connect(lambda: self.getErrors())
if self.GetConfigBox.isChecked():
self.execButton.clicked.connect(lambda: self.copyConfig())
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加