Qt、縮小したり拡大したりするUIを作る
質問
Qt Symbian アプリケーションを拡大/縮小して、さまざまなデバイスの画面サイズに合わせてレイアウトを作成する方法を学ぼうとしています。
私のデフォルトの UI では、デバイスの画面に収まるように 5 つのタブを含む QTabWidget を追加しました。2 つの問題があります。
デバイスの画面に常に収まるようにタブを縮小するにはどうすればよいですか? それともそれは不可能ですか?あるデバイスの幅が 240 ピクセルで、別のデバイスの幅が 400 ピクセルの場合はどうなるでしょうか。今見てもわかるように(ノキアエミュレータ) タブが画面の外に出ます。(スクロールボタンは使いたくないです)
写真の赤い部分にあるように(ノキアエミュレータ) 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() を使用してウィジェットを表示します。
解決
どのようにウィジェットを表示していますか?私はそれを表示するためにshowFullScreenメソッドを使用することをお勧め - 。それはそれを行う可能性があります。
所属していません StackOverflow