Как добавить виджет в компоновку?

105
23 ноября 2019, 05:00

Помогите, пожалуйста, добавить текстовое поле внутрь окна w. Почему-то выходит создать два отдельных окна. Вот мой код

mainclass.cpp

#include "mainclass.h"
#include <QMainWindow>
#include <QTextEdit>
#include <QVBoxLayout>
MainClass::MainClass(QWidget* parent) : QMainWindow(parent) {
    QVBoxLayout *QMTLayout = new QVBoxLayout;
    QTextEdit *TE = new QTextEdit;
    QMTLayout ->addWidget(TE);
    TE->setGeometry(0,0,600,600);
    TE->show();
    setLayout(QMTLayout);
}

main.cpp

#include "mainclass.h"
#include <QApplication>
#include <QTextCodec>
#include <QtGui>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainClass w;
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
    w.resize(800, 600);
    w.setWindowIcon(QIcon("C:\\Qt\\TexRed/TLeater.jpg"));
    w.setWindowTitle("Текстовый редактор");
    w.setFocus();
    QHBoxLayout *QMTLayout = new QHBoxLayout;
    QTextEdit *MainTextEdit = new QTextEdit;
    QMTLayout ->addWidget(MainTextEdit, 8);
    w.show();
    return a.exec();
}
Answer 1

Для того, чтобы виджеты отображались в окне а не как отдельное окно, им нужно задать родителя. Вот как правильно создавать виджеты (это делается внутри класса MainClass)

QHBoxLayout *QMTLayout = new QHBoxLayout(this);
QTextEdit *MainTextEdit = new QTextEdit(this);
QMTLayout ->addWidget(MainTextEdit, 8);
this->setLayout(QMTLayout);

А так же необходимо главному виджету окна установить Layout в который добавил виджет.

READ ALSO
Как написать код, работающий на GCC и VC++?

Как написать код, работающий на GCC и VC++?

Известно, что оба компиля не дружат между собой, и один код, работающий с одним из них, не будет компилиться на другом, если в нём присутствуют...

132
Не выводит матрицу и вектор. С++ [закрыт]

Не выводит матрицу и вектор. С++ [закрыт]

Не могу понять в чем причинаДолжно выводить матрицу и вектор размерностью которую задаешь сам

114
Проясните использование alignof()

Проясните использование alignof()

Есть буфер, реализованный в виде

85
Spring Data JPA: Specification

Spring Data JPA: Specification

Мне нужно составить через спецификации запрос, в котором я исключу из выборки несколько ID

121