Как это приложение Qt изменяет размеры кнопок? - PullRequest
0 голосов
/ 04 июля 2019

Я работаю на портативном устройстве чтения смарт-карт ACR890.Это устройство имеет Linux на борту, а SDK основан на Qt.Существует пример приложения, поставляемого с устройством, 'ACR890_Sample_Codes'.В этом приложении есть пользовательский интерфейс DialogWifi.ui, снимок экрана ниже:

Screenshot taken from Qt Creator

Когда приложение развернуто, этот же экран выглядит следующим образом:

Photograph taken of same display deployed and running on device

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

Я искал политики изменения размера, я не вижу никаких, я искал изменения шрифта, ни один, я также искал изменения геометрии, опять нет.

Я бы включил или прикрепил файлы, но я не вижу способа вставить их сюда или прикрепить и сохранить содержимое читабельным.

В формекнопки содержатся в QGridControl.

Вот фрагмент кода XML пользовательского интерфейса:

       <widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
 <rect>
  <x>10</x>
  <y>90</y>
  <width>1107</width>
  <height>128</height>
 </rect>
</property>
<layout class="QGridLayout" name="GridLayout">
 <property name="spacing">
  <number>0</number>
 </property>
 <item row="2" column="12">
  <widget class="QPushButton" name="PushButton39">
   <property name="cursor">
    <cursorShape>BlankCursor</cursorShape>
   </property>
   <property name="focusPolicy">
    <enum>Qt::StrongFocus</enum>
   </property>
   <property name="text">
    <string>&quot;</string>
   </property>

Пока в конструкторе, связанном с пользовательским интерфейсом, который я пробовал:

    qDebug() << qApp->style()->metaObject()->className();

Не помогло, просто отображается имя класса "QStyleSheetStyle ", я тогда попытался:

    qDebug() << qApp->style()->metaObject();

Это просто отображает адрес:

   0x4b66e440

Затем:

    qDebug() << qApp->style();

И это выводит:

    QStyleSheetStyle(0x1502c0)

Затем я попытался:

    qDebug() << ui->WidgetPassword->styleSheet();

Это родительский объект объекта QGridControl, вывод:

    ""

А затем одна из кнопок:

    qDebug() << ui->PushButton1->styleSheet();

Также:

    ""

1 Ответ

0 голосов
/ 05 июля 2019

Сравнив XML файла UI с оригиналом, я обнаружил, что геометрия (ширина) в новой версии была другой, и это было проблемой.Я изменил это, чтобы соответствовать оригиналу, теперь все в порядке!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...