2010-01-27 6 views
2

J'essaie d'apprendre comment créer la mise en page de mon application Qt Symbian afin qu'elle se dilate/se rétracte et corresponde à la taille de l'écran des différents périphériques.Qt, rendant l'interface utilisateur qui se rétrécit et se dilate

Dans mon interface utilisateur par défaut, j'ai ajouté un QTabWidget avec cinq onglets que je veux insérer dans l'écran de l'appareil. J'ai deux problèmes:

  1. Comment puis-je faire les onglets pour rétrécir pour tenir toujours dans l'écran de l'appareil, ou est-ce pas possible? Que faire si un périphérique a une largeur de 240px et une autre une largeur de 400px. Comme vous pouvez le voir maintenant (Nokia Emulator), les onglets sortent de l'écran. (Et je ne veux pas utiliser ScrollButtons)

  2. Comme vous pouvez le voir dans la partie rouge de l'image (Nokia Emulator ) il y a un certain espacement dans l'interface utilisateur que je ne veux pas. Au lieu de cela, je veux que QTabWidget remplisse tout l'écran (toute la partie rouge).

En résumé, je suis d'apprentissage en ce moment et ce serait bien si vous pouviez me donner quelques conseils sur l'endroit où chercher plus d'informations au sujet de ces problèmes avec la construction d'une interface utilisateur qui intègre dans de nombreux appareils et résolutions d'écran. Merci!

Voici le code dans mon fichier de l'interface utilisateur:

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 

En main.cpp showMaximized() est utilisé pour montrer mon widget comme je veux aussi les boutons de menu en bas.

Répondre

1

Comment afficher le widget? Je suggère d'utiliser la méthode showFullScreen pour l'afficher - cela pourrait le faire.

+0

Dans main.cpp showMaximized() est utilisé pour afficher mon widget car je veux également les boutons de menu en bas. showFullScreen() n'a fait aucune différence en remplaçant les boutons de menu en bas. Pouvez-vous comprendre pourquoi j'ai cette marge rouge autour de mon QTabWidget? Je veux qu'il se dépense partout sur l'écran. – Martin

+0

Peut-être que vous pourriez modifier la marge de mise en page ... – e8johan

+0

Oui, c'est ce que j'ai essayé de faire, mais je ne trouve aucune marge, j'utilise des feuilles de style et j'essaie avec margin: 0px, padding: 0px; Des idées? – Martin

Questions connexes