سؤال

أنا صممت أ QMainWindow مع QtCreator's مصمم. يتكون من القطعة المركزية الافتراضية (أ QWidget) يحتوي على QVBoxLayout مع كل الحاجيات الأخرى في ذلك. الآن كل ما أريده، هو أن QVBoxLayout تحتل تلقائيا مساحة الحاجيات المركزية بأكملها المستطيل.

كيف يمكنني أن أفعل هذا؟ لم أجد أي ممتلكات قابلة للاستخدام لا في خصائص الحاجيات المركزية ولا QVBoxLayout's تلك.

هل كانت مفيدة؟

المحلول

ليس لديك لإنشاء QVBoxLayout يدويا. ما عليك سوى اختيار المركزية الخاصة بك QWidget واضغط على زر صنع التصميم.

alt text

نصائح أخرى

إذا كنت ترغب في القيام بذلك برمز بدلا من استخدام 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. وبعد تتم إضافة تخطيط عمودي تلقائيا إلى القطعة المركزية ويملأ كل السطح.

تمت الإجابة بالفعل، لكنني أفضل شخصيا للحفاظ على جميع عناصر التحكم و تم إضافة تخطيطات يدويا إلى النموذج. لا أقوم بإضافة عناصر التحكم في ملفات الفصل، وأنا فقط ربط الإشارات / فتحات لإخفاء / إظهار الحاجيات ذات الصلة بالمنطق في الفصل، داخل الفصل.

لإضافة تخطيط يدويا لأي عنصر واجهة مستخدم يجب عليك أولا إضافة عنصر واجهة / عنصر تحكم طفل واحد على الأقل. لم يكن ذلك واضحا تماما وكنت أحاول إضافة التخطيط أولا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top