16,211
社区成员
发帖
与我相关
我的任务
分享
myWidget::myWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::myWidget)
{
ui->setupUi(this);
ui->progressBar->setRange(0, 50000 - 1);
ui->progressBar->setValue(0);
QStandardItemModel *modelR = new QStandardItemModel();
QStandardItemModel *modelB = new QStandardItemModel();
QStandardItemModel *modelH = new QStandardItemModel();
modelR->setColumnCount(5);
modelR->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("进程名称"));
modelR->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("占用内存"));
modelR->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("优先权"));
modelR->setHeaderData(3, Qt::Horizontal, QString::fromLocal8Bit("剩余时间"));
modelR->setHeaderData(4, Qt::Horizontal, QString::fromLocal8Bit("状态"));
ui->tableView->setModel(modelR);//就绪
ui->tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
//设置列宽不变
ui->tableView->horizontalHeader()->setResizeMode(0,QHeaderView::Fixed);
ui->tableView->horizontalHeader()->setResizeMode(1,QHeaderView::Fixed);
ui->tableView->horizontalHeader()->setResizeMode(2,QHeaderView::Fixed);
ui->tableView->horizontalHeader()->setResizeMode(3,QHeaderView::Fixed);
ui->tableView->horizontalHeader()->setResizeMode(4,QHeaderView::Fixed);
ui->tableView->setColumnWidth(0,100);
ui->tableView->setColumnWidth(1,101);
ui->tableView->setColumnWidth(2,102);
ui->tableView->setColumnWidth(3,103);
ui->tableView->setColumnWidth(4,82);
}
myWidget::~myWidget()
{
delete ui;
}
void myWidget::receiveData(QString data, QString data2, QString data3){
//ui->label_1->setText(data);
qDebug() << data;
qDebug() << data2;
qDebug() << data3;
modelR->setItem(1,0,new QStandardItem("2009"));
//设置字符颜色
modelR->item(1,0)->setForeground(QBrush(QColor(255, 0, 0)));
//设置字符位置
modelR->item(1,0)->setTextAlignment(Qt::AlignCenter);
modelR->setItem(1,1,new QStandardItem(QString::fromLocal8Bit("哈哈")));
modelR->setItem(1, 2, new QStandardItem(QString::fromLocal8Bit("哈哈")));
}
modelR->setItem(1,0,new QStandardItem("2009"));
//设置字符颜色
modelR->item(1,0)->setForeground(QBrush(QColor(255, 0, 0)));
//设置字符位置
modelR->item(1,0)->setTextAlignment(Qt::AlignCenter);
modelR->setItem(1,1,new QStandardItem(QString::fromLocal8Bit("哈哈")));
modelR->setItem(1, 2, new QStandardItem(QString::fromLocal8Bit("哈哈")));
这几条语句放到QTableView的构造函数中时,可以正确的在ui上显示出来,不会报错,但是放到一个接受信号的槽函数中,就会报'modelR' was not declared in this scope。所以我怀疑这是不是并不是内存泄漏的问题?为啥到槽函数里去调用就会他未声明呢?
我不知道如何给model设置父对象,使用model.setParent时会报错误:no matching function for call to 'QStandardItemModel::setParent(QTableView**)',网上找了一下也没有找到给model在这里设置父对象的方法,刚刚接触Qt的新手,希望前辈指点。