层级关系、层级控制:
调整Z轴顺序

点击查看代码
label1 = QLabel(window)
label1.setText("标签1")
label1.resize(200, 200)
label1.setStyleSheet("background-color: red;")

label2 = QLabel(window)
label2.setText("标签2")
label2.resize(200, 200)
label2.setStyleSheet("background-color: green;")
label2.move(100, 100)
# 标签2在标签1上方,现在想把标签2移动下去,在标签1的下方
label2.lower()  # 使控件在最下方
label1.raise_()  # 使控件在最上方
label2.stackUnder(label1)  # 使控件在某控件下方

窗口特定操作
1.图标标题和不透明度

点击查看代码
window.setWindowTitle("窗口相关的操作")  # 凡是顶层控件,都可以设置标题
icon = QIcon("madeline.jpg")  # 可以放入路径或直接放入图像
window.setWindowIcon(icon)    # 设置窗口图标
print(window.windowIcon())    # 获取窗口图标
window.setWindowOpacity(0.5)  # 设置窗口不透明度(1为不透明,0为透明)
print(window.windowOpacity())  # 获取窗口不透明度

2.窗口状态(最小化,最大化,全屏等等)

点击查看代码
window1 = QWidget()
window2 = QWidget()
print(window1.windowState() == Qt.WindowNoState)
window1.setWindowState(Qt.WindowMinimized)   # 设置窗口状态为最小化
window1.setWindowState(Qt.WindowMaximized)   # 设置窗口状态为最大化
window1.setWindowState(Qt.WindowFullScreen)  # 设置窗口状态为全屏
window1.show()
window2.show()
window1.setWindowState(Qt.WindowActive)   # 活动窗口,使w1在w2前

3.最大化最小化

点击查看代码
window1.showMaximized()  # 展示并使窗口最大化(带show就可以)
window1.showFullScreen()  # 全屏
window1.showMinimized()  # 最小化
window1.showNormal()

window1.isMaximized()  # 判断是否是最大化
window1.isMinimized()  # 判断是否是最大化
window1.isFullScreen()  # 判断是否是全屏

4.窗口标志

image

点击查看代码
window = QWidget(flags=Qt.FramelessWindowHint)  # 设置无边框窗口(法1)
window = QWidget()
window.setWindowFlag(Qt.FramelessWindowHint)   # 设置无边框窗口(法2)
window.setWindowOpacity(0.5)   # 设置窗口不透明度

案例
PyQt5学习 (3)–QWidget(下)-小白菜博客
image

封装的思想:
【Python Pyqt5最详细教程(一)】 https://www.bilibili.com/video/BV1mg4y1p74P/?p=63&share_source=copy_web&vd_source=15fb681e1f5b7ce6070d9ce0522af1bc

公共数据可以以属性的方式保存


控件交互
1.是否可用

点击查看代码
btn1 = QPushButton(window)
btn1.move(200, 200)
btn1.setEnabled(True)  # 设置控件是否可用
print(btn1.isEnabled())  # 获取控件是否可用

2.可见隐藏、获取(在界面切换的时候会用到)
父控件不展示,子控件即使显示也不一定能看到

点击查看代码
btn2 = QPushButton(window)
btn2.setText("按钮2")
btn2.setStyleSheet("background-color: cyan;")
btn2.move(200, 200)
btn2.show()    # 显示控件
btn2.hide()    # 隐藏控件
btn2.setVisible(True)  # 设置控件是否可见
btn2.setHidden(False)  # 设置控件是否不可见
print(btn2.isHidden())  # 查看是否隐藏,一般基于父控件可见,如果父控件被隐藏而子控件没有被隐藏,则显示False
print(btn2.isVisible())  # 查看是否可见,如果父控件被隐藏
print(btn2.isVisibleTo(window))  # 如果能随着widget控件的显示和隐藏而同步变化,则返回True/如果父控件显示的时候,子控件是否跟着被显示