[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
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.