2010-01-27 4 views
2

Я пытаюсь узнать, как создать макет моего приложения Qt Symbian, чтобы он расширялся/сокращался и вписывался в размер экрана различных устройств.Qt, создавая пользовательский интерфейс, который сжимается и расширяется

В моем default ui я добавил QTabWidget с пятью вкладками, которые я хочу поместить в экран устройства. У меня есть две проблемы:

  1. Как я могу сделать закладки, чтобы уменьшить, чтобы всегда помещается на экране устройства, или это не возможно? Что делать, если одно устройство имеет ширину 240 пикселей и другую ширину 400 пикселей. Как вы теперь видите (Nokia Emulator), вкладки выходят за пределы экрана. (И я не хочу использовать ScrollButtons)

  2. Как вы можете видеть в красной части картины (Nokia Emulator ) есть некоторый интервал в пользовательском интерфейсе, что я не хочу. Вместо этого я хочу, чтобы QTabWidget заполнил весь экран (вся красная часть).

В заключение я учусь сейчас, и было бы здорово, если бы вы могли бы дать мне несколько советов о том, где искать больше информации об этих проблемах с построения пользовательского интерфейса, который подходит во многие устройства и разрешения экрана. Благодаря!

Это код в моем файле 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() используется, чтобы показать свой виджет, как я хочу, чтобы кнопки меню в нижней части.

ответ

1

Как вы видите виджет? Я предлагаю использовать метод showFullScreen, чтобы показать его - это может сделать это.

+0

В main.cpp showMaximized() используется для отображения моего виджета, поскольку я также хочу, чтобы кнопки меню внизу. showFullScreen() не отличался от переопределения кнопок меню внизу. Вы можете понять, почему у меня это красное поле вокруг моего QTabWidget? Я хочу, чтобы он расходовался по всему экрану. – Martin

+0

Возможно, вы могли бы настроить макет макета ... – e8johan

+0

Да, это то, что я пытался сделать, но я не могу найти какой-либо запас в любом месте, использовал таблицы стилей и пытался с использованием поля: 0px, padding: 0px; Есть идеи? – Martin