test_monitor面试题

QT知识点

  • QT三大库

    • QTCore: 这是 Qt 的核心库,所有 Qt 程序都要用到它
    • QTWidgets: 包含几乎所有 Qt 图形控件和窗口的库
    • QTGui: Qt 程序底层绘制图形界面的库
  • Q_OBJECT宏:这个宏声明了 Qt 元对象系统必需的函数和成员变量,之后我们会用 moc 工具生成元对象系统的实体函数代码

  • QWidget

    • QWidget 是 Qt 各种窗口和控件的基类,它本身就是一个功能丰富的窗口类,可以从它继承来构造自定义的主界面

      注意QWidget和QTWidgets的区别

  • QtDesigner

    • 使用QtDesinger可以生成.ui文件,ui 文件其实就一个标准XML格式的文本文件(感兴趣的读者可以用记事本打开看看),需要通过uic工具将其转换为项目里可用的 ui_*.h 头文件, 这个头文件里才是真正可用的 C++ 代码。
  • 基本控件类

    • QLabel
      简单地显示一小段文本,提示用户文本信息, 是最常用的控件之一,一般都用 tr 函数封装字符串(在所有Qt类的顶级基类QObject里定义了),以后如果做多国语言翻译就会很方便
      构造示例1: QLabel label( QLabel::tr("Hello Qt!") );
      构造示例2: m_labelInfo = new QLabel( tr("<h1>Hello Widget!</h1>"), this ); 第二个参数是指定本窗口为QLabel对象的父窗口
    • QStringList
      QStringList类提供了一个字符串列表。类似于QList, 可以提供快速索引为基础的接入以及快速插入和清除。
      插入元素:append() / operator <<;
  • 基本布局类
    布局的作用是自动根据窗口大小调整界面里控件的位置和大小, 基类为QLayoutItem,仅用于辅助功能,不是实体控件,不具备show()功能

    • QStackedLayout
      QStackedLayout,通常用于容纳多个子窗口布局,每次只显示其中一个。这个布局器隐含在堆栈部件 QStackedWidget 内部,一般直接用 QStackedWidget 就行了,不需要专门设置堆栈布局器。
  • 基于条目的控件(Item-Based Widgets)
    控件的特点是都用于显示由数据单元(或叫条目 item)组成的数据合集。

    • 表格控件QTableView/QTableWidget
      QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。
  • 自定义数据模型

    • QStandardItemModel适用于如果只想存储自定义数据并且不想编写自己的模型逻辑。这是通用的,可以将其用于自定义数据而无需子类化。
    • 另一方面,如果您想编写自己的模型逻辑,则选择QAbstractItemModel。它是抽象类。这意味着,它没有实现任何行为,它只是一个“接口”。它告诉您模型应该实现哪些方法
    • QAbstractTableModel继承自QAbstractItemModel, QAbstractTableModel提供了二维数据模型的标准接口,可用于列表视图(不推荐)或者表格视图(推荐)
    • 子类化基本模型QAbstractItemModel时,继承后必须至少实现5个函数: index(), parent(), rowCount(), columnCount() data()。然而,子类化抽象表格模型QAbstractTableModel时,至少只需实现3个即可:rowCount(), columnCount(), and data()
  • 基本变量类型

    • QVariant
      QVariant 是 Qt 定义的通用变量类型,标准 C++ 的类型和 Qt 自己的数值类型都可以自动转为 QVariant 类的对象。将 QVariant 对象转为标准类型或者 Qt 数值类型,可以用对应的 to**** 函数
      • toString: 将QVariant转为QString类型

test_monitor面试题
http://example.com/2024/02/05/test-monitor知识点/
作者
李凯华
发布于
2024年2月5日
许可协议