Qt - 另一个 class 中的主窗口 class 对象运行不正常

Qt - mainwindow class object in another class doesn't work well

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->... 却不行?如何解决?

编辑: 解决方案: `QPlainTextEdit *指针; 主窗口构造函数{ pointer=ui->qPlainTextEdit;}

其他人的class方法{ pointer->appendPlainText("It works"); }`

您在 MyAnotherClass::mySlot() 中创建了 MainWindow class 的新实例。当此插槽结束时,此实例将被删除。所以你看不到任何变化。

void MyAnotherClass::mySlot() {
    MainWindow window;  //new instance created
    window.myFunction();
} //here this instance deleted

你应该在 MyAnotherClass:

的某处指向你的主 window 而不是这个
MyAnotherClass
{
     .......   
    private slots:
        void mySlot();

    private:
        MainWindow* _mainWindow;
      ...............
};

然后你可以这样做:

void MyAnotherClass::mySlot() {
    _mainWindow->myFunction();
}

当然,你应该先初始化这个指针,然后才能使用它。