#c #qt #overloading #qcombobox
#c #qt #перегрузка #qcombobox
Вопрос:
Я хочу перегрузить QComboBox для удовлетворения своих потребностей, но я не знаю, какие функции-члены должны быть перегружены и как их реализовать
Конкретные требования заключаются в следующем:
- Скройте текстовое поле QComboBox, измените стиль выпадающей кнопки, в общем, сделайте ее похожей на QPushButton
- Превратите выпадающий список в таблицу
такие , как:
Комментарии:
1. Зачем вам нужно поле со списком для этого (и если вам нужно. У него есть модель данных и поддержка делегирования, которая может быть ответственна за это). Qt — это не MFC (WFC), который тоже работает исключительно из-за перегрузок. Но в данном случае это выглядит как кнопка, которая показывает меню по сигналу click()..
2. @Swift-FridayPie Если я использую меню, может ли меню быть табличным? И меню должно быть рядом с кнопкой. Я не знаю, как этого добиться. Можете ли вы рассказать мне подробно? Спасибо
3. Вероятно, вам было бы лучше использовать фактическую QPushButton вместе с пользовательским диалоговым окном, которое отображается в соответствующем месте в ответ на его
clicked()
siganl.4. @JeremyFriesner пользовательский диалог или меню? Какой из них лучше
5. Меню AFAIK в Qt всегда представляют собой один вертикальный столбец (с дополнительными подменю), поэтому, если вам действительно нужен макет таблицы с несколькими столбцами, я думаю, что написать пользовательский диалог с QGridLayout было бы проще, чем пытаться взломать QMenu для выполнения чего-то, для чего он не предназначен.