Signal
customContextMenuRequested
windowIconChanged
windowIconTextChanged
windowTitleChanged
Function
Window functions
show(): 显示窗口。hide(): 隐藏窗口。raise_(): 将窗口置于最前。lower(): 将窗口置于最后。stackUnder(arg__1: PySide6.QtWidgets.QWidget)把窗口置于目标之下close(): 关闭窗口。
Top-level windows
windowTitle() -> str: 返回窗口的标题。windowIcon() -> QIcon: 返回窗口的图标。isActiveWindow() -> bool: 返回窗口是否是活动窗口。activateWindow(): 激活窗口,使其成为活动窗口。showMinimized(): 最小化窗口,将其图标化至任务栏。showMaximized(): 最大化窗口,使其充满整个屏幕。showFullScreen(): 全屏显示窗口。showNormal(): 恢复窗口原始大小和位置。
Window contents
update():通知系统重绘小部件,触发paintEvent事件。repaint(): 类似于update(),可传递矩形区域参数,指定需要重绘的区域。可以绕过比如”计时”等需要时间去处理的代码,但效率、效果不稳定,最好使用Qthread和update()scroll(dx: int, dy: int): 接受两个整数参数,分别表示水平和垂直方向上的滚动距离。在小部件中实现滚动功能,通常与图形界面元素(如滚动条、文本框等)相关联。用途包括滚动视图、自动滚动、用户交互增强等。
Geometry
pos() -> QPoint: 返回小部件在其父部件坐标系中的位置。x() -> int和y() -> int: 分别返回小部件在其父部件坐标系的 x 和 y 坐标。rect() -> QRect: 返回小部件的内部矩形,不包括边框。size() -> QSize: 返回小部件的大小。width() -> int和height() -> int: 分别返回小部件的宽度和高度。move(x: int, y: int): 移动小部件到一个指定的位置。resize(width: int, height: int): 改变小部件的大小。sizePolicy() -> QSizePolicy: 返回小部件的尺寸策略。sizeHint() -> QSize: 返回小部件的建议尺寸。minimumSizeHint() -> QSize: 返回小部件的最小建议尺寸。updateGeometry(): 通知布局管理器此小部件的几何信息已更改。layout() -> QLayout: 返回小部件使用的布局管理器。frameGeometry() -> QRect: 返回小部件的外部矩形,包括边框和标题栏。geometry() -> QRect: 返回小部件的几何信息,包括位置和大小。setGeometry(arg__1: PySide6.QtCore.QRect):可以设置内容边距setGeometry(self, x: int, y: int, w: int, h: int)setContentsMargins(left: int, top: int, right: int, bottom: int):设置内容边距setContentsMargins(margins: PySide6.QtCore.QMargins)childrenRect() -> QRect: 返回包含所有子小部件的矩形。childrenRegion() -> QRegion: 返回包含所有子小部件的区域。adjustSize(): 调整小部件的大小以适应其内容。mapFromGlobal(point: QPoint) -> QPoint和mapToGlobal(point: QPoint) -> QPoint: 分别将全局坐标转换为小部件坐标,以及将小部件坐标转换为全局坐标。mapFromParent(point: QPoint) -> QPoint和mapToParent(point: QPoint) -> QPoint: 分别将父坐标转换为小部件坐标,以及将小部件坐标转换为父坐标。maximumSize() -> QSize和minimumSize() -> QSize: 分别返回小部件的最大和最小尺寸。sizeIncrement() -> QSize: 返回小部件的尺寸增量。baseSize() -> QSize: 返回小部件的基础尺寸,通常用于布局计算。setFixedSize(size: QSize)或setFixedSize(width: int, height: int): 将小部件的大小固定在特定值。
Mode
isVisible() -> bool: 返回小部件是否可见。
setVisible(visible: bool)
isVisibleTo(parent: QWidget) -> bool:
返回小部件相对于给定父小部件是否可见。
isEnabled() -> bool: 返回小部件是否启用。
setEnabled(arg__1: bool)
isEnabledTo(parent: QWidget) -> bool:
返回小部件相对于给定父小部件是否启用。 isModal():
属性,表示小部件是否为模态。 isWindow() -> bool:
返回小部件是否为窗口。 hasMouseTracking() -> bool:
属性,表示是否启用鼠标跟踪。 updatesEnabled() -> bool:
属性,表示是否启用小部件的更新。
visibleRegion() -> QRegion:
返回小部件当前可见部分的区域。
Look and feel
style() -> QStyle: 返回小部件的样式。
setStyle(style: QStyle): 设置小部件的样式。
styleSheet(): 表示小部件的样式表。 cursor():
表示小部件的光标。 font(): 表示小部件的字体。
palette(): 表示小部件的调色板。
backgroundRole() -> QPalette.ColorRole:
返回小部件的背景角色。
setBackgroundRole(role: QPalette.ColorRole):
设置小部件的背景角色。 fontInfo() -> QFontInfo:
返回小部件字体的信息。 fontMetrics() -> QFontMetrics:
返回小部件字体的度量信息。
Event handlers
基本事件处理
event(event: QEvent) -> bool: 处理发生在小部件上的所有事件。鼠标键盘事件
mousePressEvent(event: QMouseEvent): 处理鼠标按下事件。mouseReleaseEvent(event: QMouseEvent): 处理鼠标释放事件。mouseDoubleClickEvent(event: QMouseEvent): 处理鼠标双击事件。mouseMoveEvent(event: QMouseEvent): 处理鼠标移动事件。wheelEvent(event: QWheelEvent): 处理鼠标滚轮事件。enterEvent(event: QEvent): 处理鼠标进入小部件的事件。leaveEvent(event: QEvent): 处理鼠标离开小部件的事件。keyPressEvent(event: QKeyEvent): 处理键盘按下事件。keyReleaseEvent(event: QKeyEvent): 处理键盘释放事件。dragEnterEvent(event: QDragEnterEvent): 处理拖动进入小部件的事件。dragMoveEvent(event: QDragMoveEvent): 处理在小部件上拖动的事件。dragLeaveEvent(event: QDragLeaveEvent): 处理拖动离开小部件的事件。dropEvent(event: QDropEvent): 处理在小部件上放下拖动对象的事件。焦点事件
focusInEvent(event: QFocusEvent): 处理获得焦点事件。focusOutEvent(event: QFocusEvent): 处理失去焦点事件。其他事件
paintEvent(event: QPaintEvent): 处理小部件的绘画事件。moveEvent(event: QMoveEvent): 处理小部件移动的事件。resizeEvent(event: QResizeEvent): 处理小部件大小改变的事件。closeEvent(event: QCloseEvent): 处理小部件关闭的事件。其他特殊事件
childEvent(event: QChildEvent): 处理子部件相关的事件。showEvent(event: QShowEvent): 处理小部件显示的事件。hideEvent(event: QHideEvent): 处理小部件隐藏的事件。customEvent(event: QEvent): 处理自定义事件。changeEvent(event: QEvent): 处理状态改变事件。
System functions
parentWidget() -> QWidget: 返回小部件的父窗口。
window() -> QWidget: 返回小部件所属的顶级窗口。
setParent(parent: QWidget): 设置小部件的父窗口。
childAt(p: PySide6.QtCore.QPoint) -> PySide6.QtWidgets.QWidget:获取处于指定坐标的子控件
childAt(self, x: int, y: int) -> PySide6.QtWidgets
winId() -> int: 返回小部件的窗口识别号。
find(id: int) -> QWidget: 根据窗口识别号查找小部件。
metric(metric: QPaintDevice.PaintDeviceMetric) -> int:
返回小部件的度量信息,如屏幕分辨率、字体大小等。
Context menu
contextMenuPolicy: 属性,表示小部件的上下文菜单策略。
customContextMenuRequested(position: QPoint):
当用户请求自定义上下文菜单时发出的信号。
actions() -> List[QAction]:
返回与小部件相关联的所有动作。
import sys
from PySide6.QtCore import *
from PySide6.QtGui import *
from PySide6.QtWidgets import *
class CustomMainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 设置窗口的上下文菜单策略
self.setContextMenuPolicy(Qt.CustomContextMenu)
self.customContextMenuRequested.connect(self.on_context_menu)
# 添加一些动作
self.actionOne = QAction("操作一", self)
self.actionTwo = QAction("操作二", self)
self.addAction(self.actionOne)
self.addAction(self.actionTwo)
# 连接动作的触发信号到槽函数
self.actionOne.triggered.connect(lambda: self.on_action_triggered("操作一"))
self.actionTwo.triggered.connect(lambda: self.on_action_triggered("操作二"))
def on_context_menu(self, position):
# 显示上下文菜单
event = QContextMenuEvent(QContextMenuEvent.Mouse, position)
context_menu = QMenu(self)
context_menu.addAction(self.actionOne)
context_menu.addAction(self.actionTwo)
context_menu.exec(event.globalPos())
def on_action_triggered(self, action_name):
QMessageBox.information(self, "操作触发", f"你选择了: {action_name}")
app = QApplication(sys.argv)
window = CustomMainWindow()
window.resize(400, 300) # 设置窗口初始大小
window.show()
sys.exit(app.exec())Interactive help
setToolTip() setWhatsThis()
import sys
from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QWhatsThis
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
layout = QVBoxLayout(self)
# 创建一个按钮并设置工具提示
btn1 = QPushButton("按钮1", self)
btn1.setToolTip("这是 <b>按钮1</b> 的工具提示")
layout.addWidget(btn1)
# 创建另一个按钮并设置“这是什么”信息
btn2 = QPushButton("按钮2", self)
btn2.setWhatsThis("这是按钮2的 'What's This' 信息")
layout.addWidget(btn2)
# 创建一个按钮用于激活 What's This 模式
whatsThisButton = QPushButton("显示 What's This 信息", self)
whatsThisButton.clicked.connect(self.showWhatsThis)
layout.addWidget(whatsThisButton)
self.setLayout(layout)
self.setWindowTitle("工具提示和 What's This 示例")
def showWhatsThis(self):
QWhatsThis.enterWhatsThisMode()
app = QApplication(sys.argv)
ex = MyWidget()
ex.show()
sys.exit(app.exec())Cursor
QWidget.setCursor(QCursor) 设置光标形状
QWidget.unsetCursor() 取消设置光标形状
QWidget.cursor() -> QCursor 获取光标形状
pixmap = QtGui.QPixmap("img.png").scaled(52, 52)
my_cursor = QtGui.QCursor(pixmap, 26, 26) # 以图片像素点位置26,26为热点(光标实际所在位置坐标)
self.setCursor(my_cursor)
# 设置label中的光标为Qt内置的其他光标
self.label.setCursor(Qt.ForbiddenCursor)
# self.label.setCursor(Qt.OpenHandCursor)Signal
customContextMenuRequested
windowIconChanged
windowIconTextChanged
windowTitleChanged
Function
Window functions
show(): 显示窗口。hide(): 隐藏窗口。raise(): 将窗口置于最前。lower(): 将窗口置于最后。close(): 关闭窗口。
Top-level windows
windowTitle() -> str: 返回窗口的标题。windowIcon() -> QIcon: 返回窗口的图标。isActiveWindow() -> bool: 返回窗口是否是活动窗口。activateWindow(): 激活窗口,使其成为活动窗口。showMinimized(): 最小化窗口,将其图标化至任务栏。showMaximized(): 最大化窗口,使其充满整个屏幕。showFullScreen(): 全屏显示窗口。showNormal(): 恢复窗口原始大小和位置。
activateWindow可以用在临时新建了一个窗口,并把它激活的功能上
Window contents
update():通知系统重绘小部件,触发paintEvent事件。repaint(): 类似于update(),可传递矩形区域参数,指定需要重绘的区域。可以绕过比如”计时”等需要时间去处理的代码,但效率、效果不稳定,最好使用Qthread和update()scroll(dx: int, dy: int): 接受两个整数参数,分别表示水平和垂直方向上的滚动距离。在小部件中实现滚动功能,通常与图形界面元素(如滚动条、文本框等)相关联。用途包括滚动视图、自动滚动、用户交互增强等。
Geometry
pos() -> QPoint: 返回小部件在其父部件坐标系中的位置。x() -> int和y() -> int: 分别返回小部件的 x 和 y 坐标。rect() -> QRect: 返回小部件的内部矩形,不包括边框。size() -> QSize: 返回小部件的大小。width() -> int和height() -> int: 分别返回小部件的宽度和高度。move(x: int, y: int): 移动小部件到一个指定的位置。resize(width: int, height: int): 改变小部件的大小。sizePolicy() -> QSizePolicy: 返回小部件的尺寸策略。sizeHint() -> QSize: 返回小部件的建议尺寸。minimumSizeHint() -> QSize: 返回小部件的最小建议尺寸。updateGeometry(): 通知布局管理器此小部件的几何信息已更改。layout() -> QLayout: 返回小部件使用的布局管理器。frameGeometry() -> QRect: 返回小部件的外部矩形,包括边框和标题栏。geometry() -> QRect: 返回小部件的几何信息,包括位置和大小。childrenRect() -> QRect: 返回包含所有子小部件的矩形。childrenRegion() -> QRegion: 返回包含所有子小部件的区域。adjustSize(): 调整小部件的大小以适应其内容。mapFromGlobal(point: QPoint) -> QPoint和mapToGlobal(point: QPoint) -> QPoint: 分别将全局坐标转换为小部件坐标,以及将小部件坐标转换为全局坐标。mapFromParent(point: QPoint) -> QPoint和mapToParent(point: QPoint) -> QPoint: 分别将父坐标转换为小部件坐标,以及将小部件坐标转换为父坐标。maximumSize() -> QSize和minimumSize() -> QSize: 分别返回小部件的最大和最小尺寸。sizeIncrement() -> QSize: 返回小部件的尺寸增量。baseSize() -> QSize: 返回小部件的基础尺寸,通常用于布局计算。setFixedSize(size: QSize)或setFixedSize(width: int, height: int): 将小部件的大小固定在特定值。