我创建了一个 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"));
这无论如何都行不通。有什么问题吗?
最佳答案
textEdit_2->setText("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/