[python]PyQt5-手写窗口(状态栏,屏幕边框,图标等)

import sys
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtGui import QIcon

class FirstMainWin(QMainWindow):
    def __init__(self, parent=None):
        super(FirstMainWin,self).__init__(parent)
        # 设置主窗口的标题
        self.setWindowTitle("第一个主窗口应用")
        
        # 设置尺寸
        self.resize(400,300)

        # 获得状态栏
        self.status = self.statusBar()
        # 状态栏显示消息,
        self.status.showMessage("只存在5s的提示,大家好呀",5000)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    # 导入图标
    app.setWindowIcon(QIcon("./image/lou.ico"))
    main = FirstMainWin()
    # 显示窗口
    main.show() 
    # 建立循环
    sys.exit(app.exec_())

 

 

 


import sys
from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication
from PyQt5.QtGui import QIcon

class FirstMainWin(QMainWindow):
    def __init__(self, parent=None):
        super(FirstMainWin,self).__init__(parent)
        # 设置主窗口的标题
        self.setWindowTitle("第一个主窗口应用")
        
        # 设置尺寸
        self.resize(400,300)

        # 获得状态栏
        self.status = self.statusBar()
        # 状态栏显示消息,
        self.status.showMessage("只存在5s的提示,大家好呀",5000)
    def centet(self):
        # 获取屏幕尺寸
        screen = QDesktopWidget().screenGeometry()
        # 获取窗口尺寸
        size = self.geometry()
        # 由于移动窗口是移动左上角那个店,所以屏幕尺寸减去窗口尺寸除以二就
        # 是左上角点的坐标了。
        newLeft = (screen.width()-size.width())/2
        newTop = (screen.height()-size.height())/2
        self.move(newLeft,newTop)
        # 下面个输出是为了判断方法是否被调用,我看的教学视频
        # 里,他就写了方法,没有去调用方法
        # print(newLeft,newTop)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    # 导入图标
    app.setWindowIcon(QIcon("./image/lou.ico"))
    main = FirstMainWin()
    # 调用居中方法
    main.centet()
    # 显示窗口
    main.show() 
    # 建立循环
    sys.exit(app.exec_())

新增了窗口居中


 

优化了格式

import sys
from PyQt5.QtWidgets import QDesktopWidget,QMainWindow,QApplication
from PyQt5.QtGui import QIcon

class FirstMainWin(QMainWindow):
    def __init__(self, parent=None):
        super(FirstMainWin,self).__init__(parent)
        self.initUI()
        self.centet()
       

    def initUI(self):
        self.setWindowTitle("第一个主窗口应用")
        self.setGeometry(600,600,600,600)
        self.status = self.statusBar()
        self.setWindowIcon(QIcon("./image/lou.ico"))

    def centet(self):
        # 获取屏幕尺寸
        screen = QDesktopWidget().screenGeometry()
        # 获取窗口尺寸
        size = self.geometry()
        # 由于移动窗口是移动左上角那个店,所以屏幕尺寸减去窗口尺寸除以二就
        # 是左上角点的坐标了。
         newLeftF = (screen.width()-size.width())/2
          newTopF = (screen.height()-size.height())/2
          newLeft = int(newLeftF)
          newTop = int(newTopF)
          self.move(newLeft,newTop)
        # 这里有了报错,move函数无法处理float,所以要给成int格
       # 下面个输出是为了判断方法是否被调用,我看的教学视频
        # 里,他就写了方法,没有去调用方法
        # print(newLeft,newTop)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    # 导入图标
    # # app.setWindowIcon(QIcon("./image/lou.ico"))
   
    # # 调用居中方法
    # main.centet()
    main = FirstMainWin()
    # 显示窗口
    main.show() 
    # 建立循环
    sys.exit(app.exec_())

 

 


 

posted on 2020-03-11 15:47  dandanduba  阅读(1150)  评论(0编辑  收藏  举报

导航