Qt其他窗口部件

  • 1. QFrame
    • 1.1 QLabel
    • 1.2 QLCDNumber
    • 1.3 QStackedWidget
    • 1.4 QToolBox
  • 2. QAbstractButton
    • 2.1 QPushButton
    • 2.2 QCheckBox、QRadioButton、QGroupBox
  • 3. QLineEdit
    • 3.1 显示模式
    • 3.2 输入掩码
    • 3.3 输入验证
    • 3.4 自动补全
  • 4. QAbstractSpinBox
    • 4.1 QDateTimeEdit
    • 4.2 QSpinBox和QDoubleSpinBox
  • 5. QAbstractSlider
  • 6. 资源下载

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 + nui->pushButton_2->setText(tr("帮助(&H)")); //快捷键 Alt + hui->pushButton_2->setIcon(QIcon("../mywidget2/images/help.png"));ui->pushButton_3->setText(tr("z&oom")); //快捷键 Alt + oQMenu * 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——999QValidator * 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

Qt窗口部件——QFrame/QAbstractButton/QLineEdit/QAbstractSpinBox/QAbstractSlider相关推荐

  1. Qt窗口部件——QWidget

    QT窗口部件--QWidget 1. 窗口部件与子部件 2. 窗口类型 3. 窗口几何布局 4. qDebug调试程序 QWidget类是所有用户界面对象的基类,被称为基础窗口部件. QWidget继 ...

  2. Qt窗口部件与布局之二:布局管理

    第3章讲述了一些窗口部件,当时往界面上拖放部件时都是随意放置的,这对于学习部件的使用没有太大的影响,但是,对于一个完善的软件,布局管理却是必不可少的. 无论是想要界面中部件有一个很整齐的排列,还是想要 ...

  3. qt获取窗口的右上角位置_如何获得 Qt窗口部件在主窗口中的位置--确定鼠标是否在某一控件上与在控件上的位置...

    用Qt Creator 设计程序时,最方便的就是ui设计器,可以很容易的得到想要的布局. 但是这样自动布局带来的后果是很难知道窗口中某一部件在主窗口中的相对位置. 在处理子窗口鼠标事件时变的很麻烦.主 ...

  4. Qt窗口部件——对话框QDialog

    Qt对话框QDialog 1. 模态和非模态对话框 2. 多窗口切换 2.1 信号和槽 2.2 练习信号和槽例程 2.3 自定义对话框 3. 标准对话框 3.1 颜色对话框 3.2 文件对话框 3.3 ...

  5. Qt4_在Qt设计师中集成自定义窗口部件

    在Qt设计师中集成自定义窗口部件 在Qt设计师中使用自定义窗口部件之前,我们必须让Qt设计师先察觉到它们的存在.有两种方法可以完成这一任务:改进法(promotion)和插件法(pluigin). 改 ...

  6. 深度探索Qt窗口系统——布局篇

    深度探索Qt窗口系统--布局篇 虽然界面管理器可以完成窗口布局,但是对于动态布局的情况下,这种做法就无能为力了,现实中界面经常要支持国际化,对于同一内容用不同语言翻译可能长度不一,这就需要窗口动态布局 ...

  7. Qt4_IconEditor窗口部件

    子类化QWidget 许多自定义窗口部件都是对现有窗口部件的简单组合,不论它们是内置的Qt窗口部件,还是其他一些像HexSpinBox这样的自定义窗口部件. 通过对现有窗口部件的组合构建而成的自定义窗 ...

  8. Qt4_中央窗口部件

    中央窗口部件 QMainWindow的中央区域可以被任意种类的窗口部件所占用.下面给出的是对所有可能情形的概述. 使用一个标准的Qt窗口部件 像QTableWidget或者QTextEdit这样的标准 ...

  9. Qt4_使用窗口部件

    创建窗口 如何创建一个你自己的窗口部件,描述如何控制一个窗口部件的最小大小和最大大小,并且介绍了窗口部件的名称. 创建项目时候,选QWidget并把Widget修改成MyWidget.打开mywidg ...

最新文章

  1. 怎么判断噎到没噎到_怎么判断噎到没噎到
  2. Spring Mobile 1.1.0.RC1 和 1.0.2 发布
  3. mysql数据库中_截取数据_mysql数据库的字符串截取方法
  4. mysqldb mysql config,安装mysqldb python界面时找不到mysql_config
  5. golang.org/x/lint安装失败
  6. 大学计算机python期末考试用什么软件_大学计算机--Python算法实践_章节测验,期末考试,慕课答案查询公众号...
  7. [Curator] Barrier 的使用与分析
  8. android 屏幕录制方案,Android录制屏幕的实现方法
  9. Jenkins+Git+Maven+Nexus+Tomcat
  10. android分享到新浪微博,认证+发送微博,
  11. python中缀表达式_中缀表达式变后缀表达式、后缀表达式(逆波兰)求值(python版本)...
  12. cat 大众点评 mysql_大众点评-CAT监控平台
  13. 不加群提取群成员_快速提取PPT上的文字!
  14. 宇枫资本如何挑选靠谱理财平台
  15. [python] 正则
  16. salt returner mysql_saltstack mysql returner
  17. 怎么制作linux光盘镜像,linux光盘镜像文件制作攻略
  18. influxdb java api使用_InfluxDB使用HTTP的API查询数据
  19. python日志模块 超量处理_Python logging日志处理模块
  20. 九章云极DataCanvas公司深度参编《中国金融科技发展报告2021》蓝皮书

热门文章

  1. 10种电脑无法启动故障
  2. 华为MSTP负载均衡配置示例
  3. 企业内网巡航扫描神器
  4. Linux多台主机互相免密登陆
  5. 代码安全_弱点(脆弱性)分析 CWE_20200807
  6. Eclipse 中 SVN 的设置。
  7. Linux 中的 【 TOP 】 命令,查看CUP的使用率
  8. WIN10安装和使用MySql5.6中遇到的一些问题与解决
  9. winform上传文件解决方案
  10. 【Windows 10 v1703】解决桌面出现Removable Storage Devices的问题