2010-01-27 28 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