Мне нужно отображать контекстное меню всякий раз, когда нажимается вкладка, и ему нужно реагировать на эту конкретную вкладку. Есть ли способ сделать это без подклассификации?Вкладка контекстного меню вкладки QTabWidget
ответ
Легкий способ, но, возможно, не совсем то, что вам нужно:
- Подключение к сигналу «currentChanged» вашего QTabWidget
- В слот, который подключен к сигналу, создать QMenu и заполнить его при необходимости
- Наконец, в слот, который подключен к сигналу, вызовите QMenu :: Exec (QCursor :: поз())
Это позволит получить функцию с именем всякий раз, когда вкладка изменяется (не nece ssarily clicked) и создайте меню в текущей позиции мыши.
сложный путь, который точно делает то, что вы описали:
- вызов QObject::installEventFilter на вашем QTabWidget, так что все события на вашем QTabWidget перенаправляются на ваш объект.
- В своем собственном объекте переопределите QObject::customEvent и обработайте все события QMouseEvent.
- Заполните QMenu при необходимости и вызовите QMenu :: exec в позиции QMouseEvent, которую вы обрабатываете.
Мне кажется, вам нужно создать свой собственный класс, который наследуется от QTabWidget и переопределить функцию MousePressEvent (QMouseEvent), в которой вы можете создать свое контекстное меню по правому клику.
-1, так как он специально попросил способ достичь желаемого без подкласса QTabWidget. –
Если он не знаком с installEventFilter, наследование является более простым способом. Но пусть сначала попробует ваше второе решение. –
- 1. Вкладка QTabWidget не отображается
- 2. Настройка цвета вкладки QTabWidget
- 3. ActionBarSherlock Изменение контекстного меню для каждой вкладки
- 4. Как изменить высоту и ширину вкладка QTabWidget
- 5. QStackedWidget внутри вкладки QTabWidget?
- 6. Добавить меню контекстного меню в закладки
- 7. Pure CSS меню вкладки активной вкладка
- 8. Доступ к виджету вкладки в QTabWidget
- 9. Переменная вкладка вкладки SwRevealViewController
- 10. Добавление вкладки в QTabWidget. пусто?
- 11. QTabWidget вкладки полки как eclipse
- 12. Отслеживать подвижные вкладки в QTabWidget
- 13. идентифицировать вкладки в QT Qtabwidget
- 14. PyQt: переупорядочить вкладки в QTabWidget
- 15. Элемент контекстного меню контекстного меню Devexpress нажмите
- 16. Вызов контекстного меню контекстного меню Windows Explorer
- 17. Отключить контекстное меню контекстного контекстного меню Firefox
- 18. Определите конкретные вкладки QTabWidget через таблицу стилей
- 19. Закрыть кнопку на QTabWidget, а не вкладки в QTabWidget
- 20. Меню контекстного меню списка
- 21. Как найти индекс нажатой вкладки в QTabWidget в Python QT?
- 22. Изменение вкладки QTabWidget с помощью кнопки
- 23. Динамические вкладки, отдельная вкладка навигация
- 24. Android - вкладка меню перевода
- 25. Как определить, меняется ли текущая вкладка в QTabWidget?
- 26. выбранная вкладка в меню
- 27. Visual Studio 2010: название контекстного меню вкладки «Документ»
- 28. Как сделать вкладки QTabWidget соответствующими размеру контейнера - отрегулировать его длину?
- 29. Вкладка QTabWidget ничего не отображает на одной из вкладок
- 30. Вкладка вкладки настроек
Ваше первое легкое решение не работает так, как он хочет. Контекстное меню не будет отображаться, щелчок мышью осуществляется на текущей вкладке. Единственное решение, похоже, ваше второе. –