在Mainwindow的主窗口里拖入一个gridLayout,头文件定义QFrame *m_parentFrame;QFrame *m_frame[4];
构造里:
m_parentFrame = new QFrame();
ui->gridLayout->addWidget(m_parentFrame);
for(int i = 0; i < 4; i++)
{
m_frame[i] = new QFrame();
m_frame[i]->setParent(m_parentFrame);
showMyFrame();
}
函数showMyFrame()
{
int w = m_parentFrmae->width();
int h = m_parentFrmae->height();
int fw = w/2;
int fh = h/2;
for(int i = 0; i < 4; i++)
{
m_frame[i]->setGeometry(i%2 *fw, i/2 *fh, fw, fh);
m_frame[i]->show();
}
}
我打算让4个Frame按照窗口大小跟随缩放
可是怎么连窗口都显示不出来呢?
------解决方案--------------------
myFrame是什么?myFrame里有一个gridLayout是什么意思?
另外,楼主,QFrame默认的颜色和窗体是一样的,所以你看不出它是否显示。
我把你的代码整理了一下,跟随缩放是没有问题的。
- C/C++ code
m_parentFrame = new QFrame(this); ui->gridLayout->addWidget(m_parentFrame); for(int i = 0; i < 4; i++) { m_frame[i] = new QFrame(this); m_frame[i]->setStyleSheet("background-color: rgb(255, 0, 0);"); ui->gridLayout->addWidget(m_frame[i]); }