代码如下会宕
#ifndef MYWIDGET_H
#define MYWIDGET_H
#include "stdaxf.h"
class myWidget : public QWidget
{
Q_OBJECT
public:
explicit myWidget(QWidget *parent = nullptr);
signals:
public slots:
void slotcurrentIndexChanged(const QString &);
};
#endif // MYWIDGET_H
#include "myWidget.h"
myWidget::myWidget(QWidget *parent) : QWidget(parent)
{
QBoxLayout *lay = new QVBoxLayout(this);
QTextEdit *texte,*_edit;
/*如果将QTextEdit *_edit;独立写到.h文件中,不和lambda表达式一起
,则可以正常运行*/
lay->addWidget(texte = new QTextEdit);
_edit = texte;
/*出现奇怪问题的地方:为什么不能用texte来打印,而必须缓存一个变量才能正常使用,同时这个缓存变量的定义不能和这段lambda表达式,书写的文件是同一个?*/
connect(texte,&QTextEdit::textChanged,[&](){
qDebug()<<_edit->toPlainText();
});
}
void myWidget::slotcurrentIndexChanged(const QString &str)
{
qDebug()<<"currentIndexChanged: "<<str;
}
int main(int argc,char**argv)
{
QApplication app(argc,argv);
myWidget widget;
widget.show();
return app.exec();
}