首页 > 解决方案 > 这个 Qt 应用程序如何调整按钮的大小以适应?

问题描述

我正在开发 ACR890 手持式智能卡读卡器。该设备板载 Linux,SDK 是基于 Qt 的。设备随附一个示例应用程序“ACR890_Sample_Codes”。在这个应用程序中有一个名为 DialogWifi.ui 的 UI,截图如下:

截取自 Qt Creator

部署应用程序后,相同的屏幕如下所示:

拍摄在设备上部署和运行的相同显示器的照片

我在下面包含了 UI 和与此 UI 关联的文件,我在 Qt Creator 或解释按钮如何或在何处重新缩放以适应的源代码中都没有看到任何内容。

我搜索了调整大小策略,我没有看到任何,我搜索了字体更改,没有,我还搜索了几何修改,同样没有。

我会包含或附加这些文件,但我看不到将其粘贴到此处或附加并保持内容可读的方法。

在窗体上,按钮包含在 QGridControl 中。

这是 UI 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>

到目前为止,在与我尝试过的 UI 关联的构造函数中:

    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();

还:

    ""

标签: c++qt

解决方案


将 UI 文件的 XML 与原始文件进行比较后,我发现新版本中的几何形状(宽度)不同,这就是问题所在。我改变了这个以匹配原来的,现在一切正常!


推荐阅读