Qt学习总结之QFrame和的QAbstractScrollArea
一.QFrame类
1.描述
QFrame的父类是QWIdget,主要用来控制边框的样式,例如突起、凹下、阴影。
下面的图就是各种效果和不同线号出来的效果
2.常用API
a.样式设定
m_frame->setFrameShape(QFrame::WinPanel); //样式设定
m_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.阴影效果
m_frame->setFrameShadow(QFrame::Sunken); //设置框架阴影效果
m_frame->frameShadow(); //获取框架阴影效果
//QFrame.Plain //框架和内容无相对3D效果——返回值16
//QFrame.Raised //框架突起显示——返回值32
//QFrame.Sunken //框架凹陷,返回值48
c.线宽设定
m_frame->setLineWidth(10); //设置外线宽度
m_frame->lineWidth(); //获取外线宽度
m_frame->setMidLineWidth(5);//设置中线宽度
m_frame->midLineWidth(); //获取中线宽度
m_frame->frameWidth(); //获取总线宽
发现打印的线宽是52,在Box的突起样式中是有外线中线和内线的,内线的线宽和外线一致。所以总线宽就是52
d.样式设定的时候可以用管道符“|”所以下面两个代码是一样的效果
//方式1
m_frame->setFrameStyle(QFrame::Box|QFrame::Raised);
//方式2
m_frame->setFrameShape(QFrame::Box);
m_frame->setFrameShadow(QFrame::Raised);
但是用FrameStyle()获取样式则是所有效果的"|"运算。
e.边框矩形限制
m_frame->setFrameRect(QRect(10,10,10,10)); //设定框架的矩形限制
m_frame->frameRect(); //获取框架矩形范围限制
3.信号
QFame的信号都是继承自QWidget的,没有特殊的信号,就不再说明了。
二.QAbstractScrollArea类
1.描述
由于有些时候控件内部内容需要滚动查看,就把QAbstractScrollArea抽象出来了,它是滚动区域的低级抽象,继承的父类是QFrame。
2.功能作用
QAbstractScrollArea类为一个抽象类,无法直接实例化,我们通过它的一个子类QTextEdit来说明它。
QTextEdit *m_edit = new QTextEdit(this);
a.设置水平垂直滚动条
m_edit->setHorizontalScrollBarPolicy();
m_edit->setVerticalScrollBarPolicy();
b.滚动条显示策略
m_edit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); //垂直滚动条策略
m_edit->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); //水平滚动条策略
m_edit->horizontalScrollBarPolicy(); //获取水平滚动条策略
m_edit->verticalScrollBarPolicy(); //获取垂直滚动条策略
//滚动条策略枚举值
//Qt.ScrollBarAsNeeded //需要时显示——0
//Qt.ScrollBarAlwaysOff //滚动条始终关闭——1
//Qt.ScrollBarAlwaysOn //滚动条始终显示——2
c.角落控件
我们可以在控件的右下角设置一个控件,可以把QTextEdit()的右下角添加一个按钮
QPushButton *m_bt = new QPushButton("&C",m_edit);
m_edit->setCornerWidget(m_bt); //设置角落控件
m_edit->cornerWidget(); //获取角落控件
效果图如下:
3.信号
QAbstractScrollArea的信号也是继承父类的,没有特别的信号。这里不再赘述。
源码:
mainwindow.c
#include "mainwindow.h"
#include <QWidget>
#include <QDialog>
#include <QFrame>
#include <QDebug>
#include <QTextEdit>
#include "qtextedit.h"
#include <QPushButton>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent)
{this->resize(1000,600);m_frame = new QFrame(this);m_frame->setGeometry(100,100,200,200);m_frame->setFrameShape(QFrame::Box); //设置样式m_frame->frameShape(); //获取样式// m_frame->setFrameShadow(QFrame::Sunken); //设置框架阴影效果
// m_frame->frameShadow(); //获取框架阴影效果m_frame->setLineWidth(10); //设置外线宽度m_frame->lineWidth(); //获取外线宽度m_frame->setMidLineWidth(5);//设置中线宽度m_frame->midLineWidth(); //获取中线宽度m_frame->frameWidth(); //获取总线宽m_frame->setFrameShape(QFrame::Box); //设置样式m_frame->setFrameShadow(QFrame::Raised); //设置框架阴影效果qDebug()<<m_frame->frameWidth();//方式1m_frame->setFrameStyle(QFrame::Box|QFrame::Raised);//方式2m_frame->setFrameShape(QFrame::Box);m_frame->setFrameShadow(QFrame::Raised);// m_frame->setFrameRect(QRect(10,10,10,10)); //设定框架的矩形限制
// m_frame->frameRect(); //获取框架矩形范围限制QTextEdit *m_edit = new QTextEdit(this);m_edit->setGeometry(500,100,200,200);// m_edit->setHorizontalScrollBarPolicy();
// m_edit->setVerticalScrollBarPolicy();m_edit->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); //垂直滚动条策略m_edit->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); //水平滚动条策略m_edit->horizontalScrollBarPolicy(); //获取水平滚动条策略m_edit->verticalScrollBarPolicy(); //获取垂直滚动条策略//滚动条策略枚举值//Qt.ScrollBarAsNeeded //需要时显示——0//Qt.ScrollBarAlwaysOff //滚动条始终关闭——1//Qt.ScrollBarAlwaysOn //滚动条始终显示——2QPushButton *m_bt = new QPushButton("&C",m_edit);m_edit->setCornerWidget(m_bt); //设置角落控件m_edit->cornerWidget(); //获取角落控件}MainWindow::~MainWindow()
{}
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QFrame>class MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:QFrame *m_frame;
};
#endif // MAINWINDOW_H
Qt学习总结之QFrame和的QAbstractScrollArea相关推荐
- QT学习笔记(六):Qt5主窗口框架示例
QT学习笔记(五):Qt5主窗口框架代码示例 一.添加编辑菜单:并在下拉菜单和工具栏中添加"打开文件"动作菜单 #include <QToolButton> #incl ...
- Qt学习之Qt基础入门(中)
1. 前言 上一篇博客,总结了Qt的一些基础用法,这篇博客继续跟视频学习Qt的常用方法 Qt入门系列: Qt学习之C++基础 Qt学习之Qt安装 Qt学习之Qt基础入门(上) Qt学习之Qt基础入门( ...
- QT学习笔记之对话框
QT学习笔记之对话框 对话框是一种用户界面(窗口),它的主要功能是输出信息和接收用户的输入.在每个对话框内一般都有一些控件,对话框依靠这些控件与用户进行交互. 1) 模式对话框:用户只能与 ...
- QT学习笔记(摘抄)
QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...
- Qt学习笔记,Qt国际化
Qt学习笔记,Qt国际化 Qt国际化步骤: 第一步:设置.pro文件,加入TRANSLATIONS为国际化做准备 TRANSLATIONS = language/language_en.ts\ ...
- Qt学习笔记,Qt程序架构设计要旨
Qt学习笔记,Qt程序架构设计要旨 时间过得很快,转眼学习Qt已经有一个多月了,对Qt的学习也在不断的深入中.自己手下的code也很多了,不过不得不说,还有很多的部分没有接触过,比如网络编程,2D,3 ...
- 转载: Qt 学习之路 2归档
Qt 学习之路 2归档 http://www.devbean.net/2012/08/qt-study-road-2-catelog/
- 对QT学习之路12-14的源代码补充与修正
QT学习之路12-14的源代码有些不完整,为了更好的让大家学习,本人做了一点修正与补充,谢谢.源代码如下: 头文件: #ifndef MAINWINDOW_H #define MAINWINDOW_H ...
- Qt学习笔记之MySQL数据库
一.MySQL概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQ ...
最新文章
- 学计算机一定要加班吗,老梁推荐:毕业后经常加班的几类专业,工作压力大,对能力要求很高...
- mysql 对部分表binlog_MySQL抑制binlog日志中的BINLOG部分的方法
- pip安装库包以及.whl库包、.tar.gz库包具体方式
- Python+Anaconda+PyCharm的安装和基本使用
- 5G给边缘计算带来了什么?
- 5G NR QCL准共址详解
- 多维柔性作业调用_摆脱困境:从预定作业中调用安全方法
- Redmine incompatible character encodings: UTF-8 and ASCII-8BIT
- Gojs学习史(一):基本定义
- 每天一个linux命令-curl命令
- PMP第五版第一次考试相关提醒
- “引才入湘”大行动正式启动,CSDN携手万兴科技助力长沙打造人才品牌
- Bailian4022 买房子【迭代】
- Web开发基本准则-55实录-Web访问安全
- 基于stm32的无线多点温度采集系统设计
- win7显示安装程序正在启动服务器失败,Win7安装程序正在启动服务怎么办?
- Node.js 环境搭建过程中可能遇到的问题解决方案
- 使用Python和YOLO检测车牌
- GBase8a智能索引
- Chapter1 Vue基础