Qt输入窗口部件编程(一) QComboBox和QFontComboBox


前言

从本文开始,我们系列文章开始介绍Qt输入窗口部件编程。本文介绍QComboBox组合框和 QFontComboBox字体组合框编程。通过这个例子,继续巩固QT的信号与槽知识,了解qt4与qt5信号与槽函数的连接方式的不同。

本例程设计是在chatgpt的帮助下完成的,编译代码经过测试通过。

感谢朋友提供的chatgpt软件,特别是其中的gpt-box桌面工具,更是我离不开的工具。感兴趣的同仁可前往一观( www.apsuai.com)。

我们的调试环境仍然是双架构Kits,编译调试在当前的ubuntu(qt5)中进行,重新编译后下载到目标arm设备(qt4)中运行。
我们的编程环境为:Ubuntu64位系统(22.04),目标架构:
(1) qt5 x86_64 架构;
(2)qt4 32位arm架构。
环境配置请参见《Qt常用的按钮控件编程(一)》第1节。


1、 Qt常用的输入窗口控件

在这里插入图片描述

  1. Comb Box:组合框
  2. Font Comb Box:字体组合框
  3. Line Edit:单行编辑框
  4. Text Edit:文本编辑框
  5. Plain Text Edit:纯文本编辑框
  6. Spin Box:数字旋转框
  7. Double Spin Box:双精度数字旋转框
  8. Time Edit:时间编辑框
  9. Date Edit:日期编辑框
  10. Date/Time Edit:日期时间编辑框
  11. Dial:数字拨盘框
  12. Horizontal Scroll Bar:水平滚动条
  13. Vertical Scroll Bar:垂直滚动条
  14. Horizontal Slider:水平滑动条
  15. Vertical Slider:垂直滑动条
  16. Key sequence Edit:按键序列编辑框
    在以后编程示例中我们会详细介绍这些控件。

2、QFontComboBox 和 QComboBox控件编程

2.1 控件简介

2.1.1 QComboBox组合框

QComboBox是Qt中的一个控件类,用户可以从下拉列表中选择一个值。当用户点击下拉箭头,一个列表就会展开,以显示可用选项。用户可以从列表中选择一个选项,所选选项将作为组合框的当前值。
QComboBox是一个强大的组合框控件,可以用于在GUI中选择从一组值中选择的值。例如,在绘图应用中,可以使用QComboBox来选择画笔颜色、字体、线型等。QComboBox也可以用于选择文件格式、数据源等。

以下是QComboBox的一些常用函数和信号:

  • addItem(text: str, userData: Any = None): 向下拉列表框中添加一个选项。
  • removeItem(index: int): 从下拉列表框中移除指定的选项。
  • clear(): 清除下拉列表框中的所有选项。
  • currentTextChanged(text: str): 当用户选择新选项时,发出此信号。

2.1.2 QFontComboBox字体组合框

QFontComboBox是QComboBox类的一个子类,继承了QComboBox的所有功能。QFontComboBox是Qt为了方便开发者使用而提供的一个特殊控件,可以将其视为Qt的语法糖。它大大简化开发过程,并使代码更易于理解和维护,但其实它内部实现并不简单,需要扫描操作系统中所有已安装的字体,并格式化这些字体进行显示,同时提供信号来捕获所选字体的更改。

2.2 例程功能设计

向chatgpt提出的要求如下:
“使用Qt Creator 创建一个c++例程,项目名称"_qcombobox" ,基类不选默认MainWindow类,而选择Widget作为基类,不要勾选“Generate form”,不使用拖取控件,控件全部采用编程。主窗口大小800*480。在主窗口上,放置一个 QComboBox控件控件用来选择颜色,放置一个 QFontComboBox 控件用来选择字体,选择后,用槽函数将综合选择的结果体现在一个QTextEdit控件中。“
chatgpt根据要求给出了完整的例程,经过少量调整就能满足我们的需求。

2.3 例程执行效果

在主窗口上,左上放置一个 QComboBox控件,点击后显示的下拉框可以改变下部文本框(QTextEdit控件)选中文本的颜色,右上放置一个QFontComboBox控件,点击后出现许多中文字体可供选择,选中其中之一,文本框中的全部内容会按照选择的字体发生改变,如下图:

在这里插入图片描述

2.4 生成项目

使用Qt Creator 创建一个c++例程,项目名称"_qcombobox" ,不选默认MainWindow类,选择Widget作为基类,不要勾选“Generate form”,不使用拖取控件,控件全部采用编程。将两个配置好的Kits同时选上,项目新建完成如下图。(详细的项目新建过程参见:《Qt常用的按钮控件编程(一)》)。
在这里插入图片描述
点击左侧的Debug选项,可以看到两个编译套件Kit,可以选择编译运行在不同平台上的可执行文件,arm-v7为arm架构的设备,使用Qt4库,而桌面则是当前ubuntu系统,使用Qt5。

2.5 代码编辑

2.5.1 修改项目文件_qcombobox.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    widget.cpp

HEADERS += \
    widget.h

# Default rules for deployment.
qnx: target.path = /tmp/$${
   TARGET}/bin
else: unix:!android: target.path = /opt/$${
   TARGET}/bin
!isEmpty(target.path): INSTALLS += target

# 根据使用的 Qt 版本设置编译条件
greaterThan(QT_MAJOR_VERSION, 4) {
   
    # 如果使用的是 Qt 5 或者更新版本
    message("使用的是 Q
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值