Dynamiczne nazwy przycisków w QT Designer

0

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

0

Tu bym zaczął https://wiki.qt.io/Qt_Buttons

1

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

0

W dokumentacji nie piszą o takich rzeczach.

0

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()
0

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

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.

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?

0

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

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.

0

Można i tak.

1 użytkowników online, w tym zalogowanych: 0, gości: 1