1.软件环境

Python3.7

PyQt5    5.13.0

2.问题和预览截图

如下图1,在把Qtdesigner设计的界面.ui文件转换为.py文件再调用时按钮的文字显示不完全,而且界面有比在Qtdesigner预览时小了很多。(注:我测试的是Mainwindow窗口类型,Widget的Form窗口类型解决办法也一样)

(图1)

测试代码

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'ui3.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QApplication
import sysclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(320, 240)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(50, 50, 56, 17))self.pushButton.setObjectName("pushButton")self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_2.setGeometry(QtCore.QRect(180, 50, 56, 17))self.pushButton_2.setObjectName("pushButton_2")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 320, 18))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.pushButton.setText(_translate("MainWindow", "PushButton"))self.pushButton_2.setText(_translate("MainWindow", "PushButton"))if __name__ == '__main__':app = QApplication(sys.argv)mainwindow = QMainWindow()ui3 = Ui_MainWindow()ui3.setupUi(mainwindow)mainwindow.show()sys.exit(app.exec_())

下面的图2是在Qtdesigner预览的图,和图1比,说明了确实存在与 2k等高分辨率屏幕不匹配或自适应问题,导致部分控件显示不完全

(图2)

3.解决方法

在app = QApplication(sys.argv) 语句前加一句
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)就行。

注:(自行测试时要注意头部是否import了QtCore)(QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)一定要在app = QApplication(sys.argv)前面,否则不成功)

解决后代码

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'ui3.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QApplication
import sysclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(320, 240)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(50, 50, 56, 17))self.pushButton.setObjectName("pushButton")self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)self.pushButton_2.setGeometry(QtCore.QRect(180, 50, 56, 17))self.pushButton_2.setObjectName("pushButton_2")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 320, 18))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.pushButton.setText(_translate("MainWindow", "PushButton"))self.pushButton_2.setText(_translate("MainWindow", "PushButton"))if __name__ == '__main__':QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)app = QApplication(sys.argv)mainwindow = QMainWindow()ui3 = Ui_MainWindow()ui3.setupUi(mainwindow)mainwindow.show()sys.exit(app.exec_())

运行后截图如下图3,按钮控件已经正常显示了。

(图3)

PyQt5学习:Qtdesigner设计转换而来的界面.py文件与 2k等高分辨率屏幕不匹配或自适应问题,导致部分控件显示不完全解决办法相关推荐

  1. PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式

    PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式 文章目录 PyQt5随笔:Qtdesigner设计转换而来的界面.py文件两种调用方式 1.前言 2.方式一:另建 py ...

  2. VB.NET基于ReportViewer控件显示RDLC文件学习总结。

    最近一直在学习VB.NET中的ReportViewer控件绑定RDLC文件显示的内容,VB.NET对于这一块的教程并不如C#多,所以好多时候需要模仿C#,今天特地写一个总结,供后边的学习者以供借鉴(本 ...

  3. Python PYQT5中用Label控件显示以numpy表示的灰度图像

    Python PYQT5中用Label控件显示以numpy表示的图像 rgb_img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB) # 灰度转为RGB q_img = ...

  4. pyqt控件显示重叠_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...

    1.控件说明 在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在 ...

  5. python rgb led控件_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...

    1.控件说明 在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在 ...

  6. PyCharm pyqt5用label控件显示图片 QPixmap 串口通信指示灯

    import sys from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtGui import QPixmap imp ...

  7. EmWin学习课堂_小白EmWin_EmWin快速入门_EmWin用Button控件显示文本

    说到EmWin显示文本,大概就是设置字体大小,设置背景颜色,清屏(背景颜色更新),设置文本颜色,设置文字显示格式,再就是显示了: GUI_SetFont(&GUI_Font8x16); GUI ...

  8. 2.45GHz微带天线PCB设计AD铺铜只显示边框不显示铜皮的解决办法

    1.修改线距,修改小一点. 2.双击覆铜框,在属性框中选择Hatched,将轨迹宽度设置地比栅格尺寸大些,如下. 3.这样就可以覆上铜了

  9. Visual Studio2019 C# 设计控件显示

    仅显示平台控件 这种情况下只能看到控件名称和位置大小. 官方解释 当你选中"仅显示平台控件"后,SDK 中的所有自定义控件.客户用户控件等都不会完整呈现. 相反,它们会被替换为回退 ...

最新文章

  1. java io nio socket_通过socket编程掌握IO流 —— NIO
  2. MyISAM和InnoDB的索引在实现上的不同
  3. bootstrap 空行不显示横杠_电脑开机有显示,但进不去系统
  4. Java Web应用程序:Oozie及其使用方式
  5. iphone双卡_辟谣!iPhone12双卡模式下不支持5G?国行可正常使用
  6. hadoop jar
  7. 数字积分法插补c语言程序,数字积分法插补原理
  8. 过程 sp_addlinkedsrvlogin,第 91 行解密过程中出错的解决办法
  9. php解决中文乱码的函数,php 中解决json中文乱码的函数_PHP教程
  10. Pgadmin4转圈圈无法进入到界面(pgadmin v4一直卡在loading页面)
  11. CAS配置REST请求方式
  12. 深度学习实战案例:新闻文本分类
  13. 【Python】过滤表情字符
  14. linux使用入门debian,Debian 7.7入门安装与配置
  15. Mysql中,order by + limt的大坑
  16. Apsara Clouder阿里巴巴开发规范认证
  17. 正则验证邮箱,手机号
  18. nginx+php74+phpmyadmin安装
  19. php中的时间戳_php时间戳是什么
  20. Edge 开发者日 · New Bing New Edge

热门文章

  1. matlab怎么把小数化为分数,matlab怎么把分数转化为小数
  2. 算法---LeetCode 1095. 山脉数组中查找目标值(二分法)
  3. 使用table元素写一个个人简历表格
  4. Dijkstra AcWing 850. Dijkstra求最短路 II
  5. Gallery4.2 代码研究(一):Gallery2结构分析
  6. 使用pyinotify监控文件系统的变化
  7. iOS——UIActivityIndicatorView活动指示器
  8. idea 初始界面_IntelliJ IDEA欢迎界面
  9. 计算机设置链接在哪里,本地连接在哪里找【四种方法】
  10. qbs java_Qt构建工具QBS之零 —— QBS 概览