QGridLayout 小部件设置相等大小
QGridLayout Widgets Set Equal Size
.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(&this->byteArray);
buffer.open(QIODevice::WriteOnly);
this->pixmap.save(&buffer,"JPG");
}
当我运行这段代码时,小部件的位置是这样的:
如何设置小部件的高度和宽度相等?我尝试使用 QVBoxLayout 代替 QGridLayout 但没有任何改变。当我命令 InsertIntoByteArray() 函数时,问题已修复,但我需要使用该函数来保存图形。有什么想法吗?
您可以将图表小部件的 sizePolicy 设置为忽略 sizeHint
.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(&this->byteArray);
buffer.open(QIODevice::WriteOnly);
this->pixmap.save(&buffer,"JPG");
}
当我运行这段代码时,小部件的位置是这样的:
如何设置小部件的高度和宽度相等?我尝试使用 QVBoxLayout 代替 QGridLayout 但没有任何改变。当我命令 InsertIntoByteArray() 函数时,问题已修复,但我需要使用该函数来保存图形。有什么想法吗?
您可以将图表小部件的 sizePolicy 设置为忽略 sizeHint