2017-11-29 13 views
0

이 내 코드입니다 :위젯 및 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());} 

출력 : enter image description here

나는 위젯이 MainWindow를 전체 창에 표시 할! 도와주세요, 제발 !!!!!

+0

먼저 부모가없는'mChart' 객체를 만들고, 모든 매개 변수를 설정하고, 데이터를 추가 한 다음,'mLayout' 객체를 만들고, mChart를 추가 한 다음 mainWindow의 레이아웃으로 설정하십시오. – organicoman

+0

또는'QChartView' 만 사용하면'QVBoxLayot'가 필요 없습니다. 설명서를 읽으십시오. – organicoman

+0

'QMainWindow'에서'setLayout'을 호출하는 것처럼 보입니까? 너는 그렇게해서는 안된다. 이미''setLayout : QLayout을 설정하려고 시도 중 ""QMainWindow "에 오류 메시지가 나타납니다. 이미" '레이아웃이 있습니다. –

답변

0
  • 부모를 메인 윈도우로 사용하여 QWidget을 만듭니다.

  • vboxlayout에 차트 위젯을 추가하십시오.

  • 첫 번째 단계에서 만든 더미 위젯에 vBoxLayout을 설정하십시오.

  • 그런 다음 더미 위젯을 중앙 위젯으로 지정하십시오. 아래

거친 코드 : 레이아웃이 이미 QWidget (중 VBOX)로 설정되어

mLayout = new QVBoxLayout; 

QWidget *vBox = new QWidget(this); 

mChart = new OpenChart(this); 

mLayout->addWidget(mChart); 

vBox->setLayout(mLayout); 

setCentralWidget(vBox); 

가 다시 setLayout를 호출하지 마십시오.