在我的qt c ++应用程序中,我希望将Qtablewidget的更改值更改为qt stringList!我为此使用了on_tableWidget_cellChanged()方法!但我将表格小部件的所有值都放入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);
}
答案 0 :(得分:1)
简短回答:
变化:
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可以QTableWidgetItem
设置setItem()
,或设置setCellWidget()
设置小部件,每个设置分别有itemChanged
和cellChanged
信号。< / p>
在您的情况下,您有QTableWidgetItem
,因此您必须使用信号itemChanged
。