我查看了Qt文档,但在我的项目中,我希望我的程序中的大多数非图形“更多思考”部分都在一个单独的.cpp文件中。 鉴于此,我想要将文本输入到QLineEdit对象中,并在用户触发'returnPressed'操作后将其保存为字符串,但是当我输入时:
void MainWindow::on_lineEdit_returnPressed()
{
QMessageBox msgBox;
msgBox.setText("The entry has been modified.");
msgBox.exec();
//The line which should save the contents of the QLineEdit box:
string input = QLineEdit::text();
}
...进入Qt Creator IDE提供的模板(希望创建所有必要的插槽)编译器返回
In member function 'void MainWindow::on_lineEdit_returnPressed()'
cannot call member function 'QString...'
......等等。
我应该如何重写代码才能正确执行此操作?
答案 0 :(得分:2)
您必须选择如何存储字符串。您的主要选项是:char
的数组,标准库中的std :: string和Qt的QString。如果你需要在第三方库中使用该字符串,那么你可能需要将它存储在std :: string或char
的数组中,但如果不是这样,那么我建议你只使用QString因为它在整个Qt中被广泛使用,尽管你可以将QString转换为std :: string或char
的数组。
您必须实际检索文本。为此,您必须在QLineEdit实例上调用text()函数,而不是在QLineEdit类本身上调用。可以通过ui
指针访问所有小部件。打开设计器并检查行编辑的名称,默认名称为lineEdit
,因此请尝试替换行
string input = QLineEdit::text();
行
QString input = ui->lineEdit->text();
答案 1 :(得分:0)
怎么样:
lineEdit->text().toStdString()