我在向 ui 添加 QPushButton 时遇到问题。我这样做:
QPushButton *mine[PlayForm->horizontal][PlayForm->vertical];
for(int i=0; i<PlayForm->horizontal; i++)
{
for(int j=0; j<PlayForm->vertical; j++)
{
QWidget wdg;
mine[i][j] = new QPushButton(" ", &wdg);
mine[i][j]->setGeometry(size*i, size*j, size, size);
mine[i][j]->show();
PlayForm->layout()->addWidget(mine[i][j]);
}
}
所以我该怎么做?! 最佳答案
您正在堆栈上创建一个临时父小部件,并为 QPushButton
使用对它的引用 - 这是获得段错误的好方法。
parent 小部件参数默认为 nullptr
,这对您来说是可以接受的,因为布局拥有它的所有权。
//QWidget wdg;
mine[i][j] = new QPushButton( " " );
您收到的错误消息由此 question 回答。简而言之,这意味着您不应修改
QMainWindow
布局;您需要创建一个小部件,将其添加为中央小部件,然后修改中央小部件的布局。关于c++ - QMainWindowLayout::addItem: 请改用公共(public) QMainWindow API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15633709/