一、前言

QWidget翻译过来是小部件的意思,QWidgt 类是所有用户界面对象的基类。 窗口部件是用户界面的一个基本单元:它从窗 口系统接收鼠标、键盘和其它事件,并且在屏幕上绘制自己。每一个窗口部件都是矩形的, 并且它们按 Z 轴顺序排列。一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住 一部分。

二、学习目标

1.QWidgt界面实现

2.QWidgt常用方法

三、知识点

1.【QWidgt窗口实现】

基础窗口控件QWidget类是所有用户界面对象的基类,所有的窗口或者控件都直接或者间接的继承自QWidget类。

  • 创建语法:

    window = QWidget()

    Qwidget()中可填入参数:"(self, parent=None, flags)"

    parent :父类,设置窗口父类对象,不设置为None,为顶层窗口,非必填;

    flags:窗口标志,非必填。

  • 窗口标志类型:

    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 窗口始终处于底层位置
  • 普通写法

    import sys
    from PyQt5.QtCore import Qt
    from PyQt5.QtWidgets import QApplication, QWidget #1.创建app实例
    app = QApplication(sys.argv)
    #2.创建窗体实例
    myMain = QWidget(flags=Qt.MSWindowsFixedSizeDialogHint)
    #3.显示窗体
    myMain.show()
    #4.运行app
    sys.exit(app.exec_())
  • 单继承模式写法

    一个完整程序的实现往往包含很多要素,如界面、槽函数、信号等,为了让我们的界面代码与业务逻辑代码进行分离,往往使用单继承模式。

    import sys
    from PyQt5.QtCore import Qt
    from PyQt5.QtWidgets import QApplication, QWidget class QmyWidget(QWidget): def __init__(self, parent=None):
    super().__init__(parent, flags=Qt.MSWindowsFixedSizeDialogHint) # 调用父类的构造函数,创建QWidget窗体 if __name__ == '__main__':
    #1.创建app实例
    app = QApplication(sys.argv)
    #2.创建窗体实例
    myMain = QmyWidget()
    #3.显示窗体
    myMain.show()
    #4.运行app
    sys.exit(app.exec_())

2.【QWidgt常用方法】

  • 设置窗口位置及大小

    • 常用方法

      窗口位置常用方法 说明
      move(x, y) 设置窗口位置,左上角x,y坐标
      resize(width, height) 设置窗口尺寸,宽度、高度
      setGeometry(x, y, width, height) 设置窗口在屏幕中的位置与窗口的大小,x,y,宽度和高度
      adjustSize() 根据内容自适应大小
      setFixedSize() 设置固定尺寸
      setWindowTitle() 设置窗体标题
    • 代码示例

              self.move(150, 150)                   # 设置窗口位置
      self.resize(300, 200) # 设置窗口大小
      self.setWindowTitle('QWidgt组件演示') # 设置窗口标题
  • 设置气泡提示

    • 常用方法

      方法 说明
      setToolTip(str) 鼠标悬停在控件上一会后, 展示在旁边。
      toolTip() 获得信息提示内容。
      setToolTipDuration(msec) 设置显示时长。
      toolTipDuration() 获取显示时长。
      setWhatsThis(str) 切换到"查看这是啥"模式, 点击该控件时显示。
      whatsThis() 获取这是啥内容。
    • 代码示例

      # 设置气泡提示
      self.setToolTip('这是一个气泡显示')
  • 设置窗口图标

    • 常用方法

      方法 说明
      setWindowIcon() 设置窗体图标,需要传QIcon对象
    • 代码示例

      self.setWindowIcon(QIcon('logo.png'))

1.【窗口组件】小部件-QWidgt的更多相关文章

  1. Android 之窗口小部件详解--App Widget

    Android 之窗口小部件详解--App Widget  版本号 说明 作者 日期  1.0  添加App Widge介绍和示例  Sky Wang 2013/06/27        1 App ...

  2. Android 之窗口小部件详解(三)  部分转载

    原文地址:http://blog.csdn.net/iefreer/article/details/4626274. (一) 应用程序窗口小部件App Widgets 应用程序窗口小部件(Widget ...

  3. Android开发5:应用程序窗口小部件App Widgets的实现

    前言 本次主要是实现一个Android应用,实现静态广播.动态广播两种改变 widget内容的方法,即在上篇博文中实验的基础上进行修改,所以此次实验的重点是AppWidget小部件的实现啦~ 首先,我 ...

  4. 优质Android小部件:索尼滚动相册

    虽然骚尼手机卖的不怎么样,但是有些东西还是做的挺好的,工业设计就不用说了,索尼的相册的双指任意缩放功能也是尤其炫酷.其桌面小部件滚动相册我觉得也挺好的,比谷歌原生的相册墙功能好多了,网上搜了一下也没发 ...

  5. ArcGIS Server开发教程系列(8)ArcGIS API for Javascript-控件(小部件)

    1.     鹰眼 OverviewMap小部件用于在其关联的主地图内较清楚的当前鸟瞰图的范围.当主地图范围变化时,鹰眼图会自动在其空间内更新范围以保持和地图的当前范围保持一致,当鹰眼图空间的地图范围 ...

  6. 在android程序中加入widget(窗口小部件)并与之交互的关键代码

    摘要: widget(窗口小部件)可以增强应用程序的交互性, 是很多应用中都会用到的功能,本文不求大而全,但是会给出程序与widget交互的关键代码 正文: 其实widget是嵌入(embedded) ...

  7. yii YII小部件 创建登录表单表单 Login表单

    YII框架必须遵循其表单的创建方法 登录模型错做与数据库操作模型是一致的,不同的是不跟数据库交互 ,用的是小部件,在创建表单之前,要在用户控制模块完成以下代码 protected --models - ...

  8. YII 小部件实现的注册表

    今天来进行用户注册功能yii集成了很多验证框架,framework/validators下面,这个文件夹的最后一个文件CValidator.php 是总的验证信息,根据请求参数决定需要那种验证 如:u ...

  9. YII 小部件 yii小部件查看方法 小物件做的表单

    要使用小部件,可以先到总文件去找   framework/yiilite文件里面搜索“CAtiveForm” (如果觉得小部件的radio布局有点难看,可以在外面定义,具体可以在控制器里面定义) 如下 ...

  10. Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)

    呃,系统自带的alert.confirm等弹出框实在是难看,作为一个颜控,这能忍? 这里我用的是kartik-v/yii2-dialog,这个是基于bootstrap3-dialog这个来做了一些常用 ...

随机推荐

  1. HTML躬行记(2)——WebRTC基础实践

    WebRTC (Web Real-Time Communications) 是一项实时通讯技术,在 2011 年由 Google 提出,经过 10 年的发展,W3C 于 2021 年正式发布 WebR ...

  2. C# Interlocked 类

    [前言] 在日常开发工作中,我们经常要对变量进行操作,例如对一个int变量递增++.在单线程环境下是没有问题的,但是如果一个变量被多个线程操作,那就有可能出现结果和预期不一致的问题. 例如: stat ...

  3. 开源网络协议栈onps诞生记

    小孩没娘,说来话长,一切都要从LwIP说起.大约是06年9月,本人在二姨的坛口发布了一篇小文--<uC/OS-II 平台下的 LwIP 移植笔记>.自此一发不可收拾,开启了一段我与LwIP ...

  4. xss学习笔记(萌新版)

    xss简介 xss攻击者构造恶意信息然后在用户的浏览器上执行,主要分为反射性xss,这种主要是某个页面存在有漏洞的参数,然后填上恶意参数把整个链接发给用户或者管理员,他们点击了带有恶意参数的链接就会执 ...

  5. vue传值

    在vue 中组件间的传参是必不可少的,下面说下几种传参方式 1.父组件传值给子组件,首先父组件发送的形式是用bind(用缩写:)绑定值到子组件身上.然后子组件用属性props接收 2.子组件传值父组件 ...

  6. Spring Cloud Loadbalancer

    Spring Cloud Loadbalancer---客户端负载均衡器 springcloud 2020.0.1 版本之后 删除了eureka中的ribbon,替代ribbon的是spring cl ...

  7. Vue3 企业级优雅实战 - 组件库框架 - 5 组件库通用工具包

    该系列已更新文章: 分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率 开箱即用 yyg-cli 脚手架:快速创建 vue3 组件库和vue3 全家桶项目 Vue3 企业级优雅实战 ...

  8. Go语言核心36讲03

    [Go语言代码较多,建议配合文章收听音频.] 你好,我是郝林.从今天开始,我将和你一起梳理Go语言的整个知识体系. 在过去的几年里,我与广大爱好者一起见证了Go语言的崛起. 从Go 1.5版本的自举( ...

  9. Pycharm下载与使用及python的基础数据类型

    1.Pycharm编辑器 1.1.下载地址 https://www.jetbrains.com/pycharm/ 1.2.Pycharm编辑器下载 1.根据自己的操作系统选择相对应的下载方式 2.尽量 ...

  10. chrome设置socket5代理

    利用自带的参数命令打破一个死循环. chrome可执行文件 --show-app-list --proxy-server="SOCKS5://127.0.0.1:1080"