Mam 8 PushButtons stworzonych w designerze. Jak nadać im nazwy w programie i sygnały?
- Rejestracja:około 3 lata
- Ostatnio:ponad rok
- Postów:1268
Tu bym zaczął https://wiki.qt.io/Qt_Buttons
- Rejestracja:ponad 9 lat
- Ostatnio:2 miesiące
- Postów:308
Dynamicznie można to tak zrobić:
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QHBoxLayout
class Example(QWidget):
def __init__(self):
super().__init__()
layout = QHBoxLayout()
self.setLayout(layout)
for i in range(10):
button = QPushButton(str(i), self)
button.setObjectName('button_' + str(i))
button.clicked.connect(self.test)
layout.addWidget(button)
def test(self):
button = self.sender()
print(f'Button Object name: {button.objectName()}\nButton Text: {button.text()}')
if __name__ == '__main__':
app = QApplication([])
example = Example()
example.show()
app.exec()

- Rejestracja:prawie 15 lat
- Ostatnio:około 12 godzin
- Lokalizacja:Laska, z Polski
- Postów:10073
xenix33 napisał(a):
Krótszy? Napisz i zapodaj tu. Zaciekawiłeś mnie. Powód jest taki, że muszę nadać nazwy i sygnały dynamicznie. Robię archiwum tv.
A nie możesz po prostu nadać im nazw w designerze, i potem zrobić array z nimi? I odnosić się do tego array'a po indexie?

- Rejestracja:prawie 15 lat
- Ostatnio:około 12 godzin
- Lokalizacja:Laska, z Polski
- Postów:10073
xenix33 napisał(a):
No można. Też o tym myślałem.
Wydaje mi się że pomysł z nazwami to X/Y. Bo tak na prawdę chcesz po prostu spójny dostęp do wszystkich przycisków "na raz". I najlepszym wyjściem do tego jest traktować je jako kolekcję (np array).
Pomysł żeby dobierać się po nich po dynamicznych nazwach, w mojej opinii w ogóle nie jest warty rozważania w takim wypadku.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.