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 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?