دیالوگ های گرفتن ورودی از کاربر

سلام بچا !

در برنامه نویسی گرافیکی گرفتن ورودی های مختلف از کاربر بسیار حائز اهمیت هستش. ورودی های مختلف. گرفتن یک رشته از کاربر. گرفتن یک عدد از کاربر. گرفتن یک رنگ از کاربر و چیزای دیگه.

یکی از راههای این کار اینه که خودمون دیالوگ تعریف کنیم و به پروژه اضافه کنیم. مثلا یه دیالوگ به صورت زیر تعریف کنیم واسه گرفتن یه عدد از کاربر:

number_dialogخب این راه خوبیه و راههای دیگه ای هم هست. کلاس QInputDialog برای این جور کارها خیلی عالیه !

این کلاس یه سری تابع استاتیک در اختیارتون میذاره که خیلی راحت میتونید انواع و اقسام دیالوگ های ورودی رو داشته باشید.

گرفتن یک عدد اعشاری از کاربر:

با استفاده از این تابع میشه خیلی راحت از کاربر خواست تا یه عدد اعشاری وارد کنه. پارامتر ها خیلی سخت نیستند. پارامتر اول که طبق معمول پدر این دیالوگ خواهد بود ( برای نمایش آیکن).

پارامتر title : متنی رو که بالای پنجره گرفتن عدد نوشته میشه رو مشخص میکنه

پارامتر label : متن اصلی . مثلا توی نوشته بالا همون “لطفا یک عدد وارد کنید:”

مقدار پیشفرض با value قابل ست کردن هستش.

حداقل و حداکثر مقدار رو با min و max ست کنید.

با استفاده از پارامتر decimals میتونید حد اکثر ارقام بعد از اعشار رو مشخص کنید.

پارامتر ok خیلی مهمه ! از کجا میخواهید بفهمید که کاربر آخرش یه عدد وارد کرده یا نه. کافیه یه متغیر از جنس bool تعریف کنید و آدرسش رو به عنوان پارامتر Ok ارسال کنید. در صورتی که کاربر روی فرم دکمه OK رو کلیک کرده باشه ( عدد رو زده باشه و بخواد عدد منظور بشه) این پارامتر (چون آدرسش ارسال شده) با مقدار true پر میشه ولی اگر مثلا کاربر کلید ESC رو زده باشه این Ok با مقدار false پر میشه.

در آخر این نکته هم قابل ذکر هستش که عددی که کاربر وارد کرده به عنوان خروجی تابع return میشه ( به مقدار بازگشتی تابع getDouble ) توجه کنید.کد زیر رو ببینید.

number_dialog_2

اگه کاربر یه مقداری وارد کرده باشه و OK رو زده باشه مقدار ۳۷٫۵۶ در d  ریخته میشه و ok هم مقدار true خواهد داشت. ولی اگه کنسل کنه دیگه ok مقدار false خواهد داشت.

گرفتن یک عدد صحیح از کاربر

برای گرفتن یک عدد صحیح هم همین روال تقریبا باید انجام بشه . صورت تابع به صورت زیر:

توی پارامتر ها فقط پارامت step مهم است که گفته نشده. این مقدار مشخص میکنه که هرگاه با کلید های کناری لاین ادیت مقدار int داخل لاین ادیت کم یا زیاد شد این تغییر مقدار چقدر باشه.کلید هایی که توی تصویر بالا سمت راست لاین ادیت مشخص هستند. بالا و پایین. پیش فرض یک هستش. یعنی بالا رو بزنید عدد یکی زیاد میشه. ولی مثلا میشه ده گذاشتش. وقتی کاربر بالا رو بزنه مقدار int داخل لاین ادیت ده تا زیاد میشه.

گرفتن یک رشته از کاربر

تابع دیگه ای که در کلاس QInputDialog وجود داره تابعی برای گرفتن رشته است:

تقریبا تمام پارامتر ها از روی اسمشون و توضیحات قبلی قابل فهم هستند. ولی پارامتر مهم پارامتر mode هستش. اگه بخواید یه متن از کاربر بگیرید ولی به صورت پسورد این متن گرفته بشه باید این پارامتر رو با مقدار QLineEdit::Password ارسال کنید.کد زیر رو ببینید:

خروجی این کد چیزی مثل زیره:

 

pass_inputگرفتن آیتم از کاربر

آخرین موردی که امروز در موردش صحبت میکنیم گرفتن یک آیتم از بین چند آیتم از کاربره. مثلا اینکه کاربر مرد هستش یا زن :

کد زیر رو ببینید. برای اینکه آیتم ها مشخص بشن باید از یک QStringList استفاده کرد. یعنی یه لیستی از رشته ها که آیتم ها رو مشخص میکنه :

و بعدش آیتم ها برای تابع getItem ارسال میشه . در صورتی که کاربر OK رو کلیک کنه رشته ( ایتمی ) که کاربر انتخاب کرده بازگردانی میشه.

item_dialog

اگرم دوست داشتید یکم فعال تر باشید!! توی بخش متا بگید چی بذاریم. اصن امروز نمیدونستم چی بذارم. ( تا بهمن از گفتن QML معذورم. به دلیل اینکه دوست ندارم نا مرتب گذاشته بشه. تا بهمن طلبتون )

 

 

۷,۹۵۳ total views, 3 views today

Print Friendly, PDF & Email

درباره ی سعید دادخواه

یه برنامه نویس !

همچنین ببینید

اجرای تنها یک نمونه از برنامه (Single Instance)

درود. چند روز پیش در بخش سوال و جواب یکی از دوستان به نام tmtt …

15
دیدگاه بگذارید

avatar
6 Comment threads
9 Thread replies
0 دنبال کنندگان
 
Most reacted comment
داغ ترین نخ نظرات
7 کامنت گذاران
الههalinaseri25علی رضا پژوهشسعید دادخواهadel68 کامنت گذاران اخیر
  مشترک شو!  
جدیدترین قدیمی‌ترین دارای بیشترین امتیاز
میخوام باخبر شم از
NeoFighT
Member
NeoFighT

مرسیhttp://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_bigsmile.gif

Behnam
Member
Behnam

http://qtips.ir/wp-content/plugins/wp-monalisa/icons/wmpl_laughing.gif

adel68
Member

سلام:
خسته نباشید اقا سعید.
 
از آموزشهای کیوت از صفر چه خبر تا کجا رسوندین .

علی رضا پژوهش
Member
علی رضا پژوهش

ممنون سعید جان
آقا من یه getInteger هم دیدم. کد که نوشتم دیدم همون getInt ه.
توی assistante هم فقط اون getInt بود. فکر کنم این مال نسخه‌های قدیمیه؟

alinaseri25
Member
alinaseri25

سلام آقا دستت درد نکنه همیشه کارات بیسته چه ساده باشه چه پیشرفته همیشه می خونم چون کاربردیه همشhttp://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_good.gifhttp://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_rose.gifhttp://qtips.ir/wp-content/plugins/wp-monalisa/icons/wpml_heart.gif

الهه
Guest
الهه

سلام
روزتون بخیر
ببخشید من دنبال یه سری مستندات در مورد c++در کیوت هستم که توش قشنگ توضیح داده باشه که مثلا دیالوگ چیست یا مثلا settextبرای چه چیزی استفاده می شود و.. اگه بهم کمک کنین ممنون مبیشم