这是我的代码:
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());}
输出:
我想让小部件显示在主窗口的整个窗口上!请帮助我!!!!!
最佳答案
创建一个
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)。
关于c++ - 小部件和主窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47559399/