Qt قسمت پنجم Dialog و Layout

Qt قسمت پنجم Dialog و LayoutReviewed by آرمین نصیری پرتوی on Oct 29Rating: 5.0Qt قسمت پنجم Dialog و Layoutدر این قسمت میخواهم در مورد Dialog و Layout باهاتون صحبت کنم

با سلام خدمت بینندگان سایت در این قسمت میخواهم در مورد Dialog و Layout باهاتون صحبت کنم . تو این قسمت کد نویسی به خصوصی نداریم ولی در مورد layout  صحبت خواهم کرد که در برنامه نویسی cross platform  بسیار کاربردی و مهم است و همچنین Dialog که چی هست . فرقش با mainwindow چیه پس با من همراه باشید

اول یک پروژه جدید ایجاد کنید و مانند شکل زیر دو تا دکمه در اون قرار بدین

Qt19

حالا با mouse این دو دکمه رو انتخاب و از tool bar  بالا گزینه ی layout horizontally رو انتخاب کنید تا دکمه ها به شکل زیر بشن

Qt20

Qt23

همونطور که می بینید این دو دکمه واحد شدن و اگر جابجا کنید با هم جا بجا می شوند و سایزشون نسبت به هم تغییر می کنه

حالا اگر یک horizontal spacer بین اونا قرار بدین به سایز نرمال که بر اساس size policy تعیین شده بر می گردند و با تغییر سایز فقط فاصله ی بین اون ها بیشتر میشه

Qt 21

بعد از این کار روی mainwindow کلیک کر ده و مجددا از tool bar گزینه ی layout horizontally رو انتخاب کنید  حالا تمام ویجت های داخل window  به اون وابسته می شوند و سایز اون ها نسبت به سایز window تغییر می کند

Qt 22

 

قبلا در مورد یکی از حالت های signal and slot  با هم صحبت کردیک که با کلیک یک دکمه دستوراتی اجرا بشن

حالا می خواهم در مورد روش گرافیکی اون صحبت کنم

برای این کار از tool bar  گزینه ی edit signal/slots رو انتخاب کنید و روی پنجرهی اصلی کشیذه و رها کنید

تا پنجرهی زیر باز شود

 

 

Qt24

 

از ستون اول clicked که عملی است که ما روی ذکمه انجام می دهیم و از ستون دوم close که عملی است که برنامه روی مقصد که در اینجا mainwindow است انجام می دهد

توجه : اگر گزینه های ستون دوم رو مشاهده نمی کنید تیک مربوط به checkbox رو بزنید 

با این کار با کلیک به روی دکمه ی close  برنامه بسته می شود

بعد از طراحی  پنجره ی اصلی حالا می خواهیم  یک Dialog به پروژه اضافه کنیم برای اینکار روی نام پروژه راست کلیک کرده و گزینهی add new  را انتخاب می کنیم

Qt25

 

و  مراحل زیر را انجام می دهیم

Qt26

 

Qt27

 

حالا ۳ تا فایل جدید به پروژه اضافه شد

  • DialogName.h
  • DialogName.cpp
  • DialogName.ui

حالا مانند شکل زیر یک line edit  و یک button در dialog قرار می دهیم

Qt28

و ان دو را انتخاب کرده و اینبار از tool bar گزینه ی layout horizontally in spl;iter  رو انتخاب می کنیم

تفاوت این با قبلی در اینه که در میان اجرای برنامه اگر mouse  رو بین این دو کلیک کنیم و به جهت های دیگر بکشیم سایز یکی کمتر و دیگری بزرگتر می شود که در نوع خودش بسیار جالبه !!!

برای زیبا تر شدن یک spacer هم در زیر اون ها قرار می دهیم تا عرض ویجت ها تغییر نکند

 

حالا می خواهیم ببینیم چجوری میشه این dialog رو با کلیک به روی دکمهی dialog در mainwindow باز کنیم برای اینکار روی دکمه راست کلیک کرده go to slot رو انتخاب می کنیم

برای نمایش dialog دو روش جود داره

  • modal
  • modales

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

که برای این کار باید dialogname.h رو به mainwindow.cpp با include ضمیمه کنید در داخل تابع دکمه ی dialog بنویسیم

Qt29

در روش modales ما میتونیم چند dialog رو با هم باز کنیم و همچنین به پنجرهی اصلی دسترسی داریم

که برای این کا ر  dialogname.h  رو به mainwindow.h نیز include می کنیم

و در زیر private می نویسیم

حالا داریم

 

Qt30

 

 

Qt32

 

حالا برنامه رو اجرا می کنیم و میبینید که در روش modales می تونیم چند dialog باز کنیم و با تغییر سایز اونها و  جابه جا کردن spliter  چه اتفاقاتی می افته

 

 

Qt31

 

به شما توصیه می کنم که حتما layout ها و حالت های مختلفش رو روی یک برنامه پیاده کنید تا ببینید چا اتفاقاتی می افته

پون layuot برای برنامه نویسی cross platform بسیار مهمه و باعث میشه تا برنامه ذر هر platform به شکل مناسب اون نمایش داده بشه

ممنون که منو دنبال کردین