QT - Как я могу создать полосу прокрутки с длинными int (вместо int) шагами?

Я пытаюсь создать приложение QT GUI (для образовательных целей), чтобы получить доступ к необработанным данным жесткого диска. Я добавил таблицу с 32+1 столбцами (байты + смещение) и отдельной вертикальной полосой прокрутки рядом с ней. Приложение читает только видимые (для макета таблицы) байты. Событие инициируется, когда пользователь поворачивает колесо над виджетом таблицы и представленные данные обновляются.

Я также хочу, чтобы полоса прокрутки имела похожее поведение (и, конечно, была перетаскиваемой). В этом случае я должен установить максимальное значение полосы прокрутки (шаги) в totalHdBytes/32. Однако в большинстве случаев это длинное целое число (не целое число), поэтому оно неприемлемо для объекта QScrollBar.

Мой вопрос:

Как я могу создать полосу прокрутки с таким количеством шагов, сколько я хочу?

1 ответ

По предположению Дмитрия, создавать (и напрямую невозможно) создание QScrollBar с такими большими числами, так как вам не хватает разрешения дисплея / мыши. Поэтому я предлагаю вам сделать следующее:

  • Использовать QLineEdit ввести адрес (опционально используя inputMask или же validator) или реализовать свой собственный QScrollBox как обсуждено в этом посте.

  • Карта QScrollBar диапазон до желаемого диапазона с использованием коэффициента умножения.

Другие вопросы по тегам