Подключите пользовательский виджет к QWidgetTab для определения размеров - PullRequest
1 голос
/ 03 марта 2010

Я пытаюсь заставить каждый виджет масштабироваться с изменением размера окна. У меня есть главное окно, в котором есть QTabWidget с держателем QWidget для каждой вкладки. Затем у меня есть собственный виджет с отдельным файлом .ui, который я установил, чтобы заполнить пространство QWidget вкладки. Проблема в том, что я не могу развернуть содержимое QWidget, только вкладку и QWidget главного окна. Кроме того, я заметил, что если я изменю аргумент ui-> setupUi () для пользовательского виджета с «this» на «parent», проблема будет исправлена, и пользовательский виджет будет масштабироваться правильно. Единственная проблема с этим - ни одна из кнопок не работает, когда я это делаю. Выходные данные приложения считывают найденные ошибки «Нет слотов» для кнопок. Как правильно сделать это соединение?

Редактировать: Пример кода

MainWindow:: ...
{
    //assign customWidget to widget placeholder on tabWidget.
    //holder is just a blank widget set in gridLayout on tab widget.
    CustomWidget * customWidget = new CustomWidget(ui->customWidgetHolder);

    setCentralWidget(ui->tabWidget); 
    //This gets the sizing I want with the tabs, but 
    //doesn't  pass it past the customWidgetHolder.
}

1 Ответ

2 голосов
/ 03 марта 2010

Насколько я понимаю, вам нужно использовать макет для своего пользовательского виджета внутри вкладки

    QTabWidget* tabWidget = new QTabWidget();
    QWidget* tab = new QWidget();
    QVBoxLayout* verticalLayout = new QVBoxLayout(tab);

    YourWidget* widget = new YourWidget(tab);
    verticalLayout->addWidget(widget);

    tabWidget->addTab(tab, QString());

Но вам нужно быть более конкретным (пример кода?) В отношении сигнала / слотасоединение, которое вы установили, если хотите получить ответ об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...