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

相关推荐
牛奶咖啡131 天前
学习设计模式《十二》——命令模式
学习·设计模式·命令模式·队列请求·宏命令·可撤销恢复操作·参数化配置
熙客7 天前
行为型:命令模式
命令模式
季鸢10 天前
Java设计模式之命令模式详解
java·设计模式·命令模式
小小数媒成员10 天前
命令模式,观察者模式,状态模式,享元模式
观察者模式·策略模式·命令模式
Echo``11 天前
8:OpenCV—仿射变换和坐标映射
开发语言·图像处理·人工智能·qt·opencv·计算机视觉·命令模式
暴躁哥12 天前
深入理解设计模式之命令模式
设计模式·命令模式
什么半岛铁盒17 天前
sockaddr结构体详解
编辑器·vim·命令模式
@Turbo@20 天前
【QT】一个界面中嵌入其它界面(三)
开发语言·qt·命令模式
干货日记20 天前
Qt与OpenGL绘制大全(加载obj模型文件、点、线、面、立方体、圆等)
开发语言·qt·命令模式
新手村领路人22 天前
qt5.14.2 opencv调用摄像头显示在label
qt·opencv·命令模式