【发布时间】:2020-07-22 17:35:12
【问题描述】:
我正在用 Qt 编写一个 GUI 应用程序。
我需要从用户那里得到一组整数,它们将被加载到一个数组中。在视觉上做到这一点的最佳方法是什么。这似乎很容易,但我在 GUI 应用程序方面没有太多经验。我正在考虑使用 lineEdit,但它将文本作为输入,我不确定在这种情况下如何处理输入。
如果有人有类似的问题,以供将来参考,这就是我使用行编辑的方式:
//Read input as string from line edit
QString input_text = ui->lineEdit->text();
if(input_text.isEmpty())
return;
//Check for letters or symbols
for (int i = 0; i < input_text.length(); i++)
if(input_text.at(i).isLetter() || input_text.at(i).isSymbol() || input_text.at(i).isPunct())
return;
//Split input in parts around 'space'
QStringList input_list = input_text.split(" ", QString::SkipEmptyParts);
//Copy those parts to array as integers
for (int i = 0; i < input_list.length() && i < current_array_size; i++)
array.replace(i, input_list.at(i).toInt() );
【问题讨论】:
-
嘿,首先欢迎来到 SO。你说你正在写一些东西,所以也许你可以从发布你的代码和你面临的问题开始。请考虑查看minimal reproducible example
-
QLineEdit::text给你QString。使用QString::toInt获取大概输入的整数,或者如果文本不代表整数,则做出相应的反应。 -
@scopchanov 如果输入看起来像这样:“4 5 7 1”或“5,6,7”我可以分别得到每个数字吗?这个想法是用户将编写所有输入一次并点击一个按钮。感谢您的帮助。
-
@dboy 哈哈,谢谢,但我不知道这有什么帮助,因为我没有错误或其他东西。我在问一个我不确定如何解决的问题,所以它没有实施 jet。希望这能澄清这一点并感谢您的帮助
-
当然,您可以将输入分解为单个数字。
QString提供了一系列简洁的方法来帮助您。这取决于特定的用例,应该使用哪些以及如何使用。这正是 mre 的用途。但是当你说,我根本不知道如何解决这个问题时,你不需要在这个网站上发布问题,而是阅读一本书或教程之类的东西。查看description of the qt tag 获取有关此主题的一些非常有用的资源。
标签: c++ qt user-interface input