我创建了一个qt小部件应用程序。使用设计模式,我创建了一个QTextEdit并在头文件中指出了这一点:

...

QT_BEGIN_NAMESPACE
class QAction;
class QMenu;
class QTextEdit;
QT_END_NAMESPACE

...

private:
    Ui::MainWindow *ui;
    QTextEdit *textEdit_2;
};

还有一个插槽,可通过按下按钮来触发。它要做的是在按下按钮后将一些文本插入到textEdit_2中,程序仍然崩溃。
在mainwindow.cpp中:
void MainWindow::on_action_4_triggered()
{
    textEdit_2->setText("text");
}

我也尝试过
textEdit_2->setText(QString("text"));

无论如何都行不通。有什么问题?

最佳答案



问题是您试图忽略在QtDesigner中创建的实际文本小部件,而将另一个小部件创建为类成员。这不会像您想要的那样飞。

为了从您使用图形工具创建的UI中重用文本小部件,您将需要重用ui对象,如下所示:

ui->textEdit_2->setText("text");

另请注意,您不需要像这样显式构造QString:
textEdit_2->setText(QString("text"));

这对您来说将是全自动的。

关于c++ - QT QTextEdit setText崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23450542/

10-12 04:51