تخطيط Qt على Qmainwindow
-
19-09-2019 - |
سؤال
أنا صممت أ QMainWindow
مع QtCreator's
مصمم. يتكون من القطعة المركزية الافتراضية (أ QWidget
) يحتوي على QVBoxLayout
مع كل الحاجيات الأخرى في ذلك. الآن كل ما أريده، هو أن QVBoxLayout
تحتل تلقائيا مساحة الحاجيات المركزية بأكملها المستطيل.
كيف يمكنني أن أفعل هذا؟ لم أجد أي ممتلكات قابلة للاستخدام لا في خصائص الحاجيات المركزية ولا QVBoxLayout's
تلك.
المحلول
ليس لديك لإنشاء QVBoxLayout
يدويا. ما عليك سوى اختيار المركزية الخاصة بك QWidget
واضغط على زر صنع التصميم.
نصائح أخرى
إذا كنت ترغب في القيام بذلك برمز بدلا من استخدام QtCreator
, ، يمكنك ضبط التصميم في QWidget
ثم اضبط QWidget
كما القطعة المركزية من النافذة الرئيسية مثل هذا:
#include <QtGui>
#include <QWidget>
#include <QHBoxLayout>
#include "mainwindow.h"
MainWindow::MainWindow() {
// Set layout
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(myWidget1);
layout->addWidget(myWidget2);
// Set layout in QWidget
QWidget *window = new QWidget();
window->setLayout(layout);
// Set QWidget as the central layout of the main window
setCentralWidget(window);
}
أضف عنصر واجهة مستخدم واحد على الأقل MainWindow
. وبعد ثم حدد نافذتك بالنقر فوقه وانقر فوق VerticalLayout
زر في الجزء العلوي من QTCreator
. وبعد تتم إضافة تخطيط عمودي تلقائيا إلى القطعة المركزية ويملأ كل السطح.
تمت الإجابة بالفعل، لكنني أفضل شخصيا للحفاظ على جميع عناصر التحكم و تم إضافة تخطيطات يدويا إلى النموذج. لا أقوم بإضافة عناصر التحكم في ملفات الفصل، وأنا فقط ربط الإشارات / فتحات لإخفاء / إظهار الحاجيات ذات الصلة بالمنطق في الفصل، داخل الفصل.
لإضافة تخطيط يدويا لأي عنصر واجهة مستخدم يجب عليك أولا إضافة عنصر واجهة / عنصر تحكم طفل واحد على الأقل. لم يكن ذلك واضحا تماما وكنت أحاول إضافة التخطيط أولا.