PDA

View Full Version : سوال: ویجت تقویم شمسی برای کیوت؟!



mousamk
چهارشنبه 11 خرداد 1390, 16:34 عصر
خب همونطور که همه برنامه نویسان ایرانی مستحضر هستند، یکی از مهمترین کامپیوننتهای UI که در هر فریم ورکی لازم داریم، date picker شمسی است.
تقریبا در هیچ زبان یا فریمورکی چنین چیزی از ابتدا وجود ندارد و خودمان باید آن را تهیه کنیم. برای پرکاربردهایی مثل #C یا جاوا دوستان زیادی دست به کار شده اند و محصولات زیادی تولید کرده اند که نیاز به دوباره کاری دیگران را رفع کرده است.

ولی برای Qt تا جایی که من سرچ کردم، چیزی در این باره پیدا نکردم.
سؤال این که آیا چنین چیزی موجود است یا این که دیگه وقتشه خودمون دست به کار بشیم و این نیاز مهم رو مرتفع کنیم؟

glassysmart
پنج شنبه 12 خرداد 1390, 11:10 صبح
سلام
من هم فکر نکنم چیزی پیدا بشه اما من یه ایده خوب دارم . بیایید تا یه مسابقه در طراحی این ویجیت ترتیب بدیم نظر شما چیه؟

mousamk
پنج شنبه 12 خرداد 1390, 17:05 عصر
مسابقه میتونه خوب باشه برای ترغیب، ولی راه اندازیش کمی کار داره.

به نظر من بیاییم برای ساخت این ویجت، یه پروژه (مثلا تو سورس فورج) شروع کنیم و چند تا از دوستان که آشنایی خوبی با Qt دارن رو دعوت کنیم و همگی باهم یه پروژه خوب رو بسازیم، خیلی بهتر باشه.
برای #C آدمای زیادی دست به کار شدن، ولی هر کسی برای خودش یه چیزی ساخته که یه سری نقاط قوتی داره و یه اشکالاتی داره. من خودم یادمه تعداد زیادی از اونا رو استفاده کردم ولی هیچ کدومشون عالی نبود.

میتونیم تقسیم کار هم داشته باشیم و هر کسی کار خودش رو توسط svn انجام بده و در نهایت محصول نهایی از ترکیب اونا ساخته بشه.
مثلا یکی دو نفر نفر میتونن مسئولیت تبدیل تاریخ شمسی به میلادی و برعکس رو برعهده بگیرن. (الگوریتم های ساده موجود مثل اینجا (http://barnamenevis.org/showthread.php?221968-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B4%D9%85%D8%B3%DB%8C) فقط برای بازه کوتاهی حدود 100 سال درست جواب میدن. تهیه یه الگوریتم تبدیل با دقت خیلی خوب، مثل چیزی که در دات نت پیاده سازی شده، کار خیلی زیادی لازم داره)
چند نفر هم میتونن بخشهای مختلف UI رو برعهده بگیرن: پنل نمایش سالها و جلو و عقب بردن و انتخاب سال؛ پنل نمایش ماهها و انتخاب ماه؛ همین طور برای روز.
حالتهای دیگه این date picker مثلا به جای پنل، فقط دکمه های بالا و پایین داشته باشه (مثل spinbox).

خلاصه اگه یه آدم باتجربه مدیریت کار رو به عهده بگیره، میتونیم تقسیم کار خوبی داشته باشیم و با مشارکت چند نفر علاقمند مثل خودمون، به نظر من میتونیم محصول خوبی رو در نهایت دربیاریم.

glassysmart
پنج شنبه 19 خرداد 1390, 00:15 صبح
سلام
ببخشید مثل اینکه عجله کردم

glassysmart
یک شنبه 05 تیر 1390, 21:57 عصر
سلام
خوب اینم از ورژن اول ، این datapicker ای است که من نشته ام و در آن از الگریتم های ساده ای استفاده کرده ام . مرا به خاطر شلوغ و غیر حرفه ای بودن کد ببخشید
از این سه تابع برای زیبا سازی استفاده کنید
void setTitelStyleSheet(QString );
void setCellStyleSheet(QString );
void setSelectedCellStyleSeet(QString );
و برای به دست آوردن تاریخ انتخاب شده از تابه زیر:
Date selectedDate(ToDate);
این ToDate یه enum است که مشخص می کند که شمار تاریخ انتخاب شده را به میلادی می خواهید یه به جلالی
و برای انتخاب کردن یک تاریخ مشخص از تابه زیر استفاده کنید:
void selectDate(int year ,int month , int day,ToDate t);
که با toDate مشخص می کنید تاریخی که وارد کرده این به میلادی است یا خورشیدی
اگر ایده یا نظری دارید می توانید به من بگویید اگر در توان داشتم آن را در این پروژ ه وارد می کنم
و در آخر باید از مسئولین سایت farsiweb و starcalender تشکر کنم

mousamk
دوشنبه 06 تیر 1390, 02:13 صبح
بسیار عالی :)
واقعا دست شما درد نکنه.

فکر میکنم اگر اینو به پلاگین Designer تبدیل کنید تا کار باهاش هر چه راحتتر بشه، دیگه یه نمونه کامل میشه.
همچنین فکر میکنم اگه به صورت پیش فرض حالت compact داشته باشه (مثلا شبیه یه combo box یا شبیه همون datepicker خود کیوت) و بعد با زدن یه دکمه، پنجره انتخاب سال و ماه و روزش باز بشه، بهتر میشه. چون الان در این حالت جای زیادی میگیره.

من خودم متأسفانه الان آخر کارشناسیمه و درگیر پروژه های نهایی درسها و پایان نامه هستم و دیگه وقتی ندارم، ولی در اولین فرصت روی این موضوع کار خواهم کرد.

glassysmart
سه شنبه 14 تیر 1390, 00:42 صبح
سلام اینم ورژن 2 ببخشید که دیر شد حالش نبود
و این تابع هم اضافه شده
void setTopTitleStyleSheet(QString)

kitten
دوشنبه 03 مرداد 1390, 10:13 صبح
سلام ممنون چیز جالی شده:
اجازه هست منم روی این کد کار کنم؟:لبخند:
البته فکر کنم الگوریتمی که استفاده کردید کامل نبوده چون امروز را به من اشتباه نشون میده امروز که سه مرداد هست و دوشنبه را به من 4 مرداد و سه شنبه نشون می ده
می تونیم تو یه سایت مثل سورس فورج یه پروژه باز کنیم و روش کار کنیم اگه دوست داشته باشید

glassysmart
دوشنبه 03 مرداد 1390, 21:04 عصر
سلام
اینم ورژن جدید

حامد مصافی
سه شنبه 04 مرداد 1390, 00:05 صبح
بهتره در سایت qt-apps.org آپلودش کنید تا پیدا کردنش برای بقیه هم آسون تر باشه

glassysmart
پنج شنبه 06 مرداد 1390, 16:19 عصر
سلام
اینم یه برنامه تست کوچک و کمی تغییر

ghasem.fattahpour
پنج شنبه 06 مرداد 1390, 22:56 عصر
خوبه واقعا داره چیزه خوبی از کار در میاد.