部件 |
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常用于显示图片和文字。
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 *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类提供一个部件栈,栈中可以存储多个界面,每个界面可以拥有自己的部件,但一次只能显示一个界面,一般和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类提供一列层叠窗口部件。
常用的函数:
addItem() | 添加控件 |
insterItem() | 插入控件 |
生成一个QToolBox控件
- QToolBox *tool=new QToolBox(this);
- QLabel *l1=new QLabel("111111111");
- QLabel *l2=new QLabel("222222222");
- tool->addItem(l1,"第一页");
- tool->addItem(l2,"第二页");