2 u011848302 u011848302 于 2016.02.27 21:32 提问

初学Qt,为什么对textEdit使用settext函数程序会崩溃?
qt

想要当textEdit内容改变时,设置textEdit内容为"shiyanshuju",但是改变内容时程序崩溃。谁能帮帮我?(mainwindow里只有一个textEdit)



mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
public slots:
    void accord();
};

#endif // MAINWINDOW_H

main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect(ui->textEdit,SIGNAL(textChanged()),this,SLOT(accord()));
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::accord()
{
    ui->textEdit->setPlainText("shiyanshuju");
}

4个回答

caozhy
caozhy   Ds   Rxr 2016.02.28 05:57
已采纳

textChanged()中调用setPlainText("shiyanshuju");设置文本,而这又会触发textChanged(),结果又调用setPlainText……
无限递归了。

u014700360
u014700360 怎么解决的呢?
一年多之前 回复
u011848302
u011848302 懂了 ,谢谢……
接近 2 年之前 回复
caoshangpa
caoshangpa   2016.03.30 12:06

这个问题我遇到过,来晚了~~~

u011012932
u011012932   2016.08.10 19:09

死循环了。。。connect(ui->textEdit,SIGNAL(textChanged()),this,SLOT(accord()));

oyljerry
oyljerry   Ds   Rxr 2016.02.27 22:51

控件对象是否合法 不然调用就可能出错

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!