QT设计师给了我这个应用程序的一个视图,当我运行这个应用程序时,它会以不同的方式出现。
我使用的QT 6。简单按钮,两个标签和间隔放置在水平布局,和水平滑块。
我得到了奇怪的剪辑和滑块是非常不同的外观时,渲染。对发生了什么事有什么想法吗?

附加示例
后台是Designer界面,上面的窗口是使用绿色播放按钮运行的实际应用程序。您可以看到间距和大小是如何不匹配的。它不太像所见即所得,这很奇怪。
另外,添加另一个布局也没有解决如此遥远的调整大小问题。将滑块添加到布局中似乎对此有所帮助。

修复样式
这是另一个更新。我能够使用以下代码更改样式以更好地匹配QT中的预览:
QApplication::setStyle(QStyleFactory::create("Fusion"));这使滑块更好地匹配预览,这不是什么大问题,尽管我。我仍然看到的问题是设计师窗口和应用程序之间明显的大小差异。QT设计者是否有可能有“放大镜”,或者某种我没有意识到存在的东西?当查看designer和实际运行的应用程序时,我希望元素的大小和间距为1:1。

溶液
我找出了这个问题,并在下面贴出了一个详细的解决方案。
发布于 2022-09-16 18:45:29
您需要使用Qt的布局管理,并将您的小部件放在布局中,以便在运行应用程序时正确地显示它们。
首先将标签和水平间隔放置在水平布局中,然后将按钮、水平布局和滑块放置在垂直布局中,如附件gif所示。

这就是你运行窗口时得到的。

发布于 2022-09-17 07:47:42
固定样式
我最终解决了这个问题。正如我在上面的编辑中所指出的,下面的行与用于呈现的“样式”相匹配。默认情况下,QTCreator使用“融合”。在我的main.cpp中添加以下内容迫使我的应用程序使用相同的样式:
QApplication::setStyle(QStyleFactory::create("Fusion"));固定浆料差
我遇到的另一个主要问题是QTCreator中显示的UI表单的大小与实际运行的应用程序不匹配。结果是,QTCreator会将您的窗口缩放为1或2。如果您将其设置为1.5 ( windows显示选项中的比例为150%),则使其变为2 (200%),从而使QTCreator中显示的窗体大得多。我有一个多监控系统和我的显示器之一是一个4k的分辨率,它建议150%的比例。这个监视器是我做QT工作的地方,所以我当然会遇到这个问题。
为了解决这个问题,您需要在windows中设置一个环境变量,以便将真正的缩放传递给QTCreator。
环境变量应该命名为:QT_SCALE_FACTOR_ROUNDING_POLICY
变量的值应该是:PassThrough
下面是在这个Answer中发布的某人的图片,显示他们已经创建了这个变量:

结果
使用该变量集,我重新启动了QTCreator,现在您可以看到QTCreator中预览表单的大小和实际运行的应用程序是如何与您预期的完全匹配的。

https://stackoverflow.com/questions/73748263
复制相似问题