После создания и центровки заголовков столбцов мы в цикле просматриваем все переданные нам данные с координатами. Для каждой пары (x, у) мы создаем два элемента
По умолчанию виджет
01 void CoordinateSetter::addRow()
02 {
03 int row = tableWidget->rowCount();
04 tableWidget->insertRow(row);
05 QTableWidgetltem *item0 = new QTableWidgetltem;
06 item0->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
07 tableWidget->setItem(row, 0, item0);
08 QTableWidgetltem *item1 = new QTableWidgetltem;
09 item1->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
10 tableWidget->setItem(row, 1, item1);
11 tableWidget->setCurrentItem(item0);
12 }
Слот
01 void CoordinateSetter::done(int result)
02 {
03 if (result == QDialog::Accepted) {
04 coordinates->clear();
05 for (int row = 0; row < tableWidget->rowCount(); ++row) {
06 double x = tableWidget->item(row, 0)->text().toDouble();
07 double у = tableWidget->item(row, 1)->text().toDouble();
08 coordinates->append(QPointF(x, y));
09 }
10 }
11 QDialog::done(result);
12 }
Наконец, когда пользователь нажимает кнопку OK, мы очищаем координаты, переданные ранее в диалоговое окно, и создаем новый набор на основе координат в элементах виджета
В качестве нашего третьего и последнего примера применения в Qt удобных виджетов отображения элементов мы рассмотрим некоторые фрагменты приложения, которое показывает параметры настройки Qt—приложения, используя
Ниже приводится фрагмент конструктора:
01 SettingsViewer::SettingsViewer(QWidget *parent)
02 : QDialog(parent)
03 {
04 organization = "Trolltech";
05 application = "Designer";
06 treeWidget = new QTreeWidget;
08 treeWidget->setColumnCount(2);
09 treeWidget->setHeaderLabels(
10 QStringList() << tr("Key") << tr("Value"));
11 treeWidget->header()->setResizeMode(0, QHeaderView::Stretch);
12 treeWidget->header()->setResizeMode(1, QHeaderView::Stretch);
13 …
14 setWindowTitle(tr("Settings Viewer"));
15 readSettings();
16 }