Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如果QWidget不是',为什么我只能在运行时向QWidget添加元素;在屏幕上看不见吗?_C++_Qt - Fatal编程技术网

C++ 如果QWidget不是',为什么我只能在运行时向QWidget添加元素;在屏幕上看不见吗?

C++ 如果QWidget不是',为什么我只能在运行时向QWidget添加元素;在屏幕上看不见吗?,c++,qt,C++,Qt,在运行时尝试向QWidget添加按钮时,我遇到了一个奇怪的问题。我有一个带有QTabWidget的窗口,它有两个选项卡。当我按下窗口上的按钮时,它会在第一个选项卡上生成一系列复选框 问题是,当我打开第一个选项卡时,当我按下按钮时什么也不会发生,但是如果我打开第二个选项卡,按下按钮,然后返回到第一个选项卡,复选框会正确显示。这是创建复选框的代码示例: for(int i = 0; i < x_dim; ++i){ for(int j = 0; j < y_dim; ++j){

在运行时尝试向QWidget添加按钮时,我遇到了一个奇怪的问题。我有一个带有QTabWidget的窗口,它有两个选项卡。当我按下窗口上的按钮时,它会在第一个选项卡上生成一系列复选框

问题是,当我打开第一个选项卡时,当我按下按钮时什么也不会发生,但是如果我打开第二个选项卡,按下按钮,然后返回到第一个选项卡,复选框会正确显示。这是创建复选框的代码示例:

for(int i = 0; i < x_dim; ++i){
    for(int j = 0; j < y_dim; ++j){
        checkBoxVector.append(new QCheckBox( ui->dim1 ));
        checkBoxVector.last()->setGeometry(i * 20, j * 20, 20, 20);
    }
}
for(int i=0;idim1));
checkBoxVector.last()->setGeometry(i*20,j*20,20,20);
}
}
QTabWidget中是否需要启用某种属性才能正常工作?

您可能需要显示()新创建的小部件,并让布局更新:

checkBoxVector.last()->show();
ui->dim1->updateGeometry();

添加后,您可能只需要调用qApp->processEvents()?您能给我一个调用该函数的示例吗?Qt文档有点混乱(不太清楚如何使用标志)。谢谢您可以将qApp->processEvents();就在你的两个for循环之后。弗兰克·奥斯特菲尔德的回答没有那么严厉,先试试吧!