سلام برای چک کردن عدد بودن بهترین راه استفاده از regex هستش
یک باتون بزار روی فرم QDialog این کد رو هم بزار داخل SLOT کلیک :
QRegExp regex("\\d+.{0,1}\\d+");
bool isNumber=regex.exactMatch(ui->lineEdit->text());
if(!isNumber)
QMessageBox::critical(this,"Error","please enter number");
else
accept();
توضیحات کد مربوط به regex
\\d
یک رقم رو تشخیص میده
وقتی + جلوشو گذاشته میشه یعنی یک یا تعداد بیشتری رو تشخیص بده
. (dot) هم برای عدد اعشاری هست
{0,1}
هم معنیش اینه که .(dot) اگر 0 یا 1 بار اتفاق افتاد
کد بالا این جور چیزایی رو تشخیص میده :
12
123.23
0.1
و...
و مثلا برای ورودی به این شکل ارور میده :
qwe
12q
123.
2q2
,...