gpt4 book ai didi

C++ - Qt Creator -/How to have DOT and COMMA as decimal separator on a QDoubleSpinBox?

转载 作者:太空宇宙 更新时间:2023-11-04 13:05:43 26 4
gpt4 key购买 nike

我正在 QT Creator 上构建 C++ GUI 应用程序。我将位置更改为葡萄牙语/巴西,现在只有逗号是小数点分隔符。

我需要 QDoubleSpinBox 作为小数点分隔符和逗号。官方逗号是葡萄牙语的分隔符,但有些键盘只有数字部分有点。

请帮忙,

最佳答案

子类QDoubleSpinBox并重新实现虚方法validate

这里有完整的解决方案:

customSpinBox.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QRegExpValidator>
#include <QDoubleSpinBox>



class CustomSpinBox : public QDoubleSpinBox {
Q_OBJECT

public:
explicit CustomSpinBox(QWidget* parent =0);
virtual QValidator::State validate(QString & text, int & pos) const;

private:
QRegExpValidator* validator;

};
#endif // WIDGET_H

customSpinBox.cpp

CustomSpinBox::CustomSpinBox(QWidget *parent):QDoubleSpinBox(parent),
validator(new QRegExpValidator(this))
{
validator->setRegExp(QRegExp("\\d{1,}(?:[,.]{1})\\d*"));
}

QValidator::State CustomSpinBox::validate(QString &text, int &pos) const
{
return validator->validate(text,pos);
}

关于C++ - Qt Creator -/How to have DOT and COMMA as decimal separator on a QDoubleSpinBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42534378/

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