[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.