QFrame类控件

本文详细介绍了Qt框架中的多种部件,包括QLabel、QLCDNumber、QStackedWidget和QToolBox等,展示了它们的基本用法及如何通过设置不同的属性来改变其外观。

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显示文本:

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

 2.在Label显示添加图片

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

 3.在Label显示动图

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

 

二:QLCDNumber 

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

    QLCDNumber *lcd=new QLCDNumber(this);//生成一个液晶显示
    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生成用前景色填充的平整线段。
    QLCDNumber *lcd=new QLCDNumber(this);
    lcd->move(100,50);
    lcd->setFixedSize(100,30);
    lcd->setSmallDecimalPoint(true);//显示小数点
    lcd->setDigitCount(5);//设置显示的位数
    lcd->setMode(QLCDNumber::Bin);//显示的进制数
    lcd->display("10");//显示的值

 

 三:QStackedWidget

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

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

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

    QStackedWidget *swidget;
    QListWidget *lwidget;
    QLabel *lb1;
    QLabel *lb2;
    QLabel *lb3;

2.在widget中实现功能

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

效果展示:

 

 

 四:QToolBOX

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

常用的函数:

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

生成一个QToolBox控件

    QToolBox *tool=new QToolBox(this);
    QLabel *l1=new QLabel("111111111");
    QLabel *l2=new QLabel("222222222");
    tool->addItem(l1,"第一页");
    tool->addItem(l2,"第二页");

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值