16,175
社区成员
发帖
与我相关
我的任务
分享
#ifndef TESTTABLEWIDGET_H
#define TESTTABLEWIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
class QTableWidget;
QT_END_NAMESPACE
class TestTableWidget : public QWidget
{
Q_OBJECT
public:
explicit TestTableWidget(const QList<QPointF>* coord, QWidget *parent = 0);
private:
void addRow();
private:
QTableWidget* pTableWidget;
const QList<QPointF>* pCoordinates;
};
#endif // TESTTABLEWIDGET_H
#include "testtablewidget.h"
#include <QTableWidget>
#include <QStringList>
#include <QTableWidgetItem>
#include <QVBoxLayout>
TestTableWidget::TestTableWidget(const QList<QPointF>* coord,
QWidget *parent) :
QWidget(parent),
pTableWidget(new QTableWidget(10, 2, this))
{
pCoordinates = coord;
QStringList strList;
strList.append(tr("X"));
strList.append(tr("Y"));
pTableWidget->setHorizontalHeaderLabels(strList);
pTableWidget->setItemPrototype(new QTableWidgetItem());
//set pTableWidget to be disabled for changing item.
//pTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
for (int row(0); row != pCoordinates->count(); ++row) {
QPointF point = pCoordinates->at(row);
//addRow();
pTableWidget->item(row, 0)->setText(QString::number(point.x()));
pTableWidget->item(row, 1)->setText(QString::number(point.y()));
}
QVBoxLayout* vBoxLayout(new QVBoxLayout(this));
vBoxLayout->addWidget(pTableWidget);
setLayout(vBoxLayout);
}
void TestTableWidget::addRow()
{
int row(pTableWidget->rowCount());
pTableWidget->insertRow(row);
/*
QTableWidgetItem* item0(new QTableWidgetItem());
item0->setTextAlignment(Qt::AlignVCenter | Qt::AlignLeft);
pTableWidget->setItem(row, 0, item0);
QTableWidgetItem* item1(new QTableWidgetItem());
item1->setTextAlignment(Qt::AlignBaseline | Qt::AlignRight);
pTableWidget->setItem(row, 1, item1);
pTableWidget->setCurrentCell(row, 0);
*/
}
#include <QtWidgets>
#include "coordinatesetter.h"
#include "testtablewidget.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QList<QPointF> coordinates;
coordinates << QPointF(0.0, 0.9)
<< QPointF(0.2, 11.0)
<< QPointF(0.4, 15.4)
<< QPointF(0.6, 12.9)
<< QPointF(0.8, 8.5)
<< QPointF(1.0, 7.1)
<< QPointF(1.2, 4.0)
<< QPointF(1.4, 13.6)
<< QPointF(1.6, 22.2)
<< QPointF(1.8, 22.2);
//CoordinateSetter coordinateSetter(&coordinates);
//coordinateSetter.show();
TestTableWidget coordinateSetter(&coordinates);
coordinateSetter.show();
return app.exec();
}
pTableWidget->setItemPrototype(new QTableWidgetItem());
是否就可以在录入信息时,自动调用项(QTableWidgetItem)的clone[/quote]
文档上说的是输入的时候可以自动创建吧,
代码里你这种写法不行[/quote]
恩,是的,我就是想在这段代码中试着用自动创建,那该怎么自动创建?:)[/quote]
看四楼
QModelIndex idx = pTableWidget->model()->index(1,1);
pTableWidget->model()->setData(idx,"sdfdsfds");//
这是一种方法,你可以自己再查查看看有没有别的方法。
pTableWidget->setItemPrototype(new QTableWidgetItem());
是否就可以在录入信息时,自动调用项(QTableWidgetItem)的clone[/quote]
文档上说的是输入的时候可以自动创建吧,
代码里你这种写法不行[/quote]
恩,是的,我就是想在这段代码中试着用自动创建,那该怎么自动创建?:)pTableWidget->setItemPrototype(new QTableWidgetItem());
是否就可以在录入信息时,自动调用项(QTableWidgetItem)的clone[/quote]
文档上说的是输入的时候可以自动创建吧,
代码里你这种写法不行pTableWidget->setItemPrototype(new QTableWidgetItem());
是否就可以在录入信息时,自动调用项(QTableWidgetItem)的clone