我已经创建了一个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"));
无论如何都不起作用。问题是什么?
答案 0 :(得分:2)
textEdit_2->的setText( “文本”);
问题在于您试图忽略在QtDesigner
中创建的实际文本小部件,并将另一个小部件发明为类成员。这似乎不会像你想要的那样飞。
为了重用您使用图形工具创建的UI中的文本窗口小部件,您需要重用ui
对象,如下所示:
ui->textEdit_2->setText("text");
另请注意,您无需像这样明确构建QString
:
textEdit_2->setText(QString("text"));
这对你来说都是自动的。