QTreeWidget

当然,我们可以为你的代码添加详细的注释,以便更好地理解每一部分的作用。下面是带有详细注释的代码:

cpp 复制代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QVBoxLayout> // 包含 QVBoxLayout 类,用于布局管理

// MainWindow 构造函数
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent), // 初始化基类 QMainWindow
    ui(new Ui::MainWindow) // 初始化 UI 设计器生成的类
{
    ui->setupUi(this); // 设置 UI

#if 0
    // 使用 QStringList 的 append 方法设置表头标签
    QStringList labels;
    labels.append("姓名");
    labels.append("年龄");
    labels.append("职业");

    // 设置表头标签
    ui->treeWidget->setHeaderLabels(labels);

    // 创建一个新的 QTreeWidgetItem,并设置其文本
    QTreeWidgetItem *item = new QTreeWidgetItem(ui->treeWidget);
    item->setText(0, "zheng"); // 设置姓名列
    item->setText(1, "24");    // 设置年龄列
    item->setText(2, "musicplayer"); // 设置职业列

    // 将创建的项添加到 QTreeWidget 中
    ui->treeWidget->addTopLevelItem(item);

#else
    // 直接使用 QStringList 的构造函数设置表头标签
    ui->treeWidget->setHeaderLabels(QStringList() << "姓名" << "年龄" << "职业");

    // 创建一个新的 QTreeWidgetItem,并设置其文本
    ui->treeWidget->addTopLevelItem(new QTreeWidgetItem(QStringList()
                                                        << "zheng" // 姓名列
                                                        << "24"    // 年龄列
                                                        << "musicplayer")); // 职业列

#endif

    // 创建一个 QVBoxLayout 布局管理器
    QVBoxLayout *layout = new QVBoxLayout;

    // 将 QTreeWidget 添加到布局中
    layout->addWidget(ui->treeWidget);

    // 设置布局对齐方式为居中
    layout->setAlignment(Qt::AlignCenter);

    // 创建一个新的中心部件,并设置布局
    QWidget *centralWidget = new QWidget(this);
    centralWidget->setLayout(layout);

    // 设置中心部件
    setCentralWidget(centralWidget);
}

// MainWindow 析构函数
MainWindow::~MainWindow()
{
    delete ui; // 释放 UI 设计器生成的类的内存
}

代码说明

  1. 构造函数

    • 初始化基类 QMainWindow 和 UI 设计器生成的类 Ui::MainWindow
    • 调用 ui->setupUi(this) 来设置 UI。
  2. 表头标签设置

    • 使用 QStringListappend 方法或构造函数来设置表头标签。
    • 调用 ui->treeWidget->setHeaderLabels 设置 QTreeWidget 的表头。
  3. 添加顶层项

    • 创建一个新的 QTreeWidgetItem,并设置其文本。
    • 使用 addTopLevelItem 方法将新创建的项添加到 QTreeWidget 中。
  4. 布局管理

    • 创建一个 QVBoxLayout 布局管理器。
    • QTreeWidget 添加到布局中。
    • 设置布局对齐方式为居中。
    • 创建一个新的中心部件,并设置布局。
    • 设置中心部件为 MainWindow 的中心部件。
  5. 析构函数

    • 释放 UI 设计器生成的类的内存。

居中显示文本

如果你想让 QTreeWidget 中的文本居中显示,可以在添加项之后设置每一列的文本对齐方式:

cpp 复制代码
#if 0
// ...
#else
// ...

// 创建一个新的 QTreeWidgetItem,并设置其文本
QTreeWidgetItem *item = new QTreeWidgetItem(QStringList()
                                           << "zheng"
                                           << "24"
                                           << "musicplayer");

// 设置每一列的文本对齐方式为居中
for (int i = 0; i < item->columnCount(); ++i) {
    item->setTextAlignment(i, Qt::AlignCenter);
}

// 将创建的项添加到 QTreeWidget 中
ui->treeWidget->addTopLevelItem(item);

#endif

通过这种方式,你可以确保 QTreeWidget 中的所有文本都居中显示。

相关推荐
iFlow_AI8 小时前
iFlow CLI 实战案例|生产级 Agent 聊天应用——Chatbot
交互·ai编程·命令模式·iflow·iflow cli·iflowcli
道19932 天前
QT 工程中快速实现中英文切换(含动态切换)
命令模式
fpl11163 天前
npm :无法加载文件 D:\...\nodejs\npm.ps1,因为在此系统上禁止运行脚本
前端·vscode·npm·node.js·命令模式
ZouZou老师3 天前
C++设计模式之命令模式:以家具生产为例
c++·设计模式·命令模式
雨中飘荡的记忆8 天前
设计模式之命令模式详解
设计模式·命令模式
小生不才yz9 天前
设计模式 - 命令模式
设计模式·命令模式
开心香辣派小星10 天前
23种设计模式-13命令模式
设计模式·命令模式
太阳以西阿10 天前
【VTK 】 02 锥体旋转起来获取到相机位置
数码相机·命令模式
ZHE|张恒14 天前
设计模式(十八)命令模式 —— 将操作封装成对象,实现撤销、队列等扩展
设计模式·命令模式
q***188416 天前
SpringDoc和Swagger使用
命令模式