上一章我们学习了单行的文本框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. requests https 错误

    HTTPS请求进行SSL验证或忽略SSL验证才能请求成功,忽略方式为  verify=False

  2. Jdbc使用SSH连接mysql

    pom.xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-ja ...

  3. Cmake实践(Cmake Practice)第一部分

    参考资料地址:https://github.com/Akagi201/learning-cmake/blob/master/docs/cmake-practice.pdf 一.初识cmake 1. C ...

  4. docker原理(转)

    可能是把Docker的概念讲的最清楚的一篇文章 [编者的话]本文只是对Docker的概念做了较为详细的介绍,并不涉及一些像Docker环境的安装以及Docker的一些常见操作和命令. Docker是世 ...

  5. react rem

    1 :安装 postcss-px2rem 2 在webpack.config.js 中添加  引入 const px2rem = require('postcss-px2rem');   找到: lo ...

  6. DataTable序列化

    DataTable是复杂对象,无法直接序列化,必须通过其他的方式来实现 下面介绍一下常用的几种方式 1.先转换为List,再序列化List 下面是DataTable转换为List的方法 protect ...

  7. centos7 安装mongodb

    1. 创建mongodb数据,日志,配置文件存放目录# mkdir  /data# tar xzf mongodb-linux-x86_64-rhel70-4.0.8.tgz# mv mongodb- ...

  8. pytorch之张量的理解

    张量==容器 张量是现代机器学习的基础,他的核心是一个容器,多数情况下,它包含数字,因此可以将它看成一个数字的水桶. 张量有很多中形式,首先让我们来看最基本的形式.从0维到5维的形式 0维张量/标量: ...

  9. Java Web解决跨域请求

    要知道跨域请求就要先了解同源策略,那么什么是同源?什么是不同源?简单来说就是,如果两个资源,包括HTML页面.JavaScript脚本.css样式,对应的协议.域名和端口完全相同,那么这两个资源就是同 ...

  10. ambiguous

    ambiguous - 必应词典 美[æm'bɪɡjuəs]英[æm'bɪɡjuəs] adj.模棱两可的:含混不清的:多义的:不明确的 网络含糊的:模糊的:暧昧的 搭配ambiguous answe ...