1) QTableWidget::QTableWidget ( QWidget *parent = 0 ) //构造一个父对象为parent的TableWidget。 2) QTableWidget::QTableWidget ( int rows, int columns, QWidget *parent = 0 )//构造一个rows行、colums列、父对象为parent的TableWidget控件 3) QWidget *QTableWidget::cellWidget ( int row, int column ) const //返回行row、列column的单元格处的控件。 4) void QTableWidget::clear () [slot] //删除该TreeWidget中的所有项目。 5) void QTableWidget::clearContents () [slot] //删除该TreeWidget中的除了header外的所有项目。 6) int QTableWidget::column ( const QTableWidgetItem *item ) const //返回项目item所在的列。 7) int QTableWidget::currentColumn () const //返回当前活动的列。 8) QTableWidgetItem *QTableWidget::currentItem () const //返回当前活动的项目。 9) int QTableWidget::currentRow () const //返回当前活动的行。 10) void QTableWidget::editItem ( QTableWidgetItem *item ) //如果item是可编辑的,开始编辑item。 11) QList<QTableWidgetItem *>QTableWidget::findItems( const QString & text,QT::MatchFlags flags ) const //查找匹配字符串text的项目,并返回查找结果。 12) void QTableWidget::insertColumn ( int column ) [slot] //在列column处插入新列。 13) void QTableWidget::insertRow ( int row ) [slot] //在行row处插入新行。 14) QTableWidgetItem *QTableWidget::item ( int row, int column ) const //返回行row、列column处的项目。 15) QTableWidgetItem *QTableWidget::itemAt ( const QPoint & point ) const //返回点point处的项目。 16) QTableWidgetItem *QTableWidget::itemAt ( int ax, int ay ) const //返回坐标(ax,ay)处的项目。 17) void QTableWidget::removeCellWidget ( int row, int column ) //移除行row、列column单元格处的显示控件。 18) void QTableWidget::removeColumn ( int column ) [slot] //移除列column。 19) void QTableWidget::removeRow ( int row ) [slot] //移除行row。 20) int QTableWidget::row ( const QTableWidgetItem *item ) const //返回item的行。 21) QList<QTableWidgetItem *> QTableWidget::selectedItems () //返回所有选中状态的项目。 22) void QTableWidget::setCellWidget ( int row, int column, QWidget *widget ) //设置行row、列column处的显示控件为widget。 23) void QTableWidget::setCurrentCell ( int row, int column ) //设置行row、列column处的单元格为当前活动单元格。 24) void QTableWidget::setCurrentItem ( QTableWidgetItem *item ) //设置项目item为当前活动项目。 25) void QTableWidget::setHorizontalHeaderItem ( int column, QTableWidgetItem *item ) //设置项目item为列column的水平头项目。功能同setVerticalHeaderItem()。 26) void QTableWidget::setHorizontalHeaderLabels ( const QStringList & labels ) //设置水平标题为labels。功能同seVerticalHeaderLabels()。 27) void QTableWidget::setItem ( int row, int column, QTableWidgetItem *item ) //设置行row、列column的单元格的项目为item。 28) void QTableWidget::sortItems ( int column, QT::SortOrder order = QT::AscendingOrder ) //对列column按照order进行排序。 29) QTableWidgetItem *QTableWidget::takeHorizontalHeaderItem ( int column )
//移除列column的水平头项目。功能同takeVerticalHeaderItem()。 30) QTableWidgetItem *QTableWidget::takeItem ( int row, int column ) //移除行row、列column单元格处的项目。 31) QTableWidgetItem *QTableWidget::verticalHeaderItem ( int row ) const //返回行row的垂直头项目
//coordinatesetter.h #ifndef COORDINATESETTER_H #define COORDINATESETTER_H #include <QDialog> #include <QList> class QDialogButtonBox; class QTableWidget; class CoordinateSetter : public QDialog { Q_OBJECT public: CoordinateSetter(QList<QPointF> *coords, QWidget *parent = 0); void done(int result); ~CoordinateSetter(); private slots: void addRow(); private: QList<QPointF> *coordinates; QTableWidget *tableWidget; QDialogButtonBox *buttonBox; }; #endif // COORDINATESETTER_H //coordinatesetter.cpp #include <QTableWidget> #include <QTableWidgetItem> #include <QDialogButtonBox> #include <QVBoxLayout> #include <QPushButton> #include "coordinatesetter.h" CoordinateSetter::CoordinateSetter(QList<QPointF> *coords,QWidget *parent) : QDialog(parent) { coordinates = coords; tableWidget = new QTableWidget(0, 2,this); tableWidget->setHorizontalHeaderLabels( QStringList() << tr("X") << tr("Y")); for (int row = 0; row != coordinates->count(); ++row) { QPointF point = coordinates->at(row); addRow(); tableWidget->item(row, 0)->setText(QString::number(point.x())); tableWidget->item(row, 1)->setText(QString::number(point.y())); } buttonBox = new QDialogButtonBox(Qt::Horizontal); QPushButton *addRowButton = buttonBox->addButton( tr("&Add Row"), QDialogButtonBox::ActionRole); buttonBox->addButton(QDialogButtonBox::Ok); buttonBox->addButton(QDialogButtonBox::Cancel); connect(addRowButton, SIGNAL(clicked()), this, SLOT(addRow())); connect(buttonBox,SIGNAL(accepted()), this, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(tableWidget); layout->addWidget(buttonBox); setLayout(layout); setWindowTitle(tr("CoordinateSetter")); } void CoordinateSetter::done(int result) { if (result == QDialog::Accepted) { coordinates->clear(); for (int row = 0; row != tableWidget->rowCount(); ++row) { double x = tableWidget->item(row, 0)->text().toDouble(); double y = tableWidget->item(row, 1)->text().toDouble(); coordinates->append(QPointF(x, y)); } } QDialog::done(result); } void CoordinateSetter::addRow() { int row = tableWidget->rowCount(); tableWidget->insertRow(row); QTableWidgetItem *item0 = new QTableWidgetItem; item0->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); item0->setIcon(QIcon(":/images/13.bmp")); tableWidget->setItem(row, 0, item0); QTableWidgetItem *item1 = new QTableWidgetItem; item1->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); item1->setIcon(QIcon(":/images/7.bmp")); tableWidget->setItem(row, 1, item1); tableWidget->setCurrentItem(item0); } CoordinateSetter::~CoordinateSetter() { } //main.cpp #include <QApplication> #include "coordinatesetter.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); QList<QPointF> list; list << 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 window(&list); window.resize(300,300); window.show(); return a.exec(); }