0
void MyAnotherClass::mySlot(){
MainWindow window;
window.myFunction();}
void MainWindow::myFunction(){
qDebug() << "THIS qDebug works well but ui do NOT";
ui->textEdit->setText("Why i do not working?");
}
なぜこの状況でqDebugはうまく動作しますが、ui - > ...そうではありませんか?それを修正するには?Qt - 別のクラスのmainwindowクラスオブジェクトがうまく動作しない
編集:ソリューション: `QPlainTextEdit * pointer; メインウィンドウコンストラクタ{ ポインタ= UI-> qPlainTextEdit;}
いくつかの他のクラスメソッド{ pointer-> appendPlainText( "それが動作します")。 }
このポインタを初期化する方法は?あなたはこれを行う良い方法を知っていますか? 'class MyAnotherClass:public QPlainTextEdit { プライベート: MainWindow * _mainWindow; } ' –
コードデザインによってはいくつかの方法があります。コンストラクタに渡すことも、何らかの方法で渡すこともできます。あるいは、 'MainWindow'をシングルトンにすることもできます。 – Evgeny
[mainwindow.cpp](https://codepaste.net/ebe9mm)[mainwindow.h](https://codepaste.net/g3nf65)[myqplaintextedit.h](https://codepaste.net/ba8kjc) 私の別のクラスは** MyQPlaintTextEdit **で、** exit_slot()**と** on_pushButton_clicked()**の** mainwindow.cpp **にあります。あなたは私のケースでどのようにポインタを使うことができますか教えていただけますか? –