Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

[solved]Jak dodać slot i sygnał do kontrolek



  • Witam, mam problem ze slotami (i sygnałami jeżeli w tym przypatku sygnał jest też potrzebny).
    Jak można dodać slot np do kontroli QTabWidget resize(kiedy kontrolka zmienia rozmiar), podwujne klikniczy czy kliknięcie prawym klawiszem ??



  • Ja zacząłbym od dziedziczenia i wyłapywania event'ów lub przesłonienia metod, gdzie jest obsługa tego co chcesz rozszerzyć. Sprawdzasz np. zdarzenie i emitujesz sygnał. Napisz jakiś kod, to ktoś może doradzi, jeśli napotkasz problem. Od samego gdybania i zadawania pytań żadna kontrolka nie powstała ;)



  • Hej,
    Możesz też obejść się bez dziedziczenia w ciekawy sposób, jeśli jest taka potrzeba. Jest to specjalny adapter:

    Zdefiniować obiekt np. EventProxy dziedziczący z QObject, zdefiniować w nim niezbędne sygnały

    Dodać metodę np. void addWidget(QWidget* w) do tego obiektu gdzie użyjesz installEventFilter() by obserwować zdarzenia obiektu w

    Dodać EventProxy::eventFilter( QObject * object, QEvent * event ) i tutaj sprawdzić typ zdarzenia, jak pasuje, wyemitować odpowiedni sygnał

    To podejście jest bardziej uniwersalne.

    Dodatkowa zaleta: można zezwolić na filtrowanie jednym adapterem wielu zdarzeń, czyli mamy pewne mapowanie, analogiczne do signal mappera.


Log in to reply