PDA

View Full Version : سوال: درخواست راهنمایی در مورد نحوه چینش کنترلها یا وجتها روی فرم ها و دیالوگ ها



Hadiir.net
جمعه 18 اردیبهشت 1394, 02:41 صبح
با سلام
ممکنه در مورد طراحی و کلا دیزاین فرم ها و دیالوگ ها در کیوت راهنماییم کنین، مشکل من در نحوه چینش کنترل ها یا همون ویجتها روی فرمها و یا دیالوگ هاست.
توی وی بی دات نت من یه سری کنترلها رو داکت میکردم به بالای فرمم و یا اینکه خودم یه استاتوس بار طراحی میکردم و داکت میکردم ( می چسبودندم) به پایین فرمم و همینطور به سمت چپ و راست اینکار با وی بی دات نت خیلی راحت انجام میشه و با تغییر سایز فرم و یا دیالوگ اونها هم تغییر اندازه میدن و هم سایز میشن. حالا همین کار رو میخوام با کیوت انجام بدم.
مثلا من میخوام یه ویجت نمایش عکس رو با ارتفاع 50 پیکسل در طول فرمم بچسبونمش به بالای فرم طوری که وقتی فرم ری سایز میشه اونمهم ری سایز بشه یه چیز تو مایه های هدر سایت ها.
و ممکنه بگین چطور فوتر برای فرمم مثه فوتر وبسایت ها طراحی کنم که دینامیک باشه و همزمان با تغییر اندازه فرمم فوتر هم هم اندازه بشه؟
با تشکر

chikar
جمعه 18 اردیبهشت 1394, 10:49 صبح
با سلام
ممکنه در مورد طراحی و کلا دیزاین فرم ها و دیالوگ ها در کیوت راهنماییم کنین...

سلام، شما هم میتونید داخل دیزاینر کیوت، طراحی کنید و هم می تونید به صورت کد نویسی، کنترل هاتون رو طراحی کنید
برای تغییر اندازه ویجتتون به طور خودکار در این لینک (http://barnamenevis.org/showthread.php?486895-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D9%85%DA%A9%D8%A7%D9%86-widget-%D9%87%D8%A7-%D9%86%D8%B3%D8%A8%D8%AA-%D8%A8%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%D9%87-mainwindow&p=2178310&viewfull=1#post2178310) توضیح دادم که با یه ذره تغییر داخل کدی که گذاشتم، اون چیزی که می خواید رو به دست میارید.
به نظرم statusBar همون کار فوتر رو براتون انجام بده، به طور پیش فرض روی فرمتون هست و می تونید از طریق ui->statusBar در MainWindow تون از متدهاش استفاده کنید.

Hadiir.net
شنبه 19 اردیبهشت 1394, 01:55 صبح
ممنونم بابت توجه تون، اما اینهایی که شما گفتین رو کامل میدونم شاید منظورم رو خوب نرسنده باشم. من میدونم که استاتوسبار داره کیوت اما من میخوام یه همچین ویچتی رو خودم طراحی کنم و همچنین تولبار بالای فرمم رو چون رنامه هایی که مینویسم الب دارای محیطی فارسی هستن تمایل دارم کنترل بیشتری روی اجزا تو طراحی و دیزاین فرمهام داشته باشم.
ببینین من یه عکس نمونه ساده میذارم:

131026

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

من این فرم رو با وی بی دات نت 2010 طراحی کردم سورس کد و فایلهای ریسورس شو هم آپلود کردم.




Download (http://cld.persiangig.com/download/1c55NgkotS/EsetTheme.7z/dl)





حالا یه خواهشی دارم میشه برام مثه همین فرم با کیوت شما زحمت بکشین طراحی کنین تا من کدهاشو بررسی کنم؟

تشکر

کامبیز اسدزاده
شنبه 19 اردیبهشت 1394, 12:16 عصر
دوست عزیز همه اینها توسط CSS امکان پذیره..


ui.toolBar->setStyle (" Your CSS Code...");

chikar
شنبه 19 اردیبهشت 1394, 13:01 عصر
سلام
مثل که روشی رو خودتون پیدا کردید! از همون استفاده کنید...
موفق باشید

Hadiir.net
دوشنبه 21 اردیبهشت 1394, 00:25 صبح
ممنونم، لطف کردین.
من چون پیگیر این مشکلم بودم کتاب C ++ GUI Programming with Qt 4 رو هم یه بررسی کردم و در قسمت لایه ها صفحه 139 Laying Out Widgets on a Form به چند سبک طراحی و چینش ویجت ها روی فرمها و دیالوگ ها اشاره شده. یکی از روش ها همین ساخت رویدادی برای تغییر اندازه فرم resizeEvent هستش




void FindFileDialog::resizeEvent(QResizeEvent * /* event */)




اما در ادامه اش فکر میکنم توضیح میده که ایده مناسبی برای اینکار نیست و بهتره که از لایوتها استفاده بشه
لایوت های افقی و عمودی و جدولی

یه سوال یا مشکلی برام پیش اومده:
میخوام ویجتها یا کنترلها رو توی لایوت گرید بزارم فکر میکنم کنترلش اصولی تره و الا دیدم از همین روش پیروی می کنند. امکانش هست همین فرم رو با این حالت توسط لایوت گرید طراحی کنم؟ و چطور مثلا اگه گرید من سه تا ستون و چهار تا ردیف داشته باشه، ردیف آخری رو به پایین فرمم بچسبونمش با همون قابلیت تغییر اندازه

تشکر