使用Qt QTableWidget接收多个用户输入值
Take in multiple user input values using Qt QTableWidget
我正在尝试制作一个基本的UI,用于使用Qt接收用户输入并显示输出。我刚刚开始使用 UI,所以这可能看起来微不足道。我必须接受 3 组输入,其中每组由 90 个整数值组成。将每个集合视为 30 x 3 的 2D 数组。我正在尝试查看在Qt中处理此用户输入的最佳方法是什么。我已经使用Qt来处理.ui文件,下面的链接是它应该是什么样子的屏幕截图。
https://i.stack.imgur.com/KedP7.png
更具体地说,我使用 QTableWidget 来创建表本身。我现在的问题是,如何从表的每个单元格访问用户输入并将其存储到整个表的数组中?
帮助将不胜感激。
谢谢!
QTableWidget::item(int row, int column)
返回位于位置(行、列(的项目。行可以介于 0 和 QTableWidget::rowCount()
– 1 之间,列介于 0 和 QTableWidget::columnCount()
– 1 之间
QTableWidgetItem::text()
返回项目文本。
该函数读取所有项目并将它们循环添加到数组中,将 Enter-Button 的按下信号与此函数连接。
如果您只想读取更新的项目:QTableWidget::itemChanged()
信号会发送已更新的项目。 QTableWidget::indexFromItem()
返回项的索引,以便您可以更新数组。
这可能会有所帮助。(我没有评论的特权(:
我使用了一个help_index,它基本上从左到右对元素进行编号。每次编辑单元格(返回按下(时,都会选择下一个元素(help_index行中的 +1(。如果到达最后一个索引,我将聚焦"确定"按钮。
您可以在以下位置读取数据:
- 输入时间 (test_STR1(
- 按下"确定"按钮(test_STR2按钮上设置自动默认值:如何使QPushButton可按回车键?
标签功能:
void MainWindow::on_tableWidget_cellChanged(int row, int column)
{
QString test_STR1 = ui->tableWidget->item(row,column)->text(); // is string
qDebug(QString("OnCell %1,%2:%3").arg(column).arg(row).arg(test_STR).toLatin1());
// EG int array[rows][columns];
// QList<QStringList<QString>> (equivalent to: QList<QList<QString>>)
int columncount , rowcount, help_index,nextRow, nextColimn;
columncount = ui->tableWidget->columnCount();
rowcount = ui->tableWidget->rowCount();
help_index = column + row*columncount +1;
if(help_index < columncount*rowcount)
{
nextRow = help_index / columncount;
nextColimn = help_index % columncount;
ui->tableWidget->setCurrentCell(nextRow,nextColimn);
}
else
{
ui->pushButton_OK->setFocus();
}
}
Ok_button:
void MainWindow::on_pushButton_OK_clicked()
{
for(int i=ui->tableWidget->columnCount()-1;i>=0;i--)
for(int j=ui->tableWidget->rowCount()-1;j>=0;j--)
{
QString test_STR2 = ui->tableWidget->item(j,i)->text();
qDebug(QString("OnOk %1,%2:%3").arg(i).arg(j).arg(test_STR).toLatin1());
}
}
- C++如何通过用户输入删除列表元素
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 如何只允许用户输入正整数
- C++如何计算用户输入的数字中的偶数位数
- 通过for循环使用用户输入填充列表
- 在C++中,我如何接受不同于同一行的用户输入
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 显示基于用户输入的整数的字符
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 打印时有二叉树问题.用户输入不打印任何内容
- C ++奇怪的数组由用户输入
- 如何允许大写和小写用户输入?
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- 如何使用用户输入变量制作二维数组?
- 用户输入字符串的文件附加问题..C++
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?