一、前言

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. Codeforces Round #829 (Div. 1/Div. 2) 1753 A B C D 题解

    Div1A / 2C. Make Nonzero Sum 令最后每个\(a_i\)的系数为\(c_i\)(\(c_i=1/-1\)),发现只要满足\(c_1=1\)(下标从1开始),且c中没有两个-1 ...

  2. LcdTools如何实现PX01读取SD中BIN文件并通过端口发出去

    在实际应用中我们会碰到需要下载很大容量固件,比如TP固件几百K大小BIN文件,这种情况下用LcdTools写初始化代码的方式实现就不大现实:此时我们可以通过PX01 SD来实现. 首先,把需要操作的B ...

  3. pycharm系列---django

    manage debug Python Console基本配置 DJANGO_SETTINGS_MODULE=mini_project.settings import sys import djang ...

  4. 「浙江理工大学ACM入队200题系列」问题 L: 零基础学C/C++52——计算数列和2/1,3/2,5/3,8/5......

    本题是浙江理工大学ACM入队200题第五套中的L题 我们先来看一下这题的题面. 题面 题目描述 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,-- 计算这个数列的前n项和.注意: ...

  5. 从0到1搭建redis6.0.7

    redis集群搭建 一.安装redis 源码安装: 1.下载源码包: wget http://download.redis.io/releases/redis-6.0.7.tar.gz 2.解压到指定 ...

  6. 关于Docker的一些事--Docker概述

    为什么会出现docker? 背景 以一个食品工厂为例子,有一款食品产品,从研发到包装,需要分别两套生产线,虽然感觉说很好,符合SOP,但是吧,产能很慢,这是为什么呢? 研发:食品搭配.颜色搭配.荤素搭 ...

  7. .NET7 一个实用功能-中央包管理

    依赖管理是 NuGet 的核心功能.Nuget管理单个项目的依赖关系很容易.管理多项目解决方案的依赖关系可能会变得很困难,因为它们的规模和复杂性开始扩大. 在您管理许多不同项目的公共依赖项的情况下,您 ...

  8. 【题解】CF631B Print Check

    题面传送门 解决思路: 首先考虑到,一个点最终的情况只有三种可能:不被染色,被行染色,被列染色. 若一个点同时被行.列染色多次,显示出的是最后一次被染色的结果.所以我们可以使用结构体,对每一行.每一列 ...

  9. docker使用bind9实现域名解析

    目录 刷新服务 修改配置文件 从 114 缓存 查询 数据 可以 dig 无法 ping 查看 已经 区域 解析,并添加 新的 解析 项 在 linux 安装 局域网 cert rndc 查看 默认的 ...

  10. go语言单元测试:go语言用gomonkey为测试函数或方法打桩

    一,安装用到的库1,gomonkey代码的地址: https://github.com/agiledragon/gomonkey 2,从命令行安装gomonkey go get -u github.c ...