QT运行界面与画布大小不一致问题(一步到位)

出现的问题

当我们运行程序时,发现运行出来的大小和设计的几面大小有很大的差别,这使我们开发起来就特别的困难,具体怎么解决?

在这里插入图片描述

直接设置环境变量

当然我这称之为最有效的解决方式, 直接一步到位

  • 打开系统环境变量
    如果不知道怎么打开,点击【Win+R】输入【systempropertiesadvanced】命令,选择【环境变量】

在这里插入图片描述

  • 添加环境变量

新建变量名QT_AUTO_SCREEN_SCALE_FACTOR,设置值为1.

在这里插入图片描述

  • 重启QT, 没有打开就直接运行就行,打开了就需要重启哦!!😄😄😄

main函数中输入以下代码

QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::Floor);

也就是说你的代码现在变成了这样

在这里插入图片描述

这里的Qt::HighDpiScaleFactorRoundingPolicy::Floor 有几种方法,Round, Ceil, Floor, RoundPreferFloor, PassThrough,具体不用去深究他意义不大。了解就好

更改系统缩放比

当然如果你觉得不行就来个不太行的方法,更改比例。—不太建议😄

在这里插入图片描述

将系统缩放比直接更改为100% 这时你会发现,好像确实不太实用,哈哈哈!!!

好了,看一下运行结果吧

很符合我们的预期,运行结果窗口与程序设计界面画布完美融合,perfect!!!

在这里插入图片描述

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在QT项目中,可以通过在主窗口类的构造函数中设置窗口大小来设定初始界面大小。具体方法如下: 1. 在主窗口类的头文件中添加头文件<QSize>,用于定义窗口大小。 2. 在主窗口类的构造函数中添加以下代码来设定窗口大小: ``` MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { // 设置窗口大小为800x600 this->setFixedSize(QSize(800, 600)); } ``` 这里使用了QMainWindow类的setFixedSize()函数来设置窗口大小,参数为QSize类型的窗口大小。你也可以使用其他函数来设置窗口大小,如setGeometry()、resize()等。 注意:setFixedSize()函数会禁止用户手动调整窗口大小,如果需要允许用户手动调整窗口大小,可以使用其他函数来设置窗口大小。 ### 回答2: 在QT项目中,可以通过设置QWidget或QMainWindow的大小来设定初始界面大小。主要有以下两种方法: 1. 通过代码设置初始界面大小: 可以在代码中使用setGeometry()或setFixedSize()函数来设置初始界面的宽度和高度。 示例代码如下: ```cpp #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.setGeometry(100, 100, 400, 300); // 设置初始界面的坐标和大小 window.show(); return app.exec(); } ``` 上述示例代码中,setGeometry函数用于设置初始界面的坐标位置和大小,前两个参数是初始界面左上角的坐标,后两个参数是初始界面的宽度和高度。 2. 通过Qt Designer设计界面: 可以通过Qt Designer来设计界面,并设置初始界面大小。 可以通过以下步骤来设置初始界面大小: - 在Qt Designer中打开.ui文件,选择主窗口QWidget或QMainWindow。 - 在右侧属性编辑器中找到"geometry"或"size"属性,手动修改初始界面大小。 - 保存修改后的.ui文件。 - 使用Qt的UI转换工具将.ui文件转换为相应的C++文件。 - 在代码中使用转换后的C++文件构建界面,并显示。 以上两种方法都可以设定QT项目的初始界面大小,根据项目的具体需求和开发方式选择合适的方法即可。 ### 回答3: 在QT项目中设定初始界面大小可以通过以下步骤来实现: 1. 打开QT项目的主窗口文件,一般为mainwindow.cpp。 2. 找到窗口初始化的函数,一般为MainWindow::MainWindow(QWidget *parent)函数。 3. 在该函数的实现中,添加如下代码:resize(width, height);。其中,width和height分别表示你想要设定的初始界面的宽度和高度,可以根据自己的需要进行设置。例如,resize(800, 600)表示初始化界面的宽度为800像素,高度为600像素。 4. 保存并编译运行项目,即可看到初始界面大小已经被设定为你所设置的值。 这种方式可以在项目启动时直接设定初始界面大小,方便快捷。如果需要根据用户的操作来动态改变界面大小,则需要在用户操作触发的事件处理函数中进行相应的界面大小的设定。例如,如果希望在点击按钮时改变界面大小,可以在按钮的点击事件处理函数中添加相应的代码:resize(width, height)。同样,width和height表示你想要设定的界面的宽度和高度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ProgramStack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值