Ausführen einer Funktion durch eine für Schleife mit einer Änderung des Index in einer Variablen [Duplikat] ausführenPython

Python-Programme
Anonymous
 Ausführen einer Funktion durch eine für Schleife mit einer Änderung des Index in einer Variablen [Duplikat] ausführen

Post by Anonymous »

Es gibt 20 Kontrollkästchen im Fenster des Benutzers. Im Code ist der Name Checkbox_1, CheckBox_2, ... CheckBox_20. Um alle Kontrollkästchen gleichzeitig zu aktivieren, verwende ich diesen Algorithmus: < /p>

Code: Select all

def select_all_W(self):
self.Ui.checkBox_1.setChecked(True)
self.Ui.checkBox_2.setChecked(True)
# .................................
self.Ui.checkBox_20.setChecked(True)
< /code>
Dies macht den Code sehr groß und schwer. Ist es möglich, dasselbe durch eine Funktion oder beispielsweise durch eine Schleife zu tun: < /p>
for i in range 20
self.Ui.checkBox_[i].setChecked(True)
< /code>
Mit anderen Worten können Sie die Aktivierung einer großen Anzahl von Fensterelementen vereinfachen?class Win_menu(QMainWindow, Ui_MainWindow):

def __init__(self, parent=None):
super().__init__(parent)
self.Ui = Ui_MainWindow()
self.Ui.setupUi(self)
self.show()

self.Ui.pushButton_3.clicked.connect(self.select_all_W)
self.Ui.pushButton_4.clicked.connect(self.select_all_W)
self.Ui.pushButton_5.clicked.connect(self.select_all_A)
self.Ui.pushButton_6.clicked.connect(self.select_all_A)

def win_dlg(self):

self.setup_games()
self.Win_menu4 = Win_menu4()
self.Win_menu4.show()

def setup_games(self):

global warriors, magics, scouts, healers, special_W, special_M, special_S, special_H, leutents, cardOL, base_cardOl

if self.Ui.checkBox_1.isChecked():
warriors.extend(hero_B_W)
magics.extend(hero_B_M)

....
if self.Ui.checkBox_9.isChecked():
warriors.append('Karnon')
if self.Ui.checkBox_10.isChecked():
warriors.append('korbin')
if self.Ui.checkBox_11.isChecked():
warriors.append('Kruzbek')

def select_all_A(self):
self.Ui.checkBox_49.setChecked(True)
self.Ui.checkBox_50.setChecked(True)
self.Ui.checkBox_51.setChecked(True)

def reset_all_A(self):

self.Ui.checkBox_49.setChecked(False)
self.Ui.checkBox_50.setChecked(False)
self.Ui.checkBox_51.setChecked(False)

hero_B_W = ['Grisban', 'Sindrael']
hero_B_M = ['Tarcha', 'Leorik']

if __name__ == '__main__':
app = QApplication(sys.argv)
window = Win_menu()
window.show()

sys.exit(app.exec_())

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post