Qt Layout on QMainWindow

后端 未结 4 2031

I designed a QMainWindow with QtCreator\'s designer. It consists of the default central widget (a QWidget) which contains a QVBo

相关标签:
4条回答
  • 2020-12-14 00:24

    Add at least one widget on your MainWindow. Then select your window by clicking on it and click on the VerticalLayout Button at the top of QTCreator. You Vertical Layout is automatically added to the central widget and fills all the surface.

    0 讨论(0)
  • 2020-12-14 00:24

    This is already answered, but I personally prefer to keep all control elements and layouts added manually to the form. I do not add controls in the class files, I merely hook up the signals/slots to hide/show widgets relevant to the logic in the class, within the class.

    To manually add a layout to any widget you must first add at least one child widget/control. That wasn't totally clear to me and I was trying to add the layout first.

    0 讨论(0)
  • 2020-12-14 00:25

    If you want to do it with code instead of using QtCreator, you could set the layout in a QWidget and then set the QWidget as the central widget of the main window like this:

    #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);
    
    }
    
    0 讨论(0)
  • 2020-12-14 00:32

    You don't have to create a QVBoxLayout manually. Just select your central QWidget and press a make-layout button.

    alt text

    0 讨论(0)
提交回复
热议问题