2017-02-15 5 views
0

私はQtデザイナーに含まれているQPlainTextEditでQtプログラムに情報を表示しようとしています。しかし、私が何かを表示しようとすると、inserttextを使用しているときにQtプログラムがクラッシュする

pTextEdit->insertPlainText("text"); 

私のプログラムは実行時にクラッシュします。オブジェクトを自分で宣言しようとすると、

QTextEdit *txt = new QTextEdit(); 

でも動作しません。

私はmain.cppでオブジェクトを作成するときだけ動作します。しかし、別のウィンドウではなく私のウィジェットに情報を表示する必要があります。

何か助けていただければ幸いです。

EDIT:

作業:

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

    QTextEdit *txt = new QTextEdit(); 
    txt->setText("Hello, world!"); 
    txt->append("Appending some text…"); 

    txt->show(); 

    return a.exec(); 
} 

が機能していない(Qtのデザイナーによって作成されたオブジェクト):

MainWindow::MainWindow(QWidget *parent) : 

... initialization list ... 

{ 
    ui->setupUi(this); 

    console->setPlainText("text"); 

    .. other stuff ... 
} 
+0

あなたのメインウィンドウのコードファイルで、このロジックを処理しようとしていますか?そうです、を含んでいますか? – Trevor

+0

私は、あなたのmain.cppのようなものと、あなたのウィジェットクラスの外観は何ですか? –

+0

main.cppには何もしません。プロジェクトが作成されたときに生成されたものがあります。 'の#include "mainwindow.h" の#includeは "/ dynamixel_sdk.hを含む" メイン の#include <はQApplication> INT(INTのARGC、チャー*のARGV []){ はQApplication(ARGC、 argv); MainWindow w; w.show(); return a.exec(); } ' 私はクラッシュの原因を見つけるために何かを書きました。 が含まれています。 – Delet0r

答えて

0

考慮し、現在のカーソル位置にそのinsertPlainText挿入テキストを取るので、私カーソルが設定されていない場合(たとえば、フォーカスがない場合)に問題が発生する可能性があると考えてください。あなたは試すことがあります。

txt->setPlainText("your text"); 

または、追加したい場合:

txt->setPlainText(txt->toPlainText() + "appended text"); 
+0

もちろん、 'setTextCursor'を使ってカーソルを設定することができます。 – cbuchart

+0

頭をアップしてくれてありがとうが、私は 'txt-> setPlainText(" text ");を試しても同じ効果があった。 – Delet0r

+0

失敗したケースと作業中のケースの両方について、より完全なサンプルを公開してください。 – cbuchart

関連する問題