Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: tankist от Февраль 06, 2019, 16:56



Название: [РЕШЕНО] QSpinBox с разрядностью 64 бит
Отправлено: tankist от Февраль 06, 2019, 16:56
Требуется, чтобы виждет QSpinBox возвращал 64-битное значение (по документации возвращает int). Как это можно сделать? Пробовал деклассировать QSpinBox, но функция valueFromText() возвращает опять же int, чего недостаточно.


Название: Re: QSpinBox с разрядностью 64 бит
Отправлено: GreatSnake от Февраль 06, 2019, 17:12
QDoubleSpinBox с decimals = 0


Название: Re: QSpinBox с разрядностью 64 бит
Отправлено: qate от Февраль 06, 2019, 21:00
https://stackoverflow.com/questions/8383620/64bit-int-spin-box-in-qt


Название: Re: QSpinBox с разрядностью 64 бит
Отправлено: Igors от Февраль 07, 2019, 11:42
QDoubleSpinBox с decimals = 0
Практически наверно достаточно, но все-таки можно придраться: ведь double имеет больший диапазон, а значит меньшее число значений, при каком-то достаточно большом значении инкремент перестанет работать. Старый фокус
Код
C++ (Qt)
if (a == (a + 1))
// эта ветка может сработать
Думается хорошим решением было бы прилепить еще контрол, напр попапку которая показывает размерность спинбокса напр 1, Кб, Мб, Гб и кастом.


Название: Re: QSpinBox с разрядностью 64 бит
Отправлено: tankist от Февраль 07, 2019, 13:32
Думается хорошим решением было бы прилепить еще контрол, напр попапку которая показывает размерность спинбокса напр 1, Кб, Мб, Гб и кастом.

Смысл спинбокса - индикация десятичного представления 48-битного числа, которое указано побитно выше, с возможностью инкремента/декремента, поэтому размерность нереализуема.

Спасибо за советы, все варианты подходящие.


Название: Re: QSpinBox с разрядностью 64 бит
Отправлено: sergek от Февраль 07, 2019, 14:19
Смысл спинбокса - индикация десятичного представления 48-битного числа, которое указано побитно выше, с возможностью инкремента/декремента..
Прочтите, что вы написали. Если число изменяется, то это значит, его будете где-то использовать (иначе зачем изменять)) А о проблемах сравнения чисел с плавающей точкой вам напомнили, так что будьте внимательнее.