簡體   English   中英

如何填充QTableWidget?

[英]How to fill the QTableWidget?

我有一些代碼,我嘗試在其中填充 QTableWidget。 但是當我運行這個應用程序時,sells 是空的。 我檢查了 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() ) );
}

在此處輸入圖片說明

您需要分配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 );
    }
}

在 PyQt5 中,它看起來像這樣:

from PyQt5 import QtWidgets

# Creates an Qt item
qt_item = QtWidgets.QTableWidgetItem(CELL_DATA) 

# Set the qt_item at position (row, column) of your table_widget
table_widget.setItem(row, column, qt_item)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM