Qwiget介绍
1. 所有的可视控件的基类3
2. 是一个最简单的空白控件
3. 控件是用户界面的最小元素
4. 每个控件都是矩形的,它们按Z轴顺序排序。(3D)
5. 控件由其父控件和前面的控件剪切
6. 没有父控件的控件, 称之为窗口
Qwiget的接口
控件的创建:
Qwiget(parent=None, flags)
parent 父标签
flags 标识位
Qt.MSWindowsFixedSizeDialogHint # 窗口无法调整大小
Qt.FramelessWindowHint # 窗口无边框
Qt.CustomizeWindowHint #有边框但无标题栏和按钮,不能移动和拖动
Qt.WindowTitleHint # 添加标题栏和一个关闭按钮
Qt.WindowSystemMenuHint # 添加系统目录和一个关闭按钮
Qt.WindowMaximizeButtonHint # 激活最大化和关闭按钮,禁止最小化按钮
Qt.WindowMinimizeButtonHint # 激活最小化和关闭按钮,禁止最大化按钮
Qt.WindowMinMaxButtonsHint # 激活最小化,最大化和关闭按钮
Qt.WindowCloseButtonHint # 添加一个关闭按钮
Qt.WindowContextHelpButtonHint # 添加问号和关闭按钮,同对话框
Qt.WindowStaysOnTopHint # 窗口始终处于顶层位置
Qt.WindowStaysOnBottomHint # 窗口始终处于底层位置
窗口样式:
Qt.Widget # 是一个窗口或控件 默认值
Qt.Window # 是一个窗口,有窗口边框和标题
Qt.Dialog # 是一个对话框窗口
Qt.Sheet # 是一个窗口或部件Macintosh表单
Qt.Drawer # 是一个窗口或部件Macintosh抽屉
Qt.Popup # 是一个弹出式顶层窗口
Qt.Tool # 是一个工具窗口Qt.SplashScreen
Qt.ToolTip # 是一个提示窗口,没有标题栏和窗口边框
Qt.SplashScreen # 是一个欢迎窗口,是QSplashScreen构造函数的默认值
Qt.SubWindow # 是一个子窗口
也可以通过Qwiget.setWindowFlags(flag) # 设计标识位
Qwiget.setWindowIcon() # 设计窗口图片
windowIcon() # 获取窗口表
setWindowTitle("标题") # 设计窗口的标题
windowTitle() # 获取窗口标题
setWindowOpacity(float) # 组件透明度
windowOpacity() # 获取组件透明度
setWindowState(state) # 设计窗口状态
state:Qt.WindowNoState #无状态
Qt.WindowMinimized # 最小化
Qt.WindowMaximized # 最大化
Qt.WindowFullScreen # 全屏
Qt.WindowActive # 活动窗口
windowState() 获取窗口当前状态
showFullScreen() #全屏展示,不包含窗口框架
showMaximized() # 最大化,包括窗口框架
showMinimized() # 最小化,窗口
showNormal() # 正常
isMinimized() # 是否是最小化窗口
isMaximized() # 是否是最大化窗口
isFullScreen() # 是否全屏
控件的大小位置:
x() # 相对于父控件的x位置,顶层控件(没有父控件)则相对于桌面的x位置
y() # 相对于父控件的y位置,顶层控件(没有父控件)则相对于桌面的y位置
pos() # x,y结合
width() # 控件的宽度,不包含任何窗口框架
height() # 控件的高度,不包含任何窗口框架
size() # width和height的组合
QSize(width, height)
geometry() #用户区域(内容区域)相对于父控件的位置和尺寸组合
QRect(x, y, width, height)
rect() # 0, 0, width, height的组合
QRect(0, 0, width, height)
frameSize() #框架大小
frameGeometry() # 框架尺寸
设计控件位置
move(x, y) # 操控的是x, y;也就是pos,包括窗口框架
resize(width, height) # 操控的是宽高,不包括窗口框架
setGeometry(x_noFrame, y_noFrame, width, height) # 注意,此处参照为用户区域(内容区域)
adjustSize() # 根据内容自适应大小
setFixedSize() # 设置固定尺寸
setContentsMargins(左, 上, 右, 下) #设置内容边距
getContentsMargins() # 获取内容边距
contentsRect() # 获取内容区域
setCursor() #设计鼠标形状
cursor() -> QCursor # 获取鼠标
# 设计鼠标图片
pixmap = QPixmap("../Icons/python_96px.ico") # 图片路径
pixmap = pixmap.scaled(100, 100) # 重新设置大小
cursor = QCursor(pixmap, 0, 0) # 0, 0 为热点位置
label.setCursor(cursor)
unsetCursor() # 恢复鼠标
setMouseTracking(bool) #设置鼠标是否跟踪
不跟踪,鼠标移动时,必须处于按下状态,才会触发mouseMoveEvent事件
跟踪,鼠标移动时,不处于按下状态,也会触发mouseMoveEvent事件
hasMouseTracking() # 判定是否设置了鼠标跟踪
showEvent(QShowEvent) # 控件显示时调用
closeEvent(QCloseEvent) # 控件关闭时调用
moveEvent(QMoveEvent) # 控件移动时调用
resizeEvent(QResizeEvent) # 控件调整大小时调用
enterEvent(QEvent) # 鼠标进入
leaveEvent(QEvent) # 鼠标移出
mousePressEvent(QMouseEvent) # 鼠标按下
mouseReleaseEvent(QMouseEvent) # 鼠标松开
mouseDoubleClickEvent(QMouseEvent) # 鼠标双击时触发
mouseMoveEvent(QMouseEvent) #鼠标按下后移动时触发
keyPressEvent(QKeyEvent) # 键盘按下时调用
keyReleaseEvent(QKeyEvent) # 键盘释放时调用
focusInEvent(QFocusEvent) # 获取焦点时调用
focusOutEvent(QFocusEvent) # 失去焦点时调用
dragEnterEvent(QDragEnterEvent) # 拖拽进入控件时调用
dragLeaveEvent(QDragLeaveEvent) # 拖拽离开控件时调用
dragMoveEvent(QDragMoveEvent) # 拖拽在控件内移动时调用
dropEvent(QDropEvent) # 拖拽放下时调用
paintEvent(QPaintEvent) # 显示控件, 更新控件时调用
changeEvent(QEvent) # 窗体改变, 字体改变时调用
contextMenuEvent(QContextMenuEvent) # 访问右键菜单时调用
inputMethodEvent(QInputMethodEvent) #输入法调用
childAt(x, y) #获取在指定坐标的控件
parentWidget() # 获取指定控件的父控件
childrenRect() #所有子控件组成的边界矩形
lower() # 将控件降低到最底层
raise_() # 将控件提升到最上层
a.stackUnder(b) # 让a放在b下面
setEnabled(bool) # 设置控件是否禁用
isEnabled() # 获取控件是否可用
(bool) 设置控件是否可见
""""其他的几种方法""
setHidden(bool)
show()
hide()
setStatusTip(str)() # 鼠标停在控件上时, 展示在状态栏
statusTip()
toolTip() #鼠标悬停在控件上一会后, 展示在旁边
setToolTip(str)
whatsThis() # 切换到"查看这是啥"模式, 点击该控件时显示
setWhatsThis(str)
获取焦点:
setFocus() # 指定控件获取焦点
setFocusPolicy(Policy)
Policy:
Qt.TabFocus #通过Tab键获得焦点
Qt.ClickFocus # 通过被单击获得焦点
Qt.StrongFocus # 可通过上面两种方式获得焦点
Qt.NoFocus # 不能通过上两种方式获得焦点(默认值),setFocus仍可使其获得焦点
clearFocus() #取消焦点