为什么qt designer设计界面和用python运行得到的不一样?

蓝之赟 2019-03-21 04:45:42
我使用qt designer设计了一个界面,如图1所示,然后使用pyuic5 -o命令得到了 .py文件,通过 .py在python中运行得到的界面如图2,全部都挤到左上角去了,在designer中设置的layout啥的都不起作用,这是为什么?有大佬遇到这个问题的吗?

图 1
图2
...全文
3570 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaotuwai8 2020-03-14
  • 打赏
  • 举报
回复
引用 7 楼 hruffhfn1 的回复:
[quote=引用 5 楼 xiaotuwai8 的回复:] 试试在 app=QApplication(sys.argv)前加上如下代码 from PyQt5 import QtCore QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
请问是什么原因造成这个问题的呢?[/quote] 我也是借花献佛,这个语句应该是高分辨率支持
hruffhfn1 2020-03-13
  • 打赏
  • 举报
回复
引用 5 楼 xiaotuwai8 的回复:
试试在 app=QApplication(sys.argv)前加上如下代码 from PyQt5 import QtCore QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
请问是什么原因造成这个问题的呢?
xiaotuwai8 2020-02-12
  • 打赏
  • 举报
回复
试试在 app=QApplication(sys.argv)前加上如下代码
from PyQt5 import QtCore
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
More_eve 2019-06-10
  • 打赏
  • 举报
回复
您好,我也出现了同样的问题,请问代码继承应该是如何呢?我检查了一下感觉不像有错
from PyQt5.QtWidgets import *
from PyQt5.QtMultimedia import *
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtCore import QUrl
from tt import Ui_MainWindow
import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.widget_video = QtWidgets.QWidget(self.centralwidget)
        self.widget_video.setGeometry(QtCore.QRect(140, 100, 511, 311))
        self.widget_video.setObjectName("widget_video")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
        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.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
蓝之赟 2019-03-21
  • 打赏
  • 举报
回复 1
已经解决,是在继承的代码上出了问题
托合提·肉孜 2021-10-27
  • 举报
回复
@蓝之赟 请问一下,怎么解决?问题根因在哪?
  • 举报
回复
@托合提·肉孜 同问
停下的 2022-03-16
  • 举报
回复 1
@失去方向的小穗泪 我也是ui文件编译后的代码,pyside6运行之后就全部挤在左上角了。现在解决了,我是看官网的示例: https://doc.qt.io/qtforpython/quickstart.html#create-a-simple-application 主要是改了这些: 1、 class MyWidge(QMainWindow): 改为 class MyWidge(QWidget): 2、 if __name__ == "__main__": app = QApplication([]) mainw = MyWidge() mainw.show() app.exec() 改为: if __name__ == "__main__": app = QApplication([]) mainw = MyWidge() mainw.show() sys.exit(app.exec()) 其实就是从QMainWindow继承改为从QWidget继承,ui文件生成的代码无需修改,记得要导入sys模块,之后再运行就好了。PyQT不知道是不是也是这样,我是用的PySide。

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧