我的小部件没有显示在主窗口上。 QT

时间:2014-08-07 06:46:24

标签: c++ qt widget

在我的程序中,senario就像这样,用户打开一个xml文件,程序读取它。显示单位和测试,当用户点击所需的测试时,程序需要显示其步骤。由于步骤数总是在变化,我需要按代码添加小部件并删除它们。但是,当我尝试按代码添加小部件并设置其位置时,它不会显示在主窗口上。 (我正在单独上课,只是让事情看起来更整洁)

这是我的示例代码;

  void CStepPanel::addstep()
      {
           QLabel *label1 = new QLabel("step1");
           label1->move(450,50);


       }

你知道它不起作用吗?我怎么能这样做。因为我是qt和编程的新手,所以我很难解决这个问题。

1 个答案:

答案 0 :(得分:0)

您的窗口小部件应具有要在其他窗口小部件或对话框中显示的父窗口。您应该为标签设置父级。如果您希望它显示在主窗口上,那么指向QMainWindow的指针应保存在类CStepPanel中(可以在CStepPanel的构造函数中指定):

QMainWindow * mainWindow;

addstep就像:

QLabel *label1 = new QLabel("step1");
label1->setParent(mainWindow);
label1->move(450,50);