显示类未被定义,但已经class了CenterForm

import sys
import os
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

class CenterForm(QMainWindow):# 此处定义却不起作用

def __init__(self, parent=None):
    super(CenterForm, self).__init__(parent)
    QMainWindow.__init__(self)
    # 设置主窗口标题
    self.setWindowTitle('让窗口居中')

    # 设置窗口尺寸
    self.resize(400,300)

    # 添加center方法,作用是让窗口居中
    def center(self):
        # 创建实例,获得屏幕对象,得到屏幕的坐标系
        screen = QDesktopWidget().screenGeometry()

        # 获取屏幕的宽度高度
        # 窗口左边缘的坐标等于(屏幕的宽度-窗口的宽度)/2
        newleft = (screen.width()-size.width())/2

        # 屏幕上边缘的坐标等于(屏幕高度-窗口高度)/2
        newtop = (screen.height()-size.height())/2

        # 移动窗口
        self.move(newleft,newtop)

    # 获得状态栏
    # self.status = self.statusBar()
    #
    # 在状态栏上设置信息的状态时间5000ms
    # self.status.showMssage9('只存在5秒',5000)

# 防止别的脚本调用,只有自己单独运行才会调用下面代码

if __name__ == '__main__':

    # 创建app实例,并传入参数
    app = QApplication(sys.argv)

    # 设置图标
    # app.setWindowIcon('images/horse.jpg')

    # 创建对象
    main =CenterForm()

    # 创建窗口
    main.show()

    # 进入程序的主循环,并通过exit函数确保主循环安全结束(该释放资源是一定要释放的)
    sys.exit(app.exec_())

if name == 'main':
这行不要缩进,和class CenterForm(QMainWindow):对齐


import sys
import os
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *


class CenterForm(QMainWindow):  # 此处定义却不起作用
    def __init__(self, parent=None):
        super(CenterForm, self).__init__(parent)
        QMainWindow.__init__(self)
        # 设置主窗口标题
        self.setWindowTitle('让窗口居中')

        # 设置窗口尺寸
        self.resize(400, 300)

    # 添加center方法,作用是让窗口居中
    def center(self):
        # 创建实例,获得屏幕对象,得到屏幕的坐标系
        screen = QDesktopWidget().screenGeometry()

        # 获取屏幕的宽度高度
        # 窗口左边缘的坐标等于(屏幕的宽度-窗口的宽度)/2
        newleft = (screen.width() - self.width()) / 2

        # 屏幕上边缘的坐标等于(屏幕高度-窗口高度)/2
        newtop = (screen.height() - self.height()) / 2

        # 移动窗口
        self.move(newleft, newtop)

        # 获得状态栏
        # self.status = self.statusBar()
        #
        # 在状态栏上设置信息的状态时间5000ms
        # self.status.showMssage9('只存在5秒',5000)


# 防止别的脚本调用,只有自己单独运行才会调用下面代码


if __name__ == '__main__':
    # 创建app实例,并传入参数
    app = QApplication(sys.argv)

    # 设置图标
    # app.setWindowIcon('images/horse.jpg')

    # 创建对象
    main = CenterForm()
    main.center()
    # 创建窗口
    main.show()

    # 进入程序的主循环,并通过exit函数确保主循环安全结束(该释放资源是一定要释放的)
    sys.exit(app.exec_())

发个有格式的代码,这样太乱了

QMainWindow.init(self) 这个不需要吧