栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

写在前面:
①本教程使用pycharm编译器进行pyqt5的学习,安装教程请大家自行百度
②本系列博客根据B站王铭东博主教程学习 学习代码 lesson3_1
链接: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、初始情况:默认弹出的窗口中心位置为屏幕中心位置

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中的位置不能为负值,否则会报错

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)

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

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

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

②w.frameGeometry().getRect():得到坐标及宽高的元组
输出:

(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()

输出结果:

(三)窗口图标设置

图标素材链接: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()


补充内容:
(1)搜索函数
当在代码中有个打印了一个你不知道的方法时,查询官方文档:
https://www.riverbankcomputing.com/static/Docs/PyQt5/module_index.html#ref-module-index
运行代码后,打印输出了:
PyQt5.QtCore.QPoint(959, 519)
此时查找上面链接的文档找到对应的说明:

②如果此时该文档中没有解释,查询https://doc.qt.io/qt-5/classes.html ctrl+F 搜索内容
如查找QPoint,则找到下面链接:https://doc.qt.io/qt-5/qpoint.html
(2)todo的用法
todo:在代码注释中写入todo表示待解决的事情

在后续编写代码的时候就能够快速定位该位置


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1018399.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号