我创建了一个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/