2016-03-19 9 views
0

中にQTextEditの内容を変更する:'onTextChange()' 我々はいくつかのコード持っている信号

void MainWindow::textChangedListener(){ 
    QTextEdit* dock = qobject_cast<QTextEdit *>(QObject::sender()); 
    dock->setText("asd"); 
} 

と信号:

cout << connect(it->silaTextEdit, SIGNAL(textChanged()), this, SLOT(textChangedListener())) << endl; 

trueを返します(それが接続されています)。

私はQTextEditのテキストを変更する - とアプリがクラッシュ:ユーザーが間違った番号を入力すると、私はそれを修正しますが、私が作ることができないことを、私はテキストエディットを作成しよう

First-chance exception at 0x561158D7 (Qt5Guid.dll) in asd.exe: 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x00092000). 
Unhandled exception at 0x561158D7 (Qt5Guid.dll) in asd.exe: 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x00092000). 

を、この作業。

ありがとうございました。

答えて

1
あなたはおそらくそうでなければ、無限ループを取得し、信号を切断する必要が

void MainWindow::textChangedListener(){ 
    QTextEdit* dock = qobject_cast<QTextEdit *>(QObject::sender()); 
    if (dock) { 
     disconnect(dock, SIGNAL(textChanged()), this, SLOT(textChangedListener())) 
     dock->setText("asd"); 
     connect(dock, SIGNAL(textChanged()), this, SLOT(textChangedListener())) 
    } 
} 
関連する問題