Tennis123765 2022-06-14 15:26 采纳率: 42.9%
浏览 46
已结题

显示类未被定义,但已经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_())
  • 写回答

3条回答 默认 最新

  • Hello World, 2022-06-14 15:55
    关注

    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_())
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月22日
  • 已采纳回答 6月14日
  • 修改了问题 6月14日
  • 修改了问题 6月14日
  • 展开全部

悬赏问题

  • ¥15 咨询一下有关于王者荣耀赢藏战绩
  • ¥100 求购一套带接口实现实习自动签到打卡
  • ¥50 MacOS 使用虚拟机安装k8s
  • ¥500 亚马逊 COOKIE我如何才能实现 登录一个亚马逊账户 下发新 COOKIE ..我使用下发新COOKIE 导入ADS 指纹浏览器登录,我把账户密码 修改过后,原来下发新COOKIE 不会失效的方式
  • ¥20 玩游戏gpu和cpu利用率特别低,玩游戏卡顿
  • ¥25 oracle中的正则匹配
  • ¥15 关于#vscode#的问题:把软件卸载不会再出现蓝屏
  • ¥15 vimplus出现的错误
  • ¥15 usb无线网卡转typec口
  • ¥30 怎么使用AVL fire ESE软件自带的优化模式来优化设计Soot和NOx?