Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > layout у MainWindow [QT]


Автор: ss 6.7.2013, 02:02
Здравствуйте. Я новичок поэтому сильно не ругайтесь.
как сделать выравнивание компонентов на форме если форму создавать вручную не используя дизайнер.

Если использовать дизайнер, то там так : выделяем форму и сверху на панели жмем кнопку "скомпоновать по вертикали(горизонтали)", при этом у MainWindow класс centralWidget приобретает значок выбранного компоновщика. 

Надо сделать тоже самое только вручную, написав код. smile 

Автор: borisbn 6.7.2013, 10:07
Сделай то, что тебе нужно в дизайнере, скомпилируй, а затем открой файл ui_main window.h и посмотри как это там сделано

Автор: ss 8.7.2013, 18:04
пример 
создание окна с тремя кнопками

файл mainwindow.h
Код

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QGridLayout>
#include <QPushButton>

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

    QGridLayout *centralLayout;
    QWidget *centralWidget;

    QPushButton *Button1;
    QPushButton *Button2;
    QPushButton *Button3;
};

#endif // MAINWINDOW_H



файл mainwindow.cpp
Код

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{


    centralWidget = new QWidget(this);
    centralLayout = new QGridLayout(centralWidget);


    Button1 = new QPushButton(centralWidget);
    Button2 = new QPushButton(centralWidget);
    Button3 = new QPushButton(centralWidget);


    centralLayout->addWidget(Button1,0,0); //задаем положение кнопок в сетке
    centralLayout->addWidget(Button2,0,1); //имя объекта, строка, столбец
    centralLayout->addWidget(Button3,0,2); //


    this->setLayout(centralLayout);
    this->setCentralWidget(centralWidget);
}

MainWindow::~MainWindow()
{
delete Button1,
           Button2,
           Button3;
    delete centralLayout;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)