gpt4 book ai didi

具有一组预定义值的 Qt QSpinBox

转载 作者:行者123 更新时间:2023-12-03 05:05:49 24 4
gpt4 key购买 nike

我有一个QSpinBox,它应该只接受一组离散值(比如说2、5、10)。我可以 setMinimum(2)setMaximum(10),但不能 setSingleStep 因为我的步长为 3,步长为 5。

是否有其他我可以使用的小部件,但其 UI 与 QSpinBox 相同?

如果没有,我应该覆盖什么才能达到预期的效果?

最佳答案

使用QSpinBox::stepsBy()来处理这些值。

例如:

class Spinbox: public QSpinBox
{
public:
Spinbox(): QSpinBox()
{
acceptedValues << 0 << 3 << 5 << 10; // We want only 0, 3, 5, and 10
setRange(acceptedValues.first(), acceptedValues.last());

}
virtual void stepBy(int steps) override
{
int const index = std::max(0, (acceptedValues.indexOf(value()) + steps) % acceptedValues.length()); // Bounds the index between 0 and length
setValue(acceptedValues.value(index));
}
private:
QList<int> acceptedValues;
};

关于具有一组预定义值的 Qt QSpinBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com