Pergunta

Estou tentando aprender como criar o layout do meu aplicativo Qt Symbian para que ele expanda/diminua e caiba no tamanho da tela de diferentes dispositivos.

Na minha interface padrão, adicionei um QTabWidget com cinco guias que desejo caber na tela do dispositivo.Eu tenho dois problemas:

  1. Como posso fazer com que as abas encolham para caber sempre na tela do aparelho, ou isso não é possível?E se um dispositivo tiver largura de 240px e outro de 400px.Como você pode ver agora (Emulador Nokia) as guias saem da tela.(E eu não quero usar ScrollButtons)

  2. Como você pode ver na parte vermelha da imagem (Emulador Nokia) há algum espaçamento na interface do usuário que eu não quero.Em vez disso, quero que o QTabWidget preencha toda a tela (toda a parte vermelha).

Em resumo, estou aprendendo agora e seria ótimo se você pudesse me dar algumas dicas sobre onde procurar mais informações sobre esses problemas na construção de uma UI que se adapte a vários dispositivos e resoluções de tela.Obrigado!

Este é o código no meu arquivo UI:

void setupUi(QMainWindow *UITest)
{
    if (UITest->objectName().isEmpty())
        UITest->setObjectName(QString::fromUtf8("UITest"));
    UITest->resize(284, 167);
    QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    sizePolicy.setHorizontalStretch(0);
    sizePolicy.setVerticalStretch(0);
    sizePolicy.setHeightForWidth(UITest->sizePolicy().hasHeightForWidth());
    UITest->setSizePolicy(sizePolicy);
    centralwidget = new QWidget(UITest);
    centralwidget->setObjectName(QString::fromUtf8("centralwidget"));
    verticalLayout = new QVBoxLayout(centralwidget);
    verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
    tabWidget = new QTabWidget(centralwidget);
    tabWidget->setObjectName(QString::fromUtf8("tabWidget"));
    tabWidget->setTabPosition(QTabWidget::South);
    tabWidget->setUsesScrollButtons(false);
    tab = new QWidget();
    tab->setObjectName(QString::fromUtf8("tab"));
    tabWidget->addTab(tab, QString());
    ...More tabs...        

    verticalLayout->addWidget(tabWidget);

    UITest->setCentralWidget(centralwidget);

    retranslateUi(UITest);

    QMetaObject::connectSlotsByName(UITest);
} // setupUi

void retranslateUi(QMainWindow *UITest)
{
    UITest->setWindowTitle(QApplication::translate("UITest", "UITest", 0, QApplication::UnicodeUTF8));
    UITest->setStyleSheet(QApplication::translate("UITest", "background: red;\n" "padding: 0px;", 0, QApplication::UnicodeUTF8));
    tabWidget->setStyleSheet(QApplication::translate("UITest", "background: white;\n" "margin: 0px;\n" "padding: 0px;", 0, QApplication::UnicodeUTF8));
} // retranslateUi

Em main.cpp showMaximized() é usado para mostrar meu widget, pois também quero os botões do menu na parte inferior.

Foi útil?

Solução

Como você mostra o widget?Sugiro usar o método showFullScreen para mostrá-lo - isso pode ser suficiente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top