公众号:uncle39py

V1

2023/04/23阅读:29主题:默认主题

30.PyQt_Qwidget类

1.前言

QWidget继承自QObject,继承的本质是资源的继承,父类的资源在子类中全部可以使用.

QWidget是所有可视化控件的基类,它是一个空白控件

2.创建

window = QWidget()

创建控件的时候,可以传入一个参数做为其父控件;

如果一个控件没有父控件,则它是一个窗口,系统会为其添加上标题栏及最大最小化等操作按钮

3.位置

控件坐标系

如果是顶层窗口,坐标系参照电脑桌面

如果是有父控件,坐标系参照父控件

获取位置的API(需要用的时候具体查):

x,y,pos为点的位置信息

width,height,size为实体长宽大小信息

geometry包含点的位置和实体的大小信息,即涵盖以上两行的信息

设置位置的API

move为点的位置信息

resize为实体的大小信息

setGeometry包含点和实体的信息

adjustSize()根据内容自适应大小

setFixedSize(500,500)设置固定size,无法鼠标拖动改变大小

最大最小尺寸API

内容边距API(主要用于调整内容的显示位置,大概瞄一下即可)

4.层级关系调整

窗口中后放上去的控件会遮挡住先放上去的控件,此API可以调整控件间的上下关系,会影响到控件的展示结果

5.鼠标相关

设置鼠标进入相关控件范围后,展示出特殊的形状,比如:带圈圈的繁忙形状,禁止点击的形状等;

win.setCursor(Qt.WaitCursor)参数为枚举值,有多个,用到的时候具体查

label = QLabel(win)
label.setText("hahaha")
label.resize(100,100)
label.setStyleSheet("background-color:cyan;")
label.setCursor(Qt.ForbiddenCursor)

unsetCursor()重置形状

关于鼠标操作还有一些比较深的内容(涉及到事件机制),如果只是做些小工具的话,笔者认为暂时没有必要去花精力学习.

6.父子控件关系(在QObject基础上进行了扩充)

7.顶层窗口相关操作

window.setWindowIcon(QIcon("xxx.png"))设置窗口图标

window.setWindowTitle("窗口标题")设置窗口标题

window.setWindowOpacity(float)设置窗口不透明度

窗口状态(大概了解一下,用到再查):

8.交互状态

  • setEnabled(bool)设置控件是否禁用,比如:控制按钮是否可以点击

  • isEnabled()获取控件是否可用的属性

  • setVisible(bool)控制控件显示和隐藏;

注意:控制的是控件是否被绘制出来,而不是控制对象是否存在(obj.deletelater()是删除对象导致的不可见);

show(),hide(),setHidden(bool)背后都是调用setVisible(bool)方法;

  • 是否编辑状态(类似记事本,如果有修改过,标题栏有个星星),API用到再查

  • 是否为活跃窗口(正在跟用户交付的窗口为活跃窗口)

9.信息提示

  • 鼠标放到控件上时,在状态栏显示提示信息,需要使用QMainWindow控件(因为它含有状态栏)

  • 鼠标放在控件上时,在控件旁边显示提示信息

分类:

后端

标签:

后端

作者介绍

公众号:uncle39py
V1