python使用pyqt5写ui界面时出来的窗口时一个空窗口,请问各位怎么解决

img

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QApplication, QFileDialog
import sys
import _thread
import time

# 主体窗口ui
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1200, 600)
        # 主题窗口最小尺寸,用于保持窗体尺寸不变
        MainWindow.setMinimumSize(QtCore.QSize(1200, 600))
        # 主题窗口最大尺寸,用于保持窗体尺寸不变
        MainWindow.setMaximumSize(QtCore.QSize(1200, 600))
        # 主窗口widge控件
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        # 显示导入图片的Label的控件
        self.input_img = QtWidgets.QLabel(self.centralwidget)
        self.input_img.setGeometry(QtCore.QRect(28, 85, 500, 500))  # 控件显示位置
        self.input_img.setText("")
        self.input_img.setScaledContents(True)
        self.input_img.setAlignment(QtCore.Qt.AlignCenter)
        self.input_img.setObjectName("input_img")

class Main(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(Main, self).__init__()
        self.setupUi(self)
        self.centralwidget.setAutoFillBackground(True)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = Main()
    main.show()
    sys.exit(app.exec_())

可能是由于没有设置窗口的背景色或者布局导致的。

可以在 setupUi() 函数中,为主窗口的 centralwidget 设置背景色,例如:

self.centralwidget.setStyleSheet("background-color: white;")

或者在主窗口的构造函数 init() 中,为主窗口的 centralwidget 设置布局,例如:

self.centralwidget.setLayout(QtWidgets.QVBoxLayout())

可以使用 Qt Designer 工具来帮助设计 UI 界面,然后使用 pyuic5 工具将设计好的 UI 文件转换为 Python 代码,这样编写 UI 界面很方便。

你的控件没有添加到布局里面
self.input_img.setText("你好") #要不看不到效果

main_layout=QHBoxLayout()
self.centralwidget.setLayout(main_layout)
main_layout.addWidget(self.input_img)
建议去学习下如何布局