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

相关推荐
郝学胜-神的一滴5 天前
深入解析C++命令模式:设计原理与实际应用
开发语言·c++·程序人生·软件工程·命令模式
紫荆鱼11 天前
设计模式-命令模式(Command)
c++·后端·设计模式·命令模式
杯莫停丶14 天前
设计模式之:命令模式
设计模式·命令模式·1024程序员节·活动勋章
1379号监听员_15 天前
嵌入式软件架构--显示界面架构(工厂流水线模型,HOME界面,命令界面)
stm32·单片机·架构·命令模式
太过平凡的小蚂蚁18 天前
解耦的艺术:深入理解设计模式之命令模式
设计模式·命令模式
序属秋秋秋20 天前
《Linux系统编程之入门基础》【Linux基础 理论+命令】(上)
linux·运维·服务器·ubuntu·centos·命令模式
路明非12621 天前
QT界面实现2
命令模式
金涛031922 天前
QT-day2,信号和槽
开发语言·qt·命令模式
笨手笨脚の1 个月前
设计模式-命令模式
设计模式·命令模式·行为型设计模式
web前端神器1 个月前
webpack,vite,node等启动服务时运行一段时间命令窗口就卡住
命令模式·命令