• QFrame类控件


    QFrame类是带有边框的部件的基类,常用的部件有以下几种:

    部件
    QLabel
    QLCDNumber
    QSplitter
    QStackedWidget
    QToolBox

    QAbstractScrollAea(带有滚动区域的)

    边框的属性:

    使用函数:setFareamShape()

    常量属性
    QFrame::NoFrame不绘制

    QFrame::Box

    生成一个边框
    QFrame::Panel绘制一个面板,使内容表现的突起
    QFrame::StyledPanel绘制一个矩形面版
    QFrame::HLine绘制一条水平线
    QFrame::VLine绘制一条垂直线
    QFrame::WinPanel绘制类似Window2000的矩形面板

    边框阴影的取值:

    使用函数:setFrameShadow()

    常量描述
    QFrame::Plain边框和内容都没有3D效果

    QFrame::Raised

    边框和内容都没表现为凸起,具有3D效果
    QFrame::Sunken边框和内容都没表现为凹陷,具有3D效果

    一:QLabel

    QLabel常用于显示图片和文字。

    1.QLabel显示文本:

    1. bool ok;
    2. QFont font =QFontDialog::getFont(&ok,QFont("宋体",20),this,tr("获取颜色"));//获取字体
    3. QLabel *p1=new QLabel(this);
    4. p1->move(200,200);//移动控件位置
    5. p1->setText("Label");//设置内容
    6. p1->setFont(font);//设置字体
    7. p1->setFrameShape(QFrame::Box);//设置边框
    8. p1->setFrameShadow(QFrame::Raised);//设置阴影

     2.在Label显示添加图片

    1. QLabel *p2=new QLabel(this);
    2. p2->move(200,400);
    3. p2->setPixmap(QPixmap(":/new/prefix1/E:/图片/24110307_6.jpg"));//括号内为路径
    4. p2->resize(100,100);

     3.在Label显示动图

    1. QLabel *p3=new QLabel(this);
    2. QMovie *movie=new QMovie(":/new/prefix1/E:/图片/132eb06b80694d55a1367bd74a78b154.gif");
    3. p3->move(400,200);
    4. p3->setMovie(movie);
    5. p3->resize(100,100);
    6. movie->start();//播放

     

    二:QLCDNumber 

    使数码字符显示类似液晶数字一样的效果。

    1. QLCDNumber *lcd=new QLCDNumber(this);//生成一个液晶显示
    2. lcd->move(100,50);

     QLCDNumber的一些函数:

    函数含义
    setSmallDecimalPoint()显示小数点
    setDigitCount(number)设置位数
    setMode(QLCDNumber::Mode)设置进制数
    setSegmentStyle(QLCDNumber::SegmentStyle)设置显示样式
    display()指定显示数值

    QLCDNumber::mode

    Bin二进制
    Oct八进制
    Dec十进制
    Hex十六进制

    QLCDNumber::SegmentStyle

    Outline生成用背景色填充的凸起段
    Filled(默认值)生成用前景色填充的凸起线段。
    Flat生成用前景色填充的平整线段。
    1. QLCDNumber *lcd=new QLCDNumber(this);
    2. lcd->move(100,50);
    3. lcd->setFixedSize(100,30);
    4. lcd->setSmallDecimalPoint(true);//显示小数点
    5. lcd->setDigitCount(5);//设置显示的位数
    6. lcd->setMode(QLCDNumber::Bin);//显示的进制数
    7. lcd->display("10");//显示的值

     

     三:QStackedWidget

    QStackedWidget类提供一个部件栈,栈中可以存储多个界面,每个界面可以拥有自己的部件,但一次只能显示一个界面,一般和QListWidget一起使用。

    实现点击按键,切换页面:

    1.在widget.h文件中添加以下控件

    1. QStackedWidget *swidget;
    2. QListWidget *lwidget;
    3. QLabel *lb1;
    4. QLabel *lb2;
    5. QLabel *lb3;

    2.在widget中实现功能

    1. swidget=new QStackedWidget(this);
    2. lwidget=new QListWidget(this);
    3. QHBoxLayout *layout=new QHBoxLayout(this);//创建一个水平布局
    4. layout->addWidget(lwidget);//在布局中添加lwidget控件
    5. layout->addWidget(swidget);//在布局中添加swidget控件
    6. lwidget->insertItem(0,"1");//添加选项 , 行数和显示的内容
    7. lwidget->insertItem(1,"2");//添加选项 , 行数和显示的内容
    8. lwidget->insertItem(2,"3");//添加选项 , 行数和显示的内容
    9. lb1=new QLabel("第一页");
    10. lb2=new QLabel("第二页");
    11. lb3=new QLabel("第三页");
    12. swidget->addWidget(lb1);//swidget中添加控件
    13. swidget->addWidget(lb2);
    14. swidget->addWidget(lb3);
    15. layout->setStretchFactor(lwidget,1);//设置在桌面上占据的比例
    16. layout->setStretchFactor(swidget,4);
    17. connect(lwidget,&QListWidget::currentRowChanged,swidget,&QStackedWidget::setCurrentIndex);//连接两个控件

    效果展示:

     

     

     四:QToolBOX

    QToolBox类提供一列层叠窗口部件。

    常用的函数:

    addItem()添加控件
    insterItem()插入控件

    生成一个QToolBox控件

    1. QToolBox *tool=new QToolBox(this);
    2. QLabel *l1=new QLabel("111111111");
    3. QLabel *l2=new QLabel("222222222");
    4. tool->addItem(l1,"第一页");
    5. tool->addItem(l2,"第二页");

     

     

  • 相关阅读:
    Redis 主从复制 + 哨兵模式 + Cluster 集群
    c# wpf template ItemTemplate 简单试验
    计算机毕业设计Java文档资料管理系统(源码+系统+mysql数据库+Lw文档)
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
    本科生学深度学习,搭建环境,再不入坑就晚了
    数据多维分析 - 派可数据商业智能BI可视化分析平台
    七雄争霸武将技能搭配
    stm32的ADC通道错乱原因分析
    基于springboot敬老院管理系统毕业设计-附源码261535
    Python 多进程编程《*》:shared_memory 模块
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/127696099