ich möchte den Aufbau von 7 Button's (Objekte) in einer For Schleife machen und sie weiter zu verwenden.
Stehe gerade auf dem Schlauch mit dem erstellen der Button als Objekt und den entsprechenden Namen vom Objekt. Evtl. ist mein Ansatz grundlegend falsch.
Wie macht man sowas sauber?
Ein Objekt erstellen, dann das Objekt in die Liste nehmen um dann in der For Schleifte zu verwenden, ist sicherlich ein Unding.
Im Butten soll dann nur das Icon ersichtlich sein, also kein Text.
Code: Alles auswählen
self.bt_open_logfile = BarButton('')
self.bt_open_usersettings_file = BarButton('')
self.bt_open_defaultsetting_file = BarButton('')
self.bt_save_file_action = BarButton('')
self.bt_print_action = BarButton('')
self.bt_undo_action = BarButton('')
self.bt_redo_action = BarButton('')
defaut_bar_button = [[self.bt_open_logfile, 'cil-notes.png','Datenmanager Datei öffnen', ''],
[self.bt_open_usersettings_file, 'cil-user.png', 'Lokale Einstellungen öffnen', ''],
[self.bt_open_defaultsetting_file, 'cil-people.png', 'Allgemeine Einstellungen öffnen', ''],
[self.bt_save_file_action, 'cil-save.png', 'Speichern', 'Ctrl+s'],
[self.bt_print_action, 'cil-print.png', 'Drucken', 'Ctrl+p'],
[self.bt_undo_action, 'cil-action-undo.png', 'Zurück', 'Ctrl+z'],
[self.bt_redo_action, 'cil-action-redo.png', 'Vor', 'Ctrl+Shift+z']
]
for item in defaut_bar_button:
item[0].setIcon(QIcon(path.join('images', item[1])))
item[0].setToolTip(item[2])
item[0].setShortcut(item[3])
V_barButton.addWidget(item[0])
self.bt_open_logfile.clicked.connect(lambda checked: self.open_file('log.txt'))
self.bt_open_usersettings_file.clicked.connect(lambda checked: self.open_file('user_settings.ini'))
self.bt_open_defaultsetting_file.clicked.connect(lambda checked: self.open_file('default_settings.ini'))
self.bt_save_file_action.clicked.connect(self.file_save)
self.bt_print_action.clicked.connect(self.file_print)
self.bt_undo_action.clicked.connect(self.editor.undo)
self.bt_redo_action.clicked.connect(self.editor.redo)
Code: Alles auswählen
class BarButton(QPushButton):
def __init__(self, *args, **kwargs):
super(BarButton, self).__init__(*args, **kwargs)
QPushButton.__init__(self, *args, **kwargs)
self.setObjectName('BarButton')
self.setIconSize(QtCore.QSize(18, 18))
self.setMaximumSize(35, 35)
self.setContentsMargins(0, 0, 0, 0)