Как заполнить QTableWidget? - PullRequest
0 голосов
/ 26 июня 2018

У меня есть код, где я пытаюсь заполнить QTableWidget.Но когда я запускаю это приложение, продажи пусты.Я проверил, содержит ли QTableWidget какие-либо элементы (элементы), он содержит.

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QTableWidget>
#include <QDebug>
#include <QTimer>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);


}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    QTableWidget *pWidget = new QTableWidget( 5, 6 );

    for( int row = 0; row < 5; row++ )
    {
        for( int column = 0; column < 6; column++ )
        {
            QString sItem = QString::number( row + column );

            QVariant oVariant(sItem);

            QTableWidgetItem oItem;
            oItem.setData( Qt::DisplayRole, oVariant );
            pWidget->setItem( row, column, &oItem );

            QVariant oData = pWidget->item( row, column )->data( Qt::DisplayRole );
            qDebug() << "OData: " << oData.toString();
        }
    }

    QTimer::singleShot( 0, pWidget, SLOT( show() ) );
}

введите описание изображения здесь

1 Ответ

0 голосов
/ 26 июня 2018

Необходимо выделить QTableWidgetItem

рабочий пример:

QTableWidget *pWidget = new QTableWidget( 5, 6 );

for( int row = 0; row < 5; row++ )
{
    for( int column = 0; column < 6; column++ )
    {
        QString sItem = QString::number( row + column );

        QVariant oVariant(sItem);

        // allocate the widget item
        QTableWidgetItem * poItem = new QTableWidgetItem();
        poItem->setData( Qt::DisplayRole, oVariant );
        pWidget->setItem( row, column, poItem );
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...