小部件和MainWindow

时间:2017-11-29 18:27:04

标签: c++ qt qwidget

这是我的代码:

mLayout = new QVBoxLayout;
mChart = new OpenChart(this);
setCentralWidget(mChart);
mLayout->addWidget(mChart);
mLayout->setMargin(0);
setLayout(mLayout);
QMap<QString,double> empleados;
empleados["Ana"]=5000.0;
empleados["Juan"]=6000.0;
empleados["Luis"]=7000.0;
empleados["Jorge"]=8000.0;
empleados["Francisco"]=100.0;
empleados["Mario"]=10000.0;
mChart->setTitle("sueldos");
mChart->setTipo(OpenChart::Sectores_2D);
mChart->setTipoleyenda(OpenChart::Circular);
const auto empleadosEnd=empleados.end();
for(auto i=empleados.begin();i!=empleadosEnd;++i)
{mChart->addItem(i.key(),i.value());}

输出: enter image description here

我想让小部件显示在主窗口的整个窗口上!请帮帮我!!!!!

1 个答案:

答案 0 :(得分:1)

  • 使用父级作为主窗口创建QWidget

  • 将图表小部件添加到您的vboxlayout。

  • 将vBoxLayout设置为在第一步中创建的虚拟窗口小部件。

  • 然后将虚拟小部件指定为中央小部件。

下面的粗略代码:

mLayout = new QVBoxLayout;

QWidget *vBox = new QWidget(this);

mChart = new OpenChart(this);

mLayout->addWidget(mChart);

vBox->setLayout(mLayout);

setCentralWidget(vBox);

请勿再次致电setLayout,因为布局已设置为QWidget(vbox)。