Qt窗口部件——QFrame/QAbstractButton/QLineEdit/QAbstractSpinBox/QAbstractSlider

1. QFrame

  • QFrame类是带有边框的部件的基类。它的子类包括:QLabel, QLCDNumber, QSplitter, QStackedWidget, QToolBox, QAbstractScrollArea类。
  • QAbstractScrollArea 是所有带有滚动区域的部件类的基类。其最常用的子类就是文本编辑器类 QTextEdit 和 各种项目视图类。
  • Qt中凡是带有Abstract字样的类都是抽象基类。抽象基类不能直接使用,但是可以继承该类实现自己的类,或者使用它提供的子类
  • 带边框部件最重要的特点就是可以有一个明显的边界框架。
  • QFrame类的重要功能就是实现不同的边框效果,这主要有边框形状(Shape)和边框阴影(Shadow)组合来形成。
  • 说明两个名词:LineWidth是边框边界线的宽度,而midLineWidth是在边框中额外插入的一条线的宽度,这条线的作用是为了形成3D效果,并且只在Box、HLine、VLine表现为凸起或者凹陷时有用。
    在这里插入图片描述

1.1 QLabel

  • alignment 设置文本的对齐方式
  • font 设置字体,通过QLabel的**setFont()**函数可以使用新建的字体
  • wordWrap 设置自动换行,如果不想换行,而是后面的自动省略,那么可以使用QFontMetrics
    QString str = tr("标题太长,需要进行省略!");
    //3个参数:省略文本,胜率格式,文本长度(单位像素)
    QString str2 = ui->label->fontMetrics().elidedText(str,Qt::ElideRight,180);
    ui->label->setText(str2);

在这里插入图片描述
在这里插入图片描述

  • scaledContents 可以实现缩放标签中的内容,比如在标签中放一张比较大的图片,就可以选中该属性来显示整个图片。
    在这里插入图片描述
#include <QPixmap>
ui->label->setPixmap(QPixmap("D:/LearnOpenCV3.jpg"));
  • label同样可以显示 gif 动画
    在这里插入图片描述
#include <QMovie>
    QMovie *movie = new QMovie("D:/loading2.gif");
    ui->label->setMovie(movie);
    movie->start();

1.2 QLCDNumber

  • QLCDNumber 就是让数字像液晶数字显示一样的效果。
    在这里插入图片描述
  • smallDecimalPoint 被选中后,可以显示小数点。
  • digitCount 设置显示的数字的个数。
  • mode 选择进制,有十进制、十六进制、八进制和二进制。
  • segmentStyle 设置数码显示的样式。
  • value 就是显示的具体数字,也可以在代码中使用 display() 函数来设置。
  • QLCDNumber 可以显示数字,字母,小数点等

1.3 QStackedWidget

  • 向界面中放置一个List Widget 和一个 Statcked Widget,在List Widget鼠标右键,编辑项目,如下图:
    在这里插入图片描述
  • Statcked Widget 两个页面标好第一页和第二页
  • 信号和槽的关联如下图:
    在这里插入图片描述
  • 完成
    在这里插入图片描述

1.4 QToolBox

  • QToolBox 类提供了一列层叠窗口部件,就像QQ中的抽屉效果。
    在这里插入图片描述

2. QAbstractButton

  • QAbstractButton 类是按钮部件的抽象基类,提供了按钮的通用功能。它包括:
    • 复选框QCheckBox
    • 标准按钮QPushButton
    • 单选按钮QRadioButton
    • 工具按钮QToolButton

2.1 QPushButton

在这里插入图片描述

#include <QDebug>
#include <QMenu>
void MyWidget::on_pushButton_toggled(bool checked)
{
    qDebug()<<tr("按钮是否按下:")<<checked;
}
  • 在一个字母前加上 & 符号,可以将这个按钮的加速键设置为 Alt 加 这个字母。
    ui->pushButton->setText(tr("&nihao")); //快捷键 Alt + n
    ui->pushButton_2->setText(tr("帮助(&H)")); //快捷键 Alt + h
    ui->pushButton_2->setIcon(QIcon("../mywidget2/images/help.png"));
    ui->pushButton_3->setText(tr("z&oom")); //快捷键 Alt + o
    QMenu * menu = new QMenu(this);
    menu->addAction(QIcon("../mywidget2/images/zoom-in.png"),tr("放大"));
    ui->pushButton_3->setMenu(menu);

2.2 QCheckBox、QRadioButton、QGroupBox

  • QCheckBox 提供了同时选择多项的功能。
  • QRadioButton 提供了只能选择一项的功能。
  • 一般要把一组按钮放到一个QGroupBox中去管理
    在这里插入图片描述
  • CheckBox的tristate属性,可以让它拥有不改变状态、选中状态、未选中状态 3种状态
  • 可以关联它们的 **stateChanged()**信号和自定义的槽,也可以使用 isChecked() 来查看一个按钮是否被选中。
  • QButtonGroup 同样可以管理多个按钮。

3. QLineEdit

  • 行编辑器QLineEdit部件允许用户输入和编辑单行的纯文本内容,功能有撤销与恢复、剪切和拖放等。其中剪切复制是自带的,不用编码实现。

3.1 显示模式

  • QLineEdit 有4种显示模式,可以在echoMode属性修改:
    • Normal 正常显示输入的信息
    • NoEcho 不显示任何输入
    • Password 密码样式,用小黑点会星号等符号代替输入的字符
    • PasswordEchoOnEdit 在编辑时显示正常字符,其他情况显示为密码样式

3.2 输入掩码

  • QLineEdit 提供了输入掩码来限制输入内容的功能。
  • inputMask属性设置表含义:
    在这里插入图片描述
    在这里插入图片描述

3.3 输入验证

  • 使用验证器来对输入进行约束
    //新建验证器,指定范围为100——999
    QValidator * validator=new QIntValidator(100,999,this);
    //在行编辑器中使用验证器
    ui->lineEdit_3->setValidator(validator);
  • 通过上面代码的限制,编辑框中只能输入100——999之间的数字,而如果输入了小于100的数字,回车也是不起作用的
  • QDoubleValidator 可以用来设置浮点数,如果还想要更强大的自付约束,就要使用正则表达式了。例如:

3.4 自动补全

  • QCompleter 类实现自动补全功能。
    QStringList wordList;
    wordList<<"Qt"<<"Qt Creator"<<tr("你好");
    QCompleter * completer=new QCompleter(wordList,this); //新建自动完成器
    completer->setCaseSensitivity(Qt::CaseInsensitive);   //设置大小写不敏感
    ui->lineEdit_4->setCompleter(completer);

4. QAbstractSpinBox

4.1 QDateTimeEdit

  • QDateTimeEdit 是一个可以编辑日期和时间的部件。
    在这里插入图片描述
  • timeEdit的** dispalyFormat属性 设置为: h:mm:ssA ,这就可以使用12h制**进行显示。
  • dateEdit如果选中calendarPopup属性,就可以使用弹出的日历部件来设置日期。
    //设置时间为现在的系统时间
    ui->dateTimeEdit->setDateTime(QDateTime::currentDateTime());
    //设置时间的显示格式
    ui->dateTimeEdit->setDisplayFormat(tr("yyyy年MM月dd日 ddd HH时mm分ss秒"));
  • y:年
  • M:月
  • d:日
  • ddd:表示星期
  • H:小时(使用24h制显示),而h也表示小时,如果后面有AMPM,则表示是12h制显示
  • m:分
  • s:秒
  • z:毫秒
  • 该部件的text()返回的的值是QString类型,而使用dateTime()返回的是QDateTime类型数据。

4.2 QSpinBox和QDoubleSpinBox

  • QSpinBox:设置整数
  • QDoubleSpinBox:设置浮点数
  • suffix:后缀
  • prefix:前缀
  • minimum:最小值
  • maxmum:最大值
  • singleStep:每次增加的数值
  • decimals:小数点

5. QAbstractSlider

  • QAbstractSlider类提供区间内的一个整数值,它有一个滑块,可以定位到一个整数区间的任意值。
  • 它有3个子类:
    • QScrollBar:常用于滚动区域中
    • QSlider:常用于音量控制等功能
    • QDial:刻度表盘部件
      在这里插入图片描述

6. 资源下载

https://download.csdn.net/download/weixin_38566632/85098636

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MechMaster

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值