程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> qt-初學Qt,為什麼對textEdit使用settext函數程序會崩潰?

qt-初學Qt,為什麼對textEdit使用settext函數程序會崩潰?

編輯:編程解疑
初學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");
}

最佳回答:


textChanged()中調用setPlainText("shiyanshuju");設置文本,而這又會觸發textChanged(),結果又調用setPlainText……
無限遞歸了。

u011848302
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved