آموزش مدیریت طرح بندی در PyQt
آموزش مدیریت طرح بندی در PyQt
در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش مدیریت طرح بندی در PyQt خواهیم پرداخت.
پیشنهاد ویژه : پکیج آموزش طراحی وب سایت با پایتون و جنگو
ویجت رابط کاربری گرافیکی را می توان با تعیین مختصات مطلق آن که بر حسب پیکسل اندازه گیری می شود ، داخل پنجره ظرف قرار داد. مختصات مربوط به ابعاد پنجره است که با روش ()setGeometry تعریف شده است.
نحو ()setGeometry
1 |
QWidget.setGeometry(xpos, ypos, width, height) |
در قطعه کد زیر پنجره سطح بالا با ابعاد 300 در 200 پیکسل در موقعیت (10 ، 10) روی مانیتور نمایش داده می شود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import sys from PyQt4 import QtGui def window(): app = QtGui.QApplication(sys.argv) w = QtGui.QWidget() b = QtGui.QPushButton(w) b.setText("Hello World!") b.move(50,20) w.setGeometry(10,10,300,200) w.setWindowTitle(“PyQt”) w.show() sys.exit(app.exec_()) if __name__ == '__main__': window() |
یک ویجت PushButton در پنجره اضافه شده و در موقعیت 50 پیکسل به سمت راست و 20 پیکسل در زیر موقعیت سمت چپ بالای پنجره قرار می گیرد.
اما این موقعیت یابی مطلق به دلایل زیر مناسب نیست –
- حتی اگر اندازه پنجره تغییر کرده باشد ، موقعیت ویجت تغییر نمی کند.
- ظاهر ممکن است در دستگاه های مختلف با وضوح متفاوت یکنواخت نباشد.
- تغییر در طرح مشکل است زیرا ممکن است نیاز به طراحی مجدد کل فرم داشته باشد.
PyQt API کلاس های چیدمانی را برای مدیریت ظریف تر موقعیت یابی ویجت ها در داخل محفظه ارائه می دهد. مزایای مدیران طرح بندی نسبت به موقعیت یابی مطلق عبارتند از –
- اندازه ویجت های داخل پنجره به طور خودکار تغییر اندازه می دهد.
- ظاهر یکنواخت را در دستگاه های صفحه نمایش با وضوح مختلف تضمین می کند.
- افزودن یا حذف ویجت به صورت پویا بدون نیاز به طراحی مجدد امکان پذیر است.
در اینجا لیستی از کلاس ها وجود دارد که در این فصل یک به یک بحث خواهیم کرد.
کلاس ها و توضیحات | |
---|---|
1 | QBoxLayoutکلاس QBoxLayout ویجت ها را به صورت عمودی یا افقی قرار می دهد. کلاسهای مشتق شده آن عبارتند از QVBoxLayout (برای مرتب سازی ویجت ها به صورت عمودی) و QHBoxLayout (برای مرتب سازی ویجت ها به صورت افقی). |
2 | QGridLayoutیک شی کلاس GridLayout با شبکه ای از سلول ها که در سطرها و ستون ها مرتب شده اند ، ارائه می شود. کلاس شامل متد ()addWidget است. با مشخص کردن تعداد سطرها و ستون های سلول می توان هر ویجت را اضافه کرد. |
3 | QFormLayout
QFormLayout یک راه مناسب برای ایجاد دو ستون است ، جایی که هر سطر از یک قسمت ورودی مرتبط با یک برچسب تشکیل شده است. به عنوان یک قرارداد، ستون سمت چپ حاوی برچسب و ستون سمت راست شامل یک قسمت ورودی است. |
دیدگاه شما