小弟在做一个QT中代理的示例时,遇到一个问题,首先设计了一个代理类(继承于QItemDelegate),但在使用时界面总是没有显示,我看了例子是在main函数中设置代理的,我是在类的构造函数中,不晓得是不是这个问题
部分代码如下 :
test2::test2(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
ui.tableWidget->setColumnCount(4);
ui.tableWidget->setRowCount(4);
EditorDelegate delegate;
ui.tableWidget->setItemDelegate(&delegate);
this->populateData(*ui.tableWidget);
ui.tableWidget->show();
}void test2::populateData(QTableWidget& table)
{
table.setItem(0, 0, new QTableWidgetItem(QObject::tr("林黛玉")));
table.setItem(1, 0, new QTableWidgetItem(QObject::tr("史湘云")));
table.setItem(2, 0, new QTableWidgetItem(QObject::tr("薛宝钗")));
table.setItem(3, 0, new QTableWidgetItem(QObject::tr("贾元春")));
table.setItem(0, 1, new QTableWidgetItem(QObject::tr("1980/2/3")));
table.setItem(1, 1, new QTableWidgetItem(QObject::tr("1981/10/24")));
table.setItem(2, 1, new QTableWidgetItem(QObject::tr("1978/5/15")));
table.setItem(3, 1, new QTableWidgetItem(QObject::tr("1979/8/29")));
table.setItem(0, 2, new QTableWidgetItem(QObject::tr("165")));
table.setItem(1, 2, new QTableWidgetItem(QObject::tr("168")));
table.setItem(2, 2, new QTableWidgetItem(QObject::tr("162")));
table.setItem(3, 2, new QTableWidgetItem(QObject::tr("163")));
QMessageBox::information(0, "ts",0);
table.setItem(0, 3, new QTableWidgetItem(QObject::tr("江苏")));
table.setItem(1, 3, new QTableWidgetItem(QObject::tr("浙江")));
table.setItem(2, 3, new QTableWidgetItem(QObject::tr("江西")));
table.setItem(3, 3, new QTableWidgetItem(QObject::tr("湖北")));
}
[ 此帖被leaves在2009-11-01 19:50重新编辑 ]