2

Qt Symbian アプリケーションのレイアウトを作成して、さまざまなデバイスの画面サイズに拡大/縮小して収まるようにする方法を学ぼうとしています。

デフォルトの UI に、デバイスの画面に収まるように 5 つのタブを含む QTabWidget を追加しました。2 つの問題があります。

  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() が使用されます。下部にメニュー ボタンも必要です。

4

1 に答える 1

1

ウィジェットの表示方法を教えてください。showFullScreen メソッドを使用して表示することをお勧めします-それでうまくいくかもしれません。

于 2010-01-27T14:39:06.553 に答える