ورود

View Full Version : سوال: تایپ فارسی اعداد در QLineEdit



sd.CSharpProgrammer
جمعه 22 اردیبهشت 1391, 12:29 عصر
سلام دوستان

2تا QLineEdit رو یک دیالوگ دارم که کاربر باید اعدادی وارد کنه. برنامه از روی این اعداد محاسباتی انجام میده. وقتی اعداد بصورت لاتین (1 2 3 4 ...) وارد میشن کارا خوب پیش میره ولی وقتی بصورت فارسی وارد میشن (١ ٢ ٣ ٤ ...)، نتایج درست نیستند.

حالا سوال اینجاست که چطور میشه کاری کرد که داخل لاین ادیتها فقط و فقط اعداد لاتین وارد بشن؟!
ممنون میشم راهنمائی کنید.
مرسی

حامد مصافی
جمعه 22 اردیبهشت 1391, 14:04 عصر
QIntValidator *v = new QIntValidator(this);
lineEdit->setValidator(v);

sd.CSharpProgrammer
جمعه 22 اردیبهشت 1391, 20:06 عصر
دوست عزیز میشه یکم توضیح بدین؟!
من از این کلاس برای ایجاد محدودیت ورودی استفاده کردم ولی ارتباطی بین دستوراتی که نوشتین با موضوع سوال نمی بینم!

اگه یه توضیح کلی بدین ممنون میشم.

حامد مصافی
جمعه 22 اردیبهشت 1391, 23:38 عصر
کاراکتر‌های 0123456789 در رایانه به عنوان رقم قابل پذیرش هستند. اگر قرار باشد رایانه در جایی از یک مقدار رشته‌ای مقداری عددی کسب کند تنها به بررسی این کاراکتر‌ها می‌پردازد. اما کاراکتر‌های ۰۱۲۳۴۵۶۷۸۹ تنها برای ما پارسی زبانان به عنوان رقم قابل پذیرش است. رایانه این کاراکترها را به منزله رقم نمی‌شناسد. این کاراکتر‌ها تنها در کیبوردهای استاندارد (مانند سیستم‌عامل لینوکس یا آرایش استاندارد صفحه کلید در ویندوز) وجود دارند. QIntValidator تنها کاراکتر های دسته اول را مجاز می‌شمارد و به سایر کاراکتر‌ها (از جمله دسته دوم) اجازه درج نمی‌دهد.


حالا سوال اینجاست که چطور میشه کاری کرد که داخل لاین ادیتها فقط و فقط اعداد لاتین وارد بشن؟!
پاسخ بنده دقیقاً همین کار را برای شما انجام می‌دهد.