[英]how to fill qvector which is member of MainWindow by means of qtablewidget from Qdialog
[英]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.