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

    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,"第二页");

 

 

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QFrame 是一个基础的 Qt 控件,它可以作为一个容器来包含其他的控件。动态添加控件并布局可以通过以下步骤实现: 1. 创建 QFrame 控件。 2. 创建要添加的控件,例如 QPushButton、QLabel 等。 3. 将要添加的控件添加到 QFrame 中,可以使用 addWidget() 方法。 4. 设置 QFrame 的布局方式,例如 QVBoxLayout、QGridLayout 等。 5. 将 QFrame 添加到父控件中,例如 QMainWindow、QWidget 等。 下面是一个示例代码,演示了如何在 QFrame 中动态添加 QPushButton 并使用 QVBoxLayout 布局: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QPushButton, QVBoxLayout, QFrame class MainWindow(QMainWindow): def __init__(self): super().__init__() # 创建 QFrame 控件 self.frame = QFrame(self) # 创建 QPushButton 控件 self.button1 = QPushButton('Button 1', self) self.button2 = QPushButton('Button 2', self) # 将 QPushButton 控件添加到 QFrame 中 layout = QVBoxLayout(self.frame) layout.addWidget(self.button1) layout.addWidget(self.button2) # 设置 QFrame 的布局方式 self.frame.setLayout(layout) # 将 QFrame 添加到 QMainWindow 中 self.setCentralWidget(self.frame) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec_()) ``` 在上述代码中,我们创建了一个 QFrame 控件,然后创建了两个 QPushButton 控件,并将它们添加到 QFrame 中。接着,我们使用 QVBoxLayout 布局将这两个按钮垂直排列。最后,我们将 QFrame 添加到 QMainWindow 中,并显示窗口。运行程序后,我们可以看到两个按钮被垂直排列在 QFrame 中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值