相关文章推荐
完美的苹果  ·  python ...·  2 年前    · 
打酱油的香蕉  ·  SQLFetch 函数 - ODBC ...·  2 年前    · 
玉树临风的山羊  ·  Typescript ...·  2 年前    · 

Qwiget

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() #取消焦点