У меня есть класс, который наследует QDockWidget. В этом классе есть четыре QTabWidgets (материал TCP, материал ftp, материал SQL и настройки), каждый из которых имеет свою собственную функциональность, означающую, что каждый из них имеет разные сигналы/слоты, которые необходимо захватить или вызвать. Каждая вкладка имеет несколько сигналов/слотов, которые важны для захвата или вызова основного пользовательского интерфейса. Есть ли способ предотвратить засорение моего класса QDockWidget сигналами и слотами из виджетов вкладок, которые он содержит, или это именно то, что нужно? сделать?
настройка сигналов/слотов в виджете Dock, который содержит много виджетов вкладок
comment
Классу QDockWidget не нужно ничего знать о сигналах, которые проходят между QTabWidgets и главным окном.
- person TonyK   schedule 24.11.2011
comment
Но первый параметр connect() — это объект, который излучает сигнал, так как же я могу перехватить сигнал от виджета вкладки, инкапсулированного в QDockWidget, если главное окно знает только о QDockWidget?
- person TheFuzz   schedule 24.11.2011
comment
Виджеты вкладок могут вызывать connect().
- person TonyK   schedule 24.11.2011
Ответы (1)
Вы можете определить функции получения в заголовочном файле вашего подкласса QDockWidget, например:
inline QWidget* tcpStuffWidget() { return <pointer_to_widget>; }
и в основном пользовательском интерфейсе вы можете сделать что-то вроде
connect( dockWidget()->tcpStuffWidget(), SIGNAL( ... ),
this , SLOT ( ... ) );
person
Tim Meyer
schedule
24.11.2011
Так что мне просто придется замусорить мой основной код пользовательского интерфейса с помощью connect(..) тогда?
- person TheFuzz; 25.11.2011
Вы можете размещать операторы подключения где угодно, если у вас есть указатель на отправителя и получателя в этом месте.
- person Tim Meyer; 25.11.2011