LINUX.ORG.RU

История изменений

Исправление Siborgium, (текущая версия) :

Тебе выше правильно ответили, API не подразумевает доступа к кнопочкам, все, что ты накостыляешь, костылями и останется.

Можешь как-то попытаться играть от того, что QSpinBox наследует от QWidget. Переписать обработчик событий, как-то вычислять кнопку в нем. Можешь сделать листенер, по сигналу valueChanged сравнивающий значение с предыдущим, сохраненным у себя. Например, если увеличилось, то был нажат инкремент, если уменьшилось, то декремент.

Однако, повторюсь, все это жуткие костыли. Если тебе действительно нужен этот функционал, сделай лучше свой SpinBox, со своими event’ами. Получится и проще, и поддерживаемее.

Вообще говоря, не понял прикола делать все эти QStepType, step’ы, когда можно было бы просто принимать две функции (или одной доп. параметр передавать). Тогда можно было бы и обычный QSpinBox запилить просто с помощью [](auto& n){ n += 1; }, и все кастомные типы данных в спинбокс пихать было бы тривиально, и никаких хаков для вычисления кнопок тем более не надо было бы. Но это уже пусть на совести разработчиков Qt остается.

Исходная версия Siborgium, :

Тебе выше правильно ответили, API не подразумевает доступа к кнопочкам, все, что ты накостыляешь, костылями и останется.

Можешь как-то попытаться играть от того, что QSpinBox наследует от QWidget. Переписать обработчик событий, как-то вычислять кнопку в нем. Можешь сделать листенер, по сигналу valueChanged сравнивающий значение с предыдущим, сохраненным у себя. Например, если увеличилось, то был нажат инкремент, если уменьшилось, то декремент.

Однако, повторюсь, все это жуткие костыли. Если тебе действительно нужен этот функционал, сделай лучше свой SpinBox, со своими event’ами. Получится и проще, и поддерживаемее.

Вообще говоря, не понял прикола делать все эти QStepType, step’ы, когда можно было бы просто принимать две функции (или одной доп. параметр передавать). Тогда можно было бы и обычный QSpinBox запилить просто с помощью [](auto& n){ n += 1; }, и все кастомные типы данных в спинбокс пихать было бы тривиально, и никаких хаков для вычисления кнопок тем более не надо было бы.