将QLineEdit对象的内容保存到字符串变量(C ++)中

时间:2014-09-20 22:34:11

标签: c++ qt5 c++14

我查看了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...'

......等等。

我应该如何重写代码才能正确执行此操作?

2 个答案:

答案 0 :(得分:2)

  1. 您必须选择如何存储字符串。您的主要选项是:char的数组,标准库中的std :: string和Qt的QString。如果你需要在第三方库中使用该字符串,那么你可能需要将它存储在std :: string或char的数组中,但如果不是这样,那么我建议你只使用QString因为它在整个Qt中被广泛使用,尽管你可以将QString转换为std :: string或char的数组。

  2. 您必须实际检索文本。为此,您必须在QLineEdit实例上调用text()函数,而不是在QLineEdit类本身上调用。可以通过ui指针访问所有小部件。打开设计器并检查行编辑的名称,默认名称为lineEdit,因此请尝试替换行

  3. string input = QLineEdit::text();

    QString input = ui->lineEdit->text();

答案 1 :(得分:0)

怎么样:

lineEdit->text().toStdString()