当前位置: 首页 > news >正文

Qt5基础控件详细讲解

个人博客:blogs.wurp.top

一、核心概念回顾:

  • 控件 (Widget): Qt 中所有可视化界面元素(按钮、标签、输入框、窗口本身)的基类都是 QWidget。它提供了处理事件(鼠标、键盘、绘制等)、尺寸策略、布局管理、样式等的基础功能。
  • 父对象 (Parent): 控件通常有一个父对象(另一个 QWidgetQMainWindow)。父对象负责管理子控件的生命周期(当父对象销毁时,子对象通常也会被自动销毁)和部分几何属性(位置和大小通常受布局管理器约束)。
  • 布局管理器 (Layout Manager): QVBoxLayout, QHBoxLayout, QGridLayout, QFormLayout 等。它们自动管理其内部控件的排列和大小,使界面能适应不同窗口尺寸和屏幕分辨率。强烈建议使用布局管理器而不是手动设置控件的绝对位置和大小。
  • 信号与槽 (Signals & Slots): Qt 的核心通信机制。控件在发生特定事件(如按钮被点击、文本改变)时会发出信号。你可以将这些信号连接到其他对象(可以是控件,也可以是自定义的业务逻辑对象)的(成员函数)上。当信号发出时,连接的槽函数会被自动调用。这是实现界面交互响应的主要方式。

二、基础控件详解 (按功能分类):

1. 文本显示控件

  • QLabel

    • 功能: 显示文本或图片(或两者)。主要用于显示静态信息、标题、说明文字等。
    • 关键属性:
      • text: 显示的文本字符串。支持富文本(HTML 子集)。
      • pixmap: 显示的图片(QPixmap)。
      • alignment: 文本/图片在标签区域内的对齐方式(Qt::Alignment 标志组合,如 Qt::AlignLeft | Qt::AlignVCenter)。
      • wordWrap: 是否允许文本自动换行。
      • textFormat: 文本格式 (Qt::PlainText, Qt::RichText, Qt::AutoText)。
      • indent: 文本缩进。
    • 常用信号: linkActivated(const QString &link) (当标签包含超链接且用户点击时发出), linkHovered(const QString &link)
    • 典型用法:
      QLabel *titleLabel = new QLabel("用户信息", this);
      titleLabel->setAlignment(Qt::AlignCenter); // 居中
      QLabel *iconLabel = new QLabel(this);
      iconLabel->setPixmap(QPixmap(":/images/user.png"));
      
  • QTextBrowser

    • 功能: QLabel 的增强版,专门用于显示富文本(HTML)和纯文本,并支持超链接导航(前进、后退)、滚动和查找。是只读的。
    • 关键属性/方法: 继承自 QTextEdit,但设置为只读 (setReadOnly(true))。常用 setSource(const QUrl &name) 加载 HTML 文件或内容。
    • 常用信号: anchorClicked(const QUrl &link) (用户点击链接时发出),sourceChanged(const QUrl &src)
    • 典型用法: 显示帮助文档、产品说明、带格式的日志信息。

2. 按钮控件

  • QPushButton

    • 功能: 最常用的按钮。用户点击触发操作。
    • 关键属性:
      • text: 按钮上显示的文本。
      • icon: 按钮上显示的图标 (QIcon)。
      • checkable: 按钮是否可以被“按下/弹起”切换状态(类似开关)。默认 false
      • checked: 如果 checkabletrue,表示按钮当前是否处于按下/选中状态。
      • default: 是否为对话框中的默认按钮(通常响应 Enter 键)。
      • autoDefault: 控制按钮在获得焦点时是否临时成为默认按钮。
    • 常用信号:
      • clicked(): 最常用。当用户按下并释放按钮(或通过键盘快捷键触发)时发出。
      • pressed(): 当用户按下按钮时发出。
      • released(): 当用户释放按钮时发出。
      • toggled(bool checked): 当 checkable 按钮的状态改变时发出(checked 表示新状态)。
    • 典型用法: 提交表单、确认操作、打开对话框、执行命令。
      QPushButton *submitBtn = new QPushButton("提交", this);
      connect(submitBtn, &QPushButton::clicked, this, &MyWidget::onSubmitClicked); // 连接到槽函数QPushButton *toggleBtn = new QPushButton("开关", this);
      toggleBtn->setCheckable(true);
      connect(toggleBtn, &QPushButton::toggled, this, &MyWidget::onToggleChanged);
      
  • QRadioButton

    • 功能: 单选按钮。用于在一组互斥的选项中选择一个。通常放在 QButtonGroup 中管理互斥性。
    • 关键属性:
      • text: 按钮旁显示的文本。
      • checked: 是否被选中。
      • autoExclusive: 通常由 QButtonGroup 管理互斥,此项一般保持默认。
    • 常用信号: toggled(bool checked) (状态改变时发出)。
    • 典型用法: 性别选择(男/女)、模式选择(高/中/低)、单项选择。
      QRadioButton *maleRadio = new QRadioButton("男", this);
      QRadioButton *femaleRadio = new QRadioButton("女", this);
      femaleRadio->setChecked(true); // 默认选中女性// 将它们加入一个按钮组确保互斥 (也可以不显式加组,如果它们在同一个父控件下且autoExclusive为true)
      QButtonGroup *genderGroup = new QButtonGroup(this);
      genderGroup->addButton(maleRadio);
      genderGroup->addButton(femaleRadio);connect(maleRadio, &QRadioButton::toggled, this, [=](bool checked) { if (checked) setGender(Male); });
      
  • QCheckBox

    • 功能: 复选框。用于表示一个选项是开启还是关闭状态。可以独立选择,也可以部分选择(三态)。
    • 关键属性:
      • text: 复选框旁显示的文本。
      • checkState: 检查状态 (Qt::Unchecked, Qt::PartiallyChecked, Qt::Checked)。
      • tristate: 是否启用三态(支持部分选中)。默认 false(只有开/关两态)。
    • 常用信号: stateChanged(int state) (状态改变时发出,stateQt::CheckState 枚举值)。
    • 典型用法: 设置选项(如“记住密码”、“自动登录”)、选择多个条目。
      QCheckBox *rememberPwdBox = new QCheckBox("记住密码", this);
      rememberPwdBox->setChecked(true);
      connect(rememberPwdBox, &QCheckBox::stateChanged, this, &MyWidget::onRememberPwdChanged);QCheckBox *partialBox = new QCheckBox("部分选项", this);
      partialBox->setTristate(true);
      partialBox->setCheckState(Qt::PartiallyChecked);
      
  • QToolButton

    • 功能: 通常出现在工具栏 (QToolBar) 上,用于快速访问命令。可以显示图标、文本或两者,并且可以配置弹出菜单 (QMenu)。
    • 关键属性:
      • icon: 显示的图标。
      • text: 显示的文本(通常在工具栏中只显示图标,鼠标悬停时显示文本提示)。
      • toolTip: 鼠标悬停提示。
      • popupMode: 弹出菜单的模式(QToolButton::MenuButtonPopup, QToolButton::InstantPopup 等)。
      • menu: 关联的弹出菜单 (QMenu *)。
    • 常用信号: clicked() (当按钮主体被点击时发出)。菜单项的选择通过菜单的信号处理。
    • 典型用法: 工具栏按钮、具有下拉选项的按钮。
      QToolButton *fileBtn = new QToolButton(this);
      fileBtn->setIcon(QIcon(":/icons/file.png"));
      fileBtn->setText("文件");
      fileBtn->setToolTip("文件操作");QMenu *fileMenu = new QMenu(this);
      fileMenu->addAction("新建");
      fileMenu->addAction("打开");
      fileMenu->addAction("保存");
      fileBtn->setMenu(fileMenu);
      fileBtn->setPopupMode(QToolButton::MenuButtonPopup); // 旁边有个小箭头
      

3. 输入控件

  • QLineEdit

    • 功能: 单行文本输入框。用于输入用户名、密码(需设置 echoMode)、搜索关键字等简短文本。
    • 关键属性:
      • text: 输入框中的文本内容。
      • placeholderText: 当输入框为空时显示的灰色提示文本。
      • echoMode: 显示模式 (QLineEdit::Normal, QLineEdit::Password, QLineEdit::NoEcho, QLineEdit::PasswordEchoOnEdit)。
      • maxLength: 允许输入的最大字符数。
      • readOnly: 是否为只读。
      • validator: 设置输入验证器 (QIntValidator, QDoubleValidator, QRegExpValidator) 限制输入格式。
      • inputMask: 设置输入掩码 (如电话号码格式 "000-0000-0000")。
    • 常用信号:
      • textChanged(const QString &text): 最常用。文本内容任何改变时发出(每输入/删除一个字符)。
      • textEdited(const QString &text): 用户编辑文本时发出(不包括程序设置文本)。
      • returnPressed(): 用户按下 Enter/Return 键时发出(常用于触发提交)。
      • editingFinished(): 当输入框失去焦点且内容被编辑过时发出。
    • 典型用法: 用户名输入、密码输入、搜索框、短文本输入。
      QLineEdit *usernameEdit = new QLineEdit(this);
      usernameEdit->setPlaceholderText("请输入用户名");
      connect(usernameEdit, &QLineEdit::textChanged, this, &MyWidget::validateUsername);QLineEdit *pwdEdit = new QLineEdit(this);
      pwdEdit->setPlaceholderText("请输入密码");
      pwdEdit->setEchoMode(QLineEdit::Password);
      connect(pwdEdit, &QLineEdit::returnPressed, this, &MyWidget::attemptLogin);
      
  • QTextEdit

    • 功能: 多行富文本编辑器。支持纯文本和富文本(HTML)的输入、显示和编辑。功能强大,支持格式化文本、插入图片/列表/表格、查找替换、语法高亮(需自定义)等。
    • 关键属性/方法:
      • toPlainText(): 获取纯文本内容。
      • toHtml(): 获取 HTML 格式内容。
      • setPlainText(const QString &text): 设置纯文本内容。
      • setHtml(const QString &html): 设置 HTML 内容。
      • setReadOnly(bool): 设置只读。
      • document(): 返回底层的 QTextDocument 对象,提供更高级的文档操作接口。
    • 常用信号: textChanged() (文档内容改变时发出)。
    • 典型用法: 长文本输入(评论、描述、邮件正文)、富文本编辑器、代码编辑器(配合语法高亮)、日志显示区。
  • QPlainTextEdit

    • 功能: 优化的多行纯文本编辑器。相比 QTextEdit 在处理非常大的纯文本文件时性能更高、内存占用更少。不支持富文本。
    • 关键属性/方法:QTextEdit 类似,但主要使用 setPlainText(), toPlainText()。有专门针对大文本优化的 API,如 blockCount() (段落数), lineWrapMode
    • 常用信号: textChanged(), blockCountChanged(int newBlockCount), modificationChanged(bool changed)
    • 典型用法: 代码编辑器、日志查看器、大文本文件查看/编辑。
  • QComboBox

    • 功能: 组合框/下拉列表框。用户可以从预定义的选项列表中选择一项,也可以(如果 editabletrue)输入自定义文本。
    • 关键属性:
      • currentIndex: 当前选中项的索引(从 0 开始)。
      • currentText: 当前项的文本(如果是可编辑的,可能是用户输入)。
      • editable: 是否允许用户编辑输入。
      • model: 数据模型(通常使用 QStandardItemModelQStringListModel)。更常用的是通过 addItem(), insertItem(), addItems() 等方法添加项。
      • count: 项的数量。
    • 常用信号:
      • currentIndexChanged(int index): 最常用。当前选中项索引改变时发出。
      • currentTextChanged(const QString &text): 当前文本改变时发出(包括编辑时)。
      • activated(int index): 用户激活(选择)了某一项时发出(与 currentIndexChanged 区别在于,后者也可能由程序设置触发)。
    • 典型用法: 国家/地区选择、分类选择、提供预设值列表。
      QComboBox *countryCombo = new QComboBox(this);
      countryCombo->addItem("中国");
      countryCombo->addItem("美国");
      countryCombo->addItem("日本");
      countryCombo->setCurrentIndex(0); // 默认选中中国
      connect(countryCombo, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &MyWidget::onCountryChanged);QComboBox *searchCombo = new QComboBox(this);
      searchCombo->setEditable(true);
      searchCombo->addItems(QStringList() << "最近搜索1" << "最近搜索2");
      
  • QSpinBox

    • 功能: 整数调节框。允许用户通过上下箭头按钮或直接输入来选择一个整数值。
    • 关键属性:
      • value: 当前整数值。
      • minimum: 最小值。
      • maximum: 最大值。
      • singleStep: 按一次箭头按钮改变的步长。
      • prefix: 显示在数值前面的文本(如 “$”)。
      • suffix: 显示在数值后面的文本(如 “px”)。
    • 常用信号: valueChanged(int value) (值改变时发出)。
    • 典型用法: 年龄、数量、尺寸等整数值的输入。
  • QDoubleSpinBox

    • 功能: 浮点数调节框。功能类似 QSpinBox,但用于浮点数。
    • 关键属性: 除了 valuedouble 类型,还有 decimals (显示的小数位数)。
    • 常用信号: valueChanged(double value)
    • 典型用法: 价格、比例、坐标等浮点数值的输入。
  • QSlider

    • 功能: 滑块控件。允许用户通过拖动滑块在一个范围内选择一个值(整数)。有水平 (Qt::Horizontal) 和垂直 (Qt::Vertical) 两种方向。
    • 关键属性:
      • value: 当前值。
      • minimum: 最小值。
      • maximum: 最大值。
      • singleStep: 按键盘方向键移动的步长。
      • pageStep: 按 PgUp/PgDn 键或点击滑块轨道移动的步长。
      • tickPosition: 刻度线位置 (QSlider::NoTicks, QSlider::TicksAbove, QSlider::TicksBelow, QSlider::TicksBothSides)。
      • tickInterval: 刻度线间隔。
      • orientation: 方向 (Qt::HorizontalQt::Vertical)。
    • 常用信号: valueChanged(int value) (值改变时发出), sliderMoved(int position) (用户拖动滑块时连续发出), sliderReleased() (用户释放滑块时发出)。
    • 典型用法: 音量控制、亮度调节、进度指示(与 QProgressBar 配合)、范围选择。
  • QProgressBar

    • 功能: 进度条。用于显示任务的进度。
    • 关键属性:
      • value: 当前进度值。
      • minimum: 最小值(通常为 0)。
      • maximum: 最大值(通常为 100)。
      • textVisible: 是否显示百分比文本。
      • alignment: 文本对齐方式。
      • format: 文本格式字符串(如 "%p%" 显示百分比, "%v/%m" 显示 “当前值/最大值”)。
      • orientation: 方向 (Qt::HorizontalQt::Vertical)。
    • 常用方法: reset() (重置进度), setRange(int min, int max)
    • 常用信号: valueChanged(int value)
    • 典型用法: 文件下载/上传进度、长时间操作进度指示。

4. 选择控件

  • QListWidget

    • 功能: 基于项 (QListWidgetItem) 的列表视图控件。提供列表形式的项目选择。
    • 关键属性/方法:
      • currentItem(): 当前选中的项。
      • selectedItems(): 所有选中的项(支持多选时)。
      • currentRow(): 当前选中项的行号。
      • selectedRows(): 所有选中项的行号。
      • addItem(QListWidgetItem *) / addItem(const QString &text): 添加项。
      • setSelectionMode(QAbstractItemView::SelectionMode): 设置选择模式 (SingleSelection, MultiSelection, ExtendedSelection, ContiguousSelection, NoSelection)。
    • 常用信号:
      • currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous): 当前项改变。
      • itemSelectionChanged(): 选择项集合改变时发出。
      • itemClicked(QListWidgetItem *item): 点击项时发出。
      • itemDoubleClicked(QListWidgetItem *item): 双击项时发出(常用于打开/执行)。
    • 典型用法: 文件列表、联系人列表、选项列表(支持多选)。
  • QTreeWidget

    • 功能: 树形视图控件。用于显示具有父子层次结构的数据(如文件系统目录结构、组织架构)。
    • 关键概念:
      • QTreeWidgetItem: 表示树中的一个项(节点)。可以有父节点和子节点。
      • QTreeWidget: 控件本身。
    • 关键属性/方法:
      • headerItem() / setHeaderLabels(const QStringList &labels): 设置表头。
      • topLevelItem(int index): 获取顶级项。
      • currentItem(): 当前选中的项。
      • selectedItems(): 选中的项。
      • invisibleRootItem(): 获取不可见的根项(所有顶级项的父项)。
      • 通过 QTreeWidgetItem 操作:addChild(QTreeWidgetItem *), insertChild(int index, QTreeWidgetItem *), childCount(), child(int index), parent(), text(int column), setText(int column, const QString &text), setIcon(int column, const QIcon &icon) 等。
    • 常用信号: currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous), itemSelectionChanged(), itemClicked(QTreeWidgetItem *item, int column), itemDoubleClicked(QTreeWidgetItem *item, int column), itemExpanded(QTreeWidgetItem *item), itemCollapsed(QTreeWidgetItem *item)
    • 典型用法: 文件浏览器、资源管理器、带分类的配置选项。
  • QTableWidget

    • 功能: 表格视图控件。用于显示和编辑二维表格数据。
    • 关键概念:
      • QTableWidgetItem: 表示表格中的一个单元格。
      • QTableWidget: 控件本身。
    • 关键属性/方法:
      • rowCount(), columnCount(), setRowCount(int), setColumnCount(int): 行列数。
      • horizontalHeader(), verticalHeader(): 获取水平/垂直表头对象 (QHeaderView),可用于设置标题、调整策略等。
      • setHorizontalHeaderLabels(const QStringList &labels), setVerticalHeaderLabels(const QStringList &labels): 设置表头标签。
      • item(int row, int column): 获取指定单元格的项。
      • setItem(int row, int column, QTableWidgetItem *item): 设置单元格项。
      • currentItem(), currentRow(), currentColumn(), selectedItems(), selectedRanges(): 选择和当前项信息。
      • setSelectionBehavior(QAbstractItemView::SelectionBehavior): 选择行为(选择行、选择列、选择项)。
      • setSelectionMode(QAbstractItemView::SelectionMode): 选择模式(单选、多选等)。
    • 常用信号: cellChanged(int row, int column), cellClicked(int row, int column), cellDoubleClicked(int row, int column), currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn), itemSelectionChanged()
    • 典型用法: 数据表展示(如数据库查询结果)、电子表格应用、属性编辑器。

5. 容器控件

  • QGroupBox

    • 功能: 分组框。提供一个带标题的边框,用于将逻辑上相关的控件组织在一起,提升界面可读性。
    • 关键属性:
      • title: 分组框的标题文本。
      • checkable: 标题前是否显示一个复选框。如果可勾选,状态由 checked 属性控制。
      • checked: 如果 checkabletrue,表示分组框是否被选中(启用)。分组框内的子控件会随其启用/禁用状态改变。
      • alignment: 标题文本的对齐方式 (Qt::Alignment)。
    • 常用信号: toggled(bool checked) (如果可勾选,状态改变时发出)。
    • 典型用法: 将表单中的个人信息、设置选项等分组。
      QGroupBox *infoGroup = new QGroupBox("个人信息", this);
      QVBoxLayout *infoLayout = new QVBoxLayout(infoGroup); // 为分组框创建布局
      infoLayout->addWidget(new QLabel("姓名:", infoGroup));
      infoLayout->addWidget(new QLineEdit(infoGroup));
      // ... 添加其他个人信息控件
      
  • QTabWidget

    • 功能: 选项卡控件。提供多个标签页 (QWidget),用户可以通过点击标签在不同的页面间切换,节省屏幕空间。
    • 关键属性/方法:
      • currentIndex(): 当前活动页的索引。
      • currentWidget(): 当前活动页的 QWidget 指针。
      • addTab(QWidget *page, const QString &label): 添加一个新标签页。
      • insertTab(int index, QWidget *page, const QString &label): 在指定位置插入标签页。
      • removeTab(int index): 移除标签页。
      • setTabText(int index, const QString &text): 设置标签文本。
      • setTabIcon(int index, const QIcon &icon): 设置标签图标。
      • tabPosition(): 标签位置 (QTabWidget::North, South, West, East)。
    • 常用信号: currentChanged(int index) (当前活动页改变时发出)。
    • 典型用法: 多页面设置对话框、具有不同功能模块的主界面(如聊天窗口的“联系人”/“群聊”/“文件”标签)。
      QTabWidget *tabWidget = new QTabWidget(this);QWidget *page1 = new QWidget;
      // 为page1添加布局和控件...
      tabWidget->addTab(page1, "基本设置");QWidget *page2 = new QWidget;
      // 为page2添加布局和控件...
      tabWidget->addTab(page2, "高级设置");connect(tabWidget, &QTabWidget::currentChanged, this, &MyWidget::onTabChanged);
      
  • QStackedWidget

    • 功能: 堆叠控件。类似于 QTabWidget,管理多个页面 (QWidget),但没有内置的标签切换界面。你需要通过其他控件(如按钮、列表、QTabWidget 的标签但不显示内容区)来控制当前显示哪个页面 (setCurrentIndex(int index), setCurrentWidget(QWidget *widget))。
    • 关键方法: addWidget(QWidget *), insertWidget(int index, QWidget *), removeWidget(QWidget *), currentIndex(), currentWidget(), setCurrentIndex(int), setCurrentWidget(QWidget *), count().
    • 常用信号: currentChanged(int index).
    • 典型用法: 向导界面(上一步/下一步切换页面)、根据菜单选择动态改变主内容区、实现自定义标签切换效果的界面(比 QTabWidget 更灵活)。
  • QFrame

    • 功能: 基础框架控件。它本身没有太多内容,主要用于:
      1. 视觉分隔: 通过设置边框样式 (frameShape, frameShadow) 和线条宽度 (lineWidth) 在界面上绘制线条或框,将不同区域分隔开。
      2. 容器: 作为其他控件的容器,特别是当你需要一个有特定边框的容器时。
    • 关键属性:
      • frameShape: 边框形状 (QFrame::NoFrame, Box, Panel, StyledPanel, HLine, VLine, WinPanel)。
      • frameShadow: 边框阴影 (QFrame::Plain, Raised, Sunken)。
      • lineWidth: 边框线宽。
      • midLineWidth: 对于某些形状(如 Panel),中间线的宽度。
    • 典型用法:
      // 创建一个水平分隔线
      QFrame *hline = new QFrame(this);
      hline->setFrameShape(QFrame::HLine);
      hline->setFrameShadow(QFrame::Sunken);// 创建一个带凸起边框的容器
      QFrame *container = new QFrame(this);
      container->setFrameShape(QFrame::StyledPanel);
      container->setFrameShadow(QFrame::Raised);
      QVBoxLayout *contLayout = new QVBoxLayout(container);
      // ... 在container中添加其他控件
      

6. 其他常用控件

  • QDateEdit / QTimeEdit / QDateTimeEdit
    • 功能: 日期、时间、日期时间选择器。提供方便的日历弹出框或上下箭头选择。
    • 关键属性: date, time, dateTime, minimumDate/Time/DateTime, maximumDate/Time/DateTime, displayFormat (设置显示格式字符串)。
    • 常用信号: dateChanged(const QDate &date), timeChanged(const QTime &time), dateTimeChanged(const QDateTime &datetime).
  • QDial
    • 功能: 圆形刻度盘控件。常用于模拟设备的旋钮控制(如音量旋钮)。
    • 关键属性: value, minimum, maximum, singleStep, pageStep, notchesVisible, notchTarget
    • 常用信号: valueChanged(int value).
  • QLCDNumber
    • 功能: 模拟 LCD 数字显示屏。用于显示数字(整数或浮点数),具有类似计算器或电子表的显示效果。
    • 关键属性: digitCount, intValue, value (double), smallDecimalPoint, mode (Hex, Dec, Oct, Bin), segmentStyle (Outline, Filled, Flat).
    • 常用方法: display(int num), display(double num).

三、总结与进阶建议:

  1. 掌握基础: 熟练使用上述基础控件是 Qt GUI 开发的核心。理解它们的属性、信号和典型应用场景。
  2. 拥抱布局: 务必使用布局管理器 (QVBoxLayout, QHBoxLayout, QGridLayout, QFormLayout) 来排列控件。这是创建可伸缩、适应性强界面的关键。避免使用 setGeometry 进行绝对定位,除非有非常特殊的、静态的需求。
  3. 活用信号与槽: 这是 Qt 的灵魂。将控件的信号(如按钮的 clicked(),输入框的 textChanged())连接到你的业务逻辑槽函数上,实现交互响应。使用 connect 函数建立连接。
  4. 探索模型/视图 (Model/View): 对于复杂的数据展示(列表、树、表格),理解 QListView, QTreeView, QTableViewQAbstractItemModel 子类 (QStandardItemModel, QFileSystemModel 等) 的配合使用是进阶之路。它提供了数据与视图分离、更高效处理大数据集的能力。
  5. 样式定制: 使用 Qt 样式表 (QSS) 可以深度定制控件的外观,使其符合你的应用程序主题或品牌要求。语法类似于 CSS。

通过学习和实践这些基础控件,你将能够构建出功能丰富、交互流畅的 Qt 桌面应用程序界面。祝你学习顺利!

http://www.xdnf.cn/news/1321039.html

相关文章:

  • Spring Boot 实用小技巧:多级缓存(Caffeine + Redis)- 第545篇
  • 民俗博物馆如何选择数字技术?交互体验如何创新文化传播方式?
  • mac查看nginx安装位置 mac nginx启动、重启、关闭
  • bun + vite7 的结合,孕育的 Robot Admin 【靓仔出道】(十三)
  • Git+Jenkins 基本使用
  • Windows桌面自动化的革命性突破:深度解析Windows-MCP.Net Desktop模块的技术奥秘
  • 问答社区运营优化:cpolar 提升 Answer 平台远程访问速度方案
  • AI 对话高效输入指令攻略(五):AI+PicDoc文生图表工具:解锁高效图表创作新范式
  • 软考 系统架构设计师系列知识点之杂项集萃(129)
  • LeetCode 45.跳跃游戏II:贪心策略下的最少跳跃次数求解
  • 机器学习的多种算法
  • 【数据集】全球大气监测计划(GAW)简介
  • AR技术为消防救援装上“智能透视眼”
  • 算法-决策树
  • Kafka的ISR、OSR、AR详解
  • 特赞内容运营解决方案,AI重构品牌内容价值链
  • 普通用户使用docker命令
  • 信创产业:从技术突围到生态重构的强国之路
  • 华曦达港股IPO观察丨以创新研发为笔,构建AI Home智慧生活新蓝图
  • Apache IoTDB集群部署实战:1C2D架构的高性能时序数据库搭建与优化指南
  • 静配中心配药智能化:基于高并发架构的Go语言实现
  • 十年回望:Vue 与 React 的设计哲学、演进轨迹与生态博弈
  • fit函数
  • Topaz Gigapixel AI:图片无损放大,细节增强的利器
  • LeetCode100 -- Day1
  • 【Linux指南】gcc/g++编译器:从源码到可执行文件的全流程解析
  • leetcode面试笔试-双指针题型总结
  • linux下查看 UDP Server 端口的启用情况
  • Redis 客户端接口介绍
  • Redis——基础篇