PDA

View Full Version : سوال: User Control in Qt !!!



abbasi.naft
دوشنبه 20 بهمن 1393, 12:21 عصر
سلام و ارادت به خدمت برنامه نویسان گل

یکی از امکانات جالبی که Net. داره ، این هست که توانایی تولید کنترل جدید ، تحت عنوان user control رو به برنامه نویس میده و با این کار قدرت مانور برنامه نویس در مواقعی که قراره از کنترلی(مثلا ترکیب چند دکمه و تکست باکس و ... بر حسب نیاز) به دفعات استفاده بکنه ، بالا میره.

حالا من هرچی گشتم ، چیزی تحت این عنوان در Qt (عزیز) پیدا نکردم ، احتمالا من چشمام ضعیف هست:لبخند:
دوستان گلی که استفاده کردند ، لطف میکنند ، راهنمایی بکنند ، یا لینکی در اختیار بگذارند.

ضمنا اگه مطلب رو کاملتر کنند و بگند که چطور بصورت پویا میشه این user control رو در صورت نیاز (مثلا فشردن یه پوش باتن) بشه در یک Tab Control که Tab های اون داخل همون دکمه تولید میشه ، اضافه کرد ، ممنون میشم.

پیشاپیش از حسن توجه و همکاری شما بزرگواران کمال تشکر و قدردانی را دارم.

chikar
دوشنبه 20 بهمن 1393, 17:20 عصر
منظورتون این هست که بعد از کلیک روی یک پوش باتن مثلا یک پوش باتن دیگه با geometry جدید تولید بشه؟

حامد مصافی
دوشنبه 20 بهمن 1393, 20:11 عصر
یک کلاس جدید تعریف کنید که از QWidget یا یکی از کلاس‌هایی که از اون مشتق شده‌اند، مشتق شده باشد. سپس این کلاس را در هر جای برنامه که لازم داریم استفاده کنید (بوسیله کد نویسی)
برای اینکه یک شی دیداری را به جعبه ابزار Qt Creator اضافه کنید باید یک designer plugin بنویسید. با توجه به اینکه این روش دوم نسبت به روش اول طولانی‌تره بنده به شخصه استفاده نکردم ازش اما روال کار به طور کامل در مستندات کیوت موجوده/.

abbasi.naft
دوشنبه 20 بهمن 1393, 20:47 عصر
سلام و درود
با تشکر از جناب
chikar (http://barnamenevis.org/member.php?231853-chikar) و استاد ارجمندم آقای مصافی:قلب:

بله ، استاد مصافی ، من روش اول رو بعد از ایجاد این تاپیک پیدا کردم و با نظر ارزشمند شما موافقم.
اما فکر میکنم تفکر حاکم بر Net. ، همین روش دومی هست که اشاره فرمودید.
از اونجایی که بخاطر کندی سرعت Net. ازش گریزان شدم و با راهنمایی شما بزرگوار و اساتید گرامی جناب اسدزاده و جناب عباسی به Qt (عزیز) تغییر زبان و روش دادم، از همون روش اول استفاده خواهم کرد.
از بابت راهنمایی های بسیار بجا و خوب شما کمال تشکر را دارم.

-----------------------------------------------------------------------------------------------------------------------

مهندس گرامی جناب chikar (http://barnamenevis.org/member.php?231853-chikar)
من قبلا داخل Net. با این Theme کاری ، پیش میرفتم که داخل FrmMain از یک Ribbon برای قرار گیری دکمه ها استفاده میکردم به علاوه یک Panel که در سمت راست فرم ثابت شده بود و یک Tab Control که بدون هیچگونه Tab در وسط صفحه Dock شده بود و تمام صفحه رو در برگرفته بود.
این تنها فرم من در برنامه بود و تمام صفحات دیگر استفاده شده ، بصورت User Control بودند و در صورتی که کاربر از Ribbon دکمه ثبت و یا هر عمل دیگه ای رو انتخاب میکرد ، بصورت پویا در زمان فشردن دکمه موجود در Ribbon ، یک Tab جدید در Tab Control ایجاد میشد و در داخل اون Tab هم User Control متناسب با اون دکمه فراخوانی شده توسط کاربر ، مورد استفاده قرار میگرفت.

--------------------------------------------------------------------------------------------------------------------------------
من به جواب مورد نظر رسیدم ، از دوستانی که در بحث این تاپیک شرکت کردند و نظرات ارزشمندشون رو به اشتراک گذاشتند ، کمال تشکر و قدردانی را دارم.

abbasi.naft
جمعه 24 بهمن 1393, 12:48 عصر
سلام و درود

اول از همه ازتون خواهش میکنم که به سوالم نخندید.
سواله دیگه ، پیش اومده.

میشه داخل یک فرم ، فرم دیگه رو در قالب یک کنترل باز کرد؟
مثلا داخل فرم یه دونه TabWidgets داشته باشیم و داخل یکی از Tab های اون ، یک فرم دیگه رو بدون دکمه های Min , Max , Close فراخوانی کنیم؟

به قول قدیمی ها که میگن ، سوال پرسیدن عیب نیست ، ندانستن عیب هست.
با تشکر

fazel-as
پنج شنبه 07 اسفند 1393, 12:37 عصر
سلام
فكر كنم با Fram بشه

abbasi.naft
پنج شنبه 07 اسفند 1393, 22:33 عصر
سلام
خیلی ممنون از شما ، لطفا در صورت امکان با نمونه کد توضیح بدید.


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