#c #qt #qlayout #qgridlayout
#c #qт #qlayout ( описание ) #qgridlayout #qt #qlayout
Вопрос:
файл .h:
QChartView *chrtViewArr[5];
QGridLayout *graphLayout;
QFrame *graphFrame;
.cpp-файл:
{
...
this->graphLayout = new QGridLayout(this->graphFrame);
for(int i=0;i<3;i ){
this->graphLayout->addWidget(this->chrtViewArr[i],i,0);
}
this->graphFrame->setLayout(this->graphLayout);
for(int i=0;i<machine_count;i ){
this->InsertIntoByteArray(this->chrtViewArr[i]);
}
...
widget.show();
}
void GraphDialog::InsertIntoByteArray(QChartView *chartView){
this->pixmap = chartView->grab();
QBuffer buffer(amp;this->byteArray);
buffer.open(QIODevice::WriteOnly);
this->pixmap.save(amp;buffer,"JPG");
}
Когда я запускаю этот код, размещение виджетов выглядит следующим образом:
Как я могу установить равную высоту и ширину виджета? Я пытался использовать QVBoxLayout вместо QGridLayout, но ничего не изменилось. Когда я командую функцией InsertIntoByteArray(), проблема исправлена, но мне нужно использовать эту функцию для сохранения графиков. Есть идеи?
Ответ №1:
Вы могли бы настроить политику размера виджетов диаграммы так, чтобы игнорировать значение sizeHint
Комментарии:
1. Это сработало. это-> chrtViewArr[i]-> setSizePolicy(QSizePolicy::игнорируется,QSizePolicy::игнорируется);