coordinatesetter.cpp

来自「c++ GUI Programming with QT4书中的源码」· C++ 代码 · 共 76 行

CPP
76
字号
#include <QtGui>#include "coordinatesetter.h"CoordinateSetter::CoordinateSetter(QList<QPointF> *coords,                                   QWidget *parent)    : QDialog(parent){    coordinates = coords;    tableWidget = new QTableWidget(0, 2);    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()));    }    addRowButton = new QPushButton(tr("&Add Row"));    okButton = new QPushButton(tr("OK"));    okButton->setDefault(true);    cancelButton = new QPushButton(tr("Cancel"));    connect(addRowButton, SIGNAL(clicked()), this, SLOT(addRow()));    connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));    connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));    QHBoxLayout *buttonLayout = new QHBoxLayout;    buttonLayout->addWidget(addRowButton);    buttonLayout->addStretch();    buttonLayout->addWidget(okButton);    buttonLayout->addWidget(cancelButton);    QVBoxLayout *mainLayout = new QVBoxLayout;    mainLayout->addWidget(tableWidget);    mainLayout->addLayout(buttonLayout);    setLayout(mainLayout);    setWindowTitle(tr("Coordinate Setter"));}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);    tableWidget->setItem(row, 0, item0);    QTableWidgetItem *item1 = new QTableWidgetItem;    item1->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);    tableWidget->setItem(row, 1, item1);    tableWidget->setCurrentItem(item0);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?