上一章我们学习了单行的文本框QLineEdit类,下面我们要为多行的文本框的学习坐下准备,总结一下QFrame类和QAbstractScrollArea类

一.QFrame类

1.描述

QFrame的父类是QWIdget,主要用来控制边框的样式,例如突起、凹下、阴影。

下面的图就是各种效果和不同线号出来的效果

2.常用API

a.样式设定

frame.setFrameShape(QFrame.WinPanel)   #样式设定
frame.frameShape() #获取样式(int)
#样式枚举值
# QFrame.NoFrame #无样式——返回值0
# QFrame.Box #——返回值1
# QFrame.Panel #——返回值2
# QFrame.WinPanel #闹不大清,和第六个差不多,官方文档不建议使用——返回值3
# QFrame.HLine #横线——返回值4
# QFrame.VLine #竖线——返回值5
# QFrame.StyledPanel #矩形面板,外观取决于当前GUI样式——返回值6

设定的样式效果和上面的图一样(样式可能会和系统版本有差异)。

b.阴影效果

frame.setFrameShadow(QFrame.Sunken)#设置框架阴影效果
frame.frameShadow() #获取框架阴影效果
QFrame.Plain #框架和内容无相对3D效果——返回值16
QFrame.Raised #框架突起显示——返回值32
QFrame.Sunken #框架凹陷,返回值48

c.线宽设定

frame.setLineWidth()   #设置外线宽度
frame.lineWidth() #获取外线宽度
frame.setMidLineWidth()#设置中线宽度
frame.midLineWidth() #获取中线宽度
frame.frameWidth() #获取总线宽

要注意一点,有些效果是不仅仅有外线和中线的,我们运行一下这个代码

frame.setFrameShape(QFrame.Box)
frame.setFrameShadow(QFrame.Raised)
frame.setLineWidth(20)
frame.setMidLineWidth(12)
print(frame.frameWidth())

发现打印的线宽是52,在Box的突起样式中是有外线中线和内线的,内线的线宽和外线一致。所以总线宽就是52

d.样式设定的时候可以用管道符“|”所以下面两个代码是一样的效果

#方式1
frame.setFrameStyle(QFrame.Box|QFrame.Raised)
#方式2
frame.setFrameShape(QFrame.Box)
frame.setFrameShadow(QFrame.Raised)

但是用FrameStyle()获取样式则是所有效果的"|"运算。

e.边框矩形限制

frame.setFrameRect(QRect(10,10,10,10))   #设定框架的矩形限制
frame.frameRect() #获取框架矩形范围限制

3.信号

QFame的信号都是继承自QWidget的,没有特殊的信号,就不再说明了。

二.QAbstractScrollArea类

1.描述

由于有些时候控件内部内容需要滚动查看,就把QAbstractScrollArea抽象出来了,它是滚动区域的低级抽象,继承的父类是QFrame。

2.功能作用

QAbstractScrollArea类为一个抽象类,无法直接实例化,我们通过它的一个子类QTextEdit来说明它。

te = QTextEdit(window)

a.设置水平垂直滚动条

te.setHorizontalScrollBar()
te.setVerticalScrollBar()

这个先不讲,因为后面还有专门控件来说明

b.滚动条显示策略

te.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOn)     #垂直滚动条策略
te.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded) #水平滚动条策略
te.horizontalScrollBarPolicy() #获取水平滚动条策略
te.verticalScrollBarPolicy() #获取垂直滚动条策略
#滚动条策略枚举值
Qt.ScrollBarAsNeeded #需要时显示——0
Qt.ScrollBarAlwaysOff #滚动条始终关闭——1
Qt.ScrollBarAlwaysOn #滚动条始终显示——2

c.角落控件

我们可以在控件的右下角设置一个控件,可以把QTextEdit()的右下角添加一个按钮

btn = QPushButton('&C',te)
te.setCornerWidget(btn) #设置角落控件
te.cornerWidget() #获取角落控件

出来的效果就是这样的

3.信号

QAbstractScrollArea的信号也是继承父类的,没有特别的信号。这里不再赘述。


总结完毕

GUI学习之十——QFrame和的QAbstractScrollArea学习总结的更多相关文章

  1. JMeter学习(十四)JMeter函数学习(转载)

    转载自 http://www.cnblogs.com/yangxia-test JMeter函数是一些能够转化在测试树中取样器或者其他配置元件的域的特殊值.一个函数的调用就像这样:${_functio ...

  2. 轻松学习JavaScript十八:DOM编程学习之DOM简单介绍

    一DOM概述 DOM(文档对象模型)是HTML和XML的应用程序接口(API).DOM将把整个页面规划成由节点层级构成的文档. DOM描绘了一个层次化的节点树,执行开发者加入,移除和改动页面的某一部分 ...

  3. Python3 学习第十四弹: 模块学习六之re模块 + 正则表达式 (转)

    本文转自 AstralWind 的博客:Python正则表达式指南 特来收藏 1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有 ...

  4. 爬虫学习(十九)——Scrapy的学习及其使用

    Scrapy框架的介绍 Scrapy,非常的强悍,通过python语言编写的,非常知名的爬虫框架 框架工作流程 框架流程图 基本工作流程; 1.引擎向spiders要url 2.引擎将要爬取的url给 ...

  5. 201671010140. 2016-2017-2 《Java程序设计》java学习第十五周

    java学习第十五周 Java的GUI界面设计,框架以及主要部件填充,归置,布局管理,在第十一章和第十二章进行了系统的学习,在这两章的知识奠基下,可以简单的构造一个GUI用户界面,在两周的学习后,可以 ...

  6. 十一、Android学习第十天——项目开始(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 十一.Android学习第十天——项目开始 Android知识点的学习告一 ...

  7. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  8. Python 学习 第十篇 CMDB用户权限管理

    Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...

  9. Linux学习之十四、管线命令

    Linux学习之十四.管线命令 地址:http://vbird.dic.ksu.edu.tw/linux_basic/0320bash_6.php

随机推荐

  1. Linux充电站

    [Ansible中文权威指南] [鸟哥的linux私房菜] AWK使用手册 Centos的epel源下载 Ceph国内社区 chef简明手册 ChinaUnix运维文库 Confluence和Jira ...

  2. JAVA学习记录(一)————JAVA中的集合类

    这个图是总体的框架图,主要是两个接口Collection和Map都继承接口Iterator(Iterable),为了实现可以使用迭代器.Collection和Map类似平级关系. 1.这里我先学习下A ...

  3. 使用shell命令给文件中每一行的前面、后面添加字符

    shell command shell给一个文件中的每一行开头插入字符的方法:awk '{print "xxx"$0}' fileName shell给一个文件中的每一行结尾插入字 ...

  4. Centos7的防火墙关闭

    第一步.centos7安装service 第二步. 或者可以不用service,有另一个办法.

  5. C# Func与Action

    Func与Action是C#的内置委托,在使用委托时,可不必再定义. (1)Func:有返回类型的委托. Func类型的委托,肯定有一个返回类型,如果Func只有一个参数,那么它就是代表没有参数但是有 ...

  6. jQuery 效果 - 动画 animate() 方法

    我们先看一个demo <!DOCTYPE html> <html> <head> <script src="/jquery/jquery-1.11. ...

  7. jmeter启动报错

    # ./jmeter-server Using local port: 1099Server failed to start: java.rmi.server.ExportException: Lis ...

  8. 基于django的博客系统

    这是前段代码 达到的效果并不是太好,但我还是要发出来,有更好的建议可以和我讨论 后台还算可以 添加了分类和文章两个功能,还在优化,敬请期待....

  9. 自己实现HashSet

    HashSet的实现相对比较简单.它强依赖于HashMap,包括底层数据实际上就是存储于HashMap,由于HashMap在哈希碰撞下,如果value值相同,那么将会覆盖该value,HashSet正 ...

  10. Shiro 整合 SpringBoot

    https://blog.csdn.net/weixin_38132621/article/details/80216056