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 中的所有文本都居中显示。

相关推荐
新手村领路人15 小时前
qt5.14.2 opencv调用摄像头显示在label
qt·opencv·命令模式
xiaolin03331 天前
【设计模式】- 行为型模式1
设计模式·状态模式·责任链模式·策略模式·命令模式·模板方法模式·行为型模式
敲代码的 蜡笔小新3 天前
【行为型之命令模式】游戏开发实战——Unity可撤销系统与高级输入管理的架构秘钥
unity·设计模式·架构·命令模式
范纹杉想快点毕业3 天前
以项目的方式学QT开发(三)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
c语言·开发语言·c++·qt·mysql·算法·命令模式
CYRUS STUDIO7 天前
adb 实用命令汇总
android·adb·命令模式·工具
智想天开10 天前
15.命令模式:思考与解读
设计模式·命令模式
常某某的好奇心13 天前
命令模式(Command Pattern)
命令模式
Cuit小唐17 天前
Qt二维码demo
开发语言·qt·命令模式
碎梦归途20 天前
23种设计模式-行为型模式之命令模式(Java版本)
java·开发语言·jvm·设计模式·命令模式·行为型模式
冰茶_22 天前
C#中常见的设计模式
java·开发语言·microsoft·设计模式·微软·c#·命令模式