Для QDoubleSpinBox могу ли я дать диапазон 0,0 <мин <макс <1,0. Если да, то как мне заставить работать кнопки шага? - PullRequest
1 голос
/ 12 мая 2009

Я использую QDoubleSpinBox,

И иногда у меня есть диапазон, где min и max меньше 1 и больше 0. Если я установлю этот диапазон, когда я нажму на шаг вниз, значение в поле прокрутки изменится на 0.0, и шаг вверх приведет к 1,0, даже если они находятся вне диапазона. Я хотел бы знать, есть ли конкретный способ избежать этой проблемы.

Ответы [ 2 ]

2 голосов
/ 14 мая 2009

Как сказал Паркер, вам нужно использовать setSingleStep (), чтобы вы не увеличивали на 1,0.

Более того, поддержка «исключительных» диапазонов не поддерживается, т. Е. Вы не можете задать диапазон от 0 до 1,0, если не хотите использовать также значения 0 и 1,0.

Вместо этого, как только вы определились с размером шага, вы можете установить минимальные и максимальные значения следующим образом:

minimum = exclusive_minimum + step_size
maximum = exclusive_maximum - step_size

Однако это может быть нежелательным, поскольку пользователь может выбирать значения между размерами шага, вводя их непосредственно в поле прокрутки. Поэтому лучшим решением будет выбрать, сколько десятичных разрядов должно быть точным в спинбоксе, и установить минимальное и максимальное значения для наименьшего и наибольшего числа, ближайшего к значениям exclusive_minimum и exclusive_maximum.

Например, если exclusive_minimum равен 0,0, а exclusive_maximum равен 1,0, и вы с точностью до пяти десятичных знаков, то установите минимальное значение 0,00001 и максимальное значение 0,99999.

2 голосов
/ 12 мая 2009

Используйте setSingleStep (), чтобы установить размер шага, подходящий для вашего диапазона. (http://doc.trolltech.com/4.5/qdoublespinbox.html#singleStep-prop)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...