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

新手上路,请多包涵

我查看了 Qt 文档,但在我的项目中,我希望我的程序的大部分非图形“更多思考”部分位于单独的 .cpp 文件中。鉴于此,我想在用户触发“returnPressed”操作后将输入到 QLineEdit 对象中的文本保存为字符串,但是当我输入时:

 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...'

… 等等。

我应该如何重写我的代码才能正确地做到这一点?

原文由 Air Conditioner 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

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

string input = QLineEdit::text();

用线

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

原文由 danieltm64 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题