Dynamiczne nazwy przycisków w QT Designer

Dynamiczne nazwy przycisków w QT Designer
X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

Mam 8 PushButtons stworzonych w designerze. Jak nadać im nazwy w programie i sygnały?

edytowany 1x, ostatnio: Riddle
S4
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:1268
0
Althorion
Moderator C/C++
  • Rejestracja:prawie 10 lat
  • Ostatnio:około 10 godzin
  • Postów:1605
1

Tak z ciekawości — jest jakiś powód, dla którego korzystasz z PyQt 4, podczas gdy już szóstka wyszła?

X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

W dokumentacji nie piszą o takich rzeczach.

X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

Dynamicznie można to tak zrobić:

Kopiuj
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()
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10073
0

Jakiś konkretny powód ku temu? Trochę nie kumam zasadności tego zabiegu.

X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

Krótszy? Napisz i zapodaj tu. Zaciekawiłeś mnie. Powód jest taki, że muszę nadać nazwy i sygnały dynamicznie. Robię archiwum tv.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10073
1
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?

edytowany 1x, ostatnio: Riddle
X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

No można. Też o tym myślałem.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Laska, z Polski
  • Postów:10073
0
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.

edytowany 4x, ostatnio: Riddle
X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

Można i tak.

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.