c++ - 这个 Qt 应用程序如何调整按钮的大小以适应?
问题描述
我正在开发 ACR890 手持式智能卡读卡器。该设备板载 Linux,SDK 是基于 Qt 的。设备随附一个示例应用程序“ACR890_Sample_Codes”。在这个应用程序中有一个名为 DialogWifi.ui 的 UI,截图如下:
部署应用程序后,相同的屏幕如下所示:
我在下面包含了 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>"</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();
还:
""
解决方案
将 UI 文件的 XML 与原始文件进行比较后,我发现新版本中的几何形状(宽度)不同,这就是问题所在。我改变了这个以匹配原来的,现在一切正常!
推荐阅读
- reactjs - 一组循环中的多个回调引用
- serialization - 在 Blazor 中转换通用 API 响应
- java - 模块“项目”从“javafx.base”和“javafx.base”读取包“javafx.beans”
- unity3d - 在 Unity 中播放视频之前的白框,而不是自定义缩略图
- webrtc - WebRTC 没有带有 Telegram 的音频(WebRTC 服务器)
- excel - 如何通过 Workbook.Close 语句触发 OnTime 事件?
- azure - Azure App Insights 智能警报的自定义排除项
- python - 如何使用硒单击验证码“单击以验证”按钮
- gcc - 无法使用 pacaur 安装 gcc48;CPPFLAGS:未绑定变量
- rabbitmq - NestJS 微服务与 rabbitmq 没有模式