pyqt5 学习笔记三 (窗口设置、窗口图标)

pyqt5 学习笔记三 (w.resize()、w.move()、窗口设置、窗口图标)

目录

    • pyqt5 学习笔记三 (w.resize()、w.move()、窗口设置、窗口图标)
      • (一)设置窗口大小
      • (二)设置窗口位置
        • 1、初始情况:默认弹出的窗口中心位置为屏幕中心位置
        • 2、移动窗口函数 `w.move(x,y) `
        • 3、将新生成窗口左上角移动到屏幕中心
        • 4、将新生成窗口中心移动到屏幕中心
      • (三)窗口图标设置

写在前面:
①本教程使用pycharm编译器进行pyqt5的学习,安装教程请大家自行百度
②本系列博客根据B站王铭东博主教程学习 学习代码 笔记3
链接:https://pan.baidu.com/s/1i3y4mI_9N84iAC6tav-j8Q
提取码:gupx
资料:
【1】B站教程
【2】B站教程配套课件
【3】PyQt官网的所有模块 (有部分内容没有补充进去)
【4】C++具体实现的API文档

(一)设置窗口大小

w.resize(800, 800)

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QLabel, QLineEdit
if __name__ == '__main__':
   app = QApplication(sys.argv)
   w = QWidget()
   w.setWindowTitle("第一个PyQt")
   w.resize(800, 800)   # (w,h)
   w.show()
   app.exec()

(二)设置窗口位置

1、初始情况:默认弹出的窗口中心位置为屏幕中心位置

pyqt5 学习笔记三 (窗口设置、窗口图标)_第1张图片

2、移动窗口函数 w.move(x,y)

将窗口位置移动到屏幕左上角 w.move(0, 0)

import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
   app = QApplication(sys.argv)
   w = QWidget()
   w.setWindowTitle("第一个PyQt")
   w.resize(300, 300)  # resize(w,h)
   # 调整窗口在屏幕左上角
   w.move(0, 0)
   w.show()
   app.exec()

其中move中的位置不能为负值,否则会报错
pyqt5 学习笔记三 (窗口设置、窗口图标)_第2张图片

3、将新生成窗口左上角移动到屏幕中心

QDesktopWidget().availableGeometry().center()
center_pointer.x()

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget
if __name__ == '__main__':
   app = QApplication(sys.argv)
   w = QWidget()
   w.setWindowTitle("第一个PyQt")
   w.resize(300, 300)  # resize(w,h)
   # 调整窗口在屏幕左上角
   w.move(0, 0)
   # 调整窗口在屏幕中央显示
   # QDesktopWidget() 当前屏幕组件 屏幕可用的区域 中心坐标
   center_pointer = QDesktopWidget().availableGeometry().center()   # todo
   print(center_pointer)
   x = center_pointer.x()
   y = center_pointer.y()
   w.move(x, y)
   # 显示窗口
   w.show()
   # 程序进行循环等待状态
   app.exec()

QDesktopWidget().availableGeometry().center()
得到屏幕组件可用区域的中心位置

   center_pointer = QDesktopWidget().availableGeometry().center() 
   print(center_pointer)
   print(type(center_pointer))

center_pointer.x():得到center_pointer的横纵坐标

   x = center_pointer.x()
   y = center_pointer.y()
   w.move(x, y)  # 窗口左上角在屏幕中心

输出:新生成窗口的左上角显示在屏幕中心位置

PyQt5.QtCore.QPoint(959, 519)

pyqt5 学习笔记三 (窗口设置、窗口图标)_第3张图片

4、将新生成窗口中心移动到屏幕中心

已知:屏幕中心 x y
未知:新生成窗口的宽高
w.frameGeometry():得到新生成窗口的坐标与宽高
输出:

PyQt5.QtCore.QRect(0, 0, 300, 300)

w.frameGeometry().getRect():得到坐标及宽高的元组
pyqt5 学习笔记三 (窗口设置、窗口图标)_第4张图片

输出:

(0, 0, 300, 300)

代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget
if __name__ == '__main__':
   app = QApplication(sys.argv)
   w = QWidget()
   w.setWindowTitle("第一个PyQt")
   w.resize(300, 300)  # resize(w,h)
   # 调整窗口在屏幕左上角
   w.move(0, 0)
   # 调整窗口在屏幕中央显示
   # QDesktopWidget() 当前屏幕组件 屏幕可用的区域 中心坐标
   center_pointer = QDesktopWidget().availableGeometry().center()  # todo
   print(center_pointer)
   print(type(center_pointer))
   x = center_pointer.x()
   y = center_pointer.y()
   # w.move(x, y)  # 窗口左上角在屏幕中心
   # w.move(x - 300 / 2, y - 300 / 2)  # 将窗口中心移动到屏幕中心
   print(w.frameGeometry())  # 得到窗户的位置与大小
   print(type(w.frameGeometry()))
   print(w.frameGeometry().getRect())  # 将位置与大小写作(x,y,width,height)
   print(type(w.frameGeometry().getRect()))  # 打印出来为元组
   p_x, p_y, width, height = w.frameGeometry().getRect()  # 拆包
   w.move(x - width / 2, y - height / 2)  # 将窗口中心移动到屏幕中心
   # 显示窗口
   w.show()
   # 程序进行循环等待状态
   app.exec()

输出结果:
pyqt5 学习笔记三 (窗口设置、窗口图标)_第5张图片

(三)窗口图标设置

图标素材链接:https://igoutu.cn/icons

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon
if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = QWidget()
    w.setWindowTitle("图标")
    # 设置图标
    w.setWindowIcon(QIcon('icon.png'))
    w.show()
    app.exec()

pyqt5 学习笔记三 (窗口设置、窗口图标)_第6张图片


补充内容:
(1)搜索函数
当在代码中有个打印了一个你不知道的方法时,查询官方文档:
https://www.riverbankcomputing.com/static/Docs/PyQt5/module_index.html#ref-module-index
运行代码后,打印输出了:
PyQt5.QtCore.QPoint(959, 519)
此时查找上面链接的文档找到对应的说明:
pyqt5 学习笔记三 (窗口设置、窗口图标)_第7张图片
②如果此时该文档中没有解释,查询https://doc.qt.io/qt-5/classes.html ctrl+F 搜索内容
如查找QPoint,则找到下面链接:https://doc.qt.io/qt-5/qpoint.html
pyqt5 学习笔记三 (窗口设置、窗口图标)_第8张图片

(2)todo的用法
todo:在代码注释中写入todo表示待解决的事情
pyqt5 学习笔记三 (窗口设置、窗口图标)_第9张图片
在后续编写代码的时候就能够快速定位该位置

pyqt5 学习笔记三 (窗口设置、窗口图标)_第10张图片


你可能感兴趣的:(pyqt5,pyqt5,pycharm,resize,move)