u011848302
enn0707
2016-02-27 13:32
采纳率: 100%
浏览 4.5k
已采纳

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

想要当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
    已采纳

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

    点赞 评论
  • oyljerry
    oyljerry 2016-02-27 14:51

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

    点赞 评论
  • caoshangpa
    草上爬 2016-03-30 04:06

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

    点赞 评论
  • u011012932
    一去丶二三里 2016-08-10 11:09

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

    点赞 评论

相关推荐