管理小部件有困难

时间:2013-06-20 11:02:28

标签: qt

我有一个名为“学生”的班级(此班级有表格) 在我的MainWindow中,我有一个来自这个班级的QVector! 现在我想要展示QVector每个成员的形式,但我不能! (我这样做是因为我希望任何学生都有自己的特殊页面!Witch保存任何特殊的变化为自己) 这是我的代码:

在我的主窗口中:

StHead = new QVector <Student> ;

void MainWindow::StudentSignIn (QString User,QString Pass)
{
///////Sign in things !
    int index = StudentSearch(User);
    Student* at = StHead->data();
    if (at[index].GetPass() == Pass)
        emit Hide_StuLog();
    qDebug()<<"This Slot happens";
    (*StHead)[index].show();
}

但是,当它显示时,它是一个空页! 有什么问题?!我正在做什么甚至可能?!

这也是我如何将会员添加到我的QVector

void MainWindow::StudentAdder(Student s)
{
    StHead->append(s);
}

1 个答案:

答案 0 :(得分:0)

好的,很多事情都不是好的做法:

  1. 如上所述,请勿使用宣称为QVector<Student> * StHead;的向量,而应直接使用QVector<Student> StHead;
  2. 相反,如果Student继承QObject,特别是QWidget,您可能宁愿在堆上分配它们,因此您实际上已经QVector<Student *> StHead;
  3. 直接使用StHead [index]访问向量,使用data()进行的调用对于眼睛来说相当痛苦;)
  4. 当您致电StHead[index]->show()时,请确保要显示的小部件的父级已经可见,除非它没有父级(如果您不确定,请致电StHead[index]->parent()。)