В listctrl
, если текст в ячейке длиннее ширины ячейки, будет видна только часть текста. Когда я помещаю курсор мыши поверх указанной ячейки, появляется небольшое всплывающее окно в попытке отобразить полный текст (см. скриншоты ниже). Интересно, есть ли способ подавить/отключить это поведение.
wxpython: подавить/отключить всплывающее окно при наведении с помощью listctrl
Ответы (2)
Эта всплывающая подсказка отображается встроенным элементом управления при использовании расширенного стиля LVS_EX_LABELTIP
и, ИМХО, очень полезна, поскольку без нее невозможно увидеть содержимое слишком длинной ячейки, не изменяя размер всего столбца. Из-за этого он включен по умолчанию, и, поскольку он очень специфичен для MSW, API wxWidgets не позволяет его отключить.
Если вам действительно нужно это сделать, вы всегда можете использовать код, специфичный для MSW, и сделать что-то вроде (предупреждение: непроверенный код):
#ifdef __WXMSW__
HWND hwndList = (HWND)listctrl->GetHandle();
LPARAM style = ::SendMessage(hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
::SendMessage(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, style & ~LVS_EX_LABELTIP);
#endif
DataViewCtrl
, я обязательно получу вознаграждение :)
- person nepix32; 07.06.2016
DataViewCtrl
для MSW.
- person nepix32; 07.06.2016
Вместо этого вы можете использовать DataViewListCtrl
, в котором отсутствует эта полезная функция (ToolText, когда строка имеет размер эллипса). Насколько я знаю, это не дроппин для ListCtrl
, поэтому синтаксис для его использования будет другим.