将 QTablewidget 的更改值转换为 QStringList
Getting changed values of a QTablewidget into a QStringList
在我的 qt c++ 应用程序中,我想将 Qtable 小部件的更改值获取到 qt stringList 中!我为此使用了 on_tableWidget_cellChanged() 方法!但是我将 table 小部件的所有值都放入 qstringList
以下是我的代码
MainWIndow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
void on_tableWidget_cellChanged(int row, int column);
private:
QStringList changedValues;
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->tableWidget->setColumnCount(1);
ui->tableWidget->setRowCount(5);
for(int i=0;i<5;i++){
ui->tableWidget->setItem(i,0,new QTableWidgetItem(QString::number(i)));
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_tableWidget_cellChanged(int row, int column)
{
changedValues<<ui->tableWidget->item(row,column)->text();
}
void MainWindow::on_pushButton_clicked()
{
QString concat;
for(int i=0;i<changedValues.size();i++){
concat+=changedValues[i];
}
ui->label->setText(concat);
}
简答:
变化:
void on_tableWidget_cellChanged(int row, int column)
void MainWindow::on_tableWidget_cellChanged(int row, int column)
至:
void on_tableWidget_itemChanged(int row, int column)
void MainWindow::on_tableWidget_itemChanged(int row, int column)
解释:
QTableWidget 可以用 setItem()
设置 QTableWidgetItem
,或者通过 setCellWidget()
设置小部件,对于它们中的每一个,分别有信号 itemChanged
和 cellChanged
.
在你的情况下你有 QTableWidgetItem
所以你必须使用信号 itemChanged
.
在我的 qt c++ 应用程序中,我想将 Qtable 小部件的更改值获取到 qt stringList 中!我为此使用了 on_tableWidget_cellChanged() 方法!但是我将 table 小部件的所有值都放入 qstringList
以下是我的代码 MainWIndow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
void on_tableWidget_cellChanged(int row, int column);
private:
QStringList changedValues;
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->tableWidget->setColumnCount(1);
ui->tableWidget->setRowCount(5);
for(int i=0;i<5;i++){
ui->tableWidget->setItem(i,0,new QTableWidgetItem(QString::number(i)));
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_tableWidget_cellChanged(int row, int column)
{
changedValues<<ui->tableWidget->item(row,column)->text();
}
void MainWindow::on_pushButton_clicked()
{
QString concat;
for(int i=0;i<changedValues.size();i++){
concat+=changedValues[i];
}
ui->label->setText(concat);
}
简答:
变化:
void on_tableWidget_cellChanged(int row, int column)
void MainWindow::on_tableWidget_cellChanged(int row, int column)
至:
void on_tableWidget_itemChanged(int row, int column)
void MainWindow::on_tableWidget_itemChanged(int row, int column)
解释:
QTableWidget 可以用 setItem()
设置 QTableWidgetItem
,或者通过 setCellWidget()
设置小部件,对于它们中的每一个,分别有信号 itemChanged
和 cellChanged
.
在你的情况下你有 QTableWidgetItem
所以你必须使用信号 itemChanged
.