Почему я могу добавлять элементы в QWidget только во время выполнения, если QWidget не отображается на экране? - PullRequest
2 голосов
/ 14 июля 2011

У меня странная проблема при попытке добавить кнопки в QWidget во время выполнения.У меня есть окно с QTabWidget, и у него есть 2 вкладки.Когда я нажимаю кнопку в окне, она создает массив флажков на первой вкладке.

Проблема в том, что когда у меня открыта первая вкладка, ничего не происходит, когда я нажимаю кнопку, но если я открываю вторую вкладку, нажмите кнопку, а затем вернитесь к первой вкладке, флажки отображаются правильно,Это пример кода, который создает флажки:

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);
    }
}

Есть ли какое-то свойство, которое я должен включить в QTabWidget, чтобы это работало как надо?

1 Ответ

5 голосов
/ 14 июля 2011

Возможно, вам нужно показать () только что созданный виджет и позволить обновлению макета:

checkBoxVector.last()->show();
ui->dim1->updateGeometry();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...