У меня есть класс, который наследуется от qwidget. В этом классе я создаю кнопку btn и QLineEdit l и устанавливаю для ее текста значение "привет". При нажатии на кнопку он должен изменить содержание l на «bibi».
При полном удалении сетки она работает нормально, но почему-то, когда она есть, программа всегда вылетает. Я думал, что сетка изменит только кнопки и позиции QLineEdits, так что это не имеет смысла для меня.
Это основной
#include <cellphone.h>
int main(int argc, char *argv[])
{
return CellPhone::spawn(argc, argv);
}
Это объявление класса
#ifndef CELLPHONE_H
#define CELLPHONE_H
#include <QtWidgets>
#include <QWidget>
#include <QPushButton>
#include <QString>
class CellPhone : public QWidget
{
Q_OBJECT
public:
QLineEdit *l;
static int spawn(int argc, char *argv[]);
CellPhone();
//public slots:
void keyPressEvent(QKeyEvent* event);
};
#endif // CELLPHONE_H
Это определение класса
#include "cellphone.h"
int CellPhone::spawn(int argc, char *argv[]){
QApplication app(argc, argv);
CellPhone P;
return app.exec();
}
CellPhone::CellPhone() : QWidget() {
QLineEdit *l = new QLineEdit(this);
l->setText("Hello");
QPushButton *btn = new QPushButton("1", this);
QObject::connect(btn, &QPushButton::clicked, [&]{l->setText("bibi");});
QGridLayout *grid = new QGridLayout();
grid->addWidget(l, 1, 1, 1, 3);
grid->addWidget(btn, 1, 2, 1, 3);
this->setLayout(grid);
//btn->move(100,0);
this->show();
}
void CellPhone::keyPressEvent(QKeyEvent* event){
//l->setText("Hi");
}
QtCreator не предоставил мне ни одного сообщения об ошибке, но программа была обработана.