2010-01-27 68 views
2

我在学习如何创建我的Qt Symbian应用程序的布局,以便它可以扩大/缩小并适应不同设备的屏幕大小。Qt,使UI缩小并扩展

在我的默认UI中,我添加了一个QTabWidget,其中包含五个要用于设备屏幕的选项卡。我有两个问题:

  1. 如何使标签缩小以始终适合设备的屏幕,或者这是不可能的?如果一个设备的宽度为240px,另一个宽度为400px,会怎么样?正如您现在所看到的(Nokia Emulator),选项卡会出现在屏幕之外。 (我不希望使用ScrollButtons)

  2. 正如你可以在图片中(Nokia Emulator )的红色部分瞧,我不希望UI一些间隔。相反,我想让QTabWidget填充整个屏幕(全部为红色部分)。

总之我现在的学习,这将是巨大的,如果你可以给我约到哪里寻找关于这些问题,构建适合多种设备和屏幕分辨率的UI更多信息的一些技巧。谢谢!

这是我的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 

在main.cpp中showMaximized()用于显示我的widget作为我也希望在底部的菜单按钮。

回答

1

如何显示小部件?我建议使用showFullScreen方法来显示它 - 可以做到这一点。

+0

在main.cpp中showMaximized()用于显示我的小部件,因为我也希望底部的菜单按钮。 showFullScreen()与覆盖底部的菜单按钮没有任何区别。你能理解为什么我的QTabWidget有这个红色边缘吗?我希望它在整个屏幕上都消耗殆尽。 – Martin 2010-01-27 15:04:47

+0

也许你可以调整布局的边缘... – e8johan 2010-01-27 15:32:20

+0

是的,这是我一直在尝试做的,但我找不到任何地方的任何保证金,一直在使用样式表和尝试使用margin:0px,padding:0px;有任何想法吗? – Martin 2010-01-27 15:54:12