小部件和主窗口

Widget and MainWindow

这是我的代码:

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());}

输出:

我希望小部件显示在 window 的整个 window 主window !!请帮助我!!!!!

  • 创建一个 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)。