Qt实践录:常见控件操作示例2

继前篇,本文继续记录QT常见控件的操作示例。包括:QProgressBar 等。

QProgressBar

设置范围及初始值
    ui->progressBar->setRange(0, 100);
    ui->progressBar->setValue(0);
    
使用示例:
    for (int i = 0; i < 100; i++)
    {
        ui->progressBar->setValue(i+1);

        // 业务操作,如读取文件,发送数据等
        // 延时示例
        for (int j = 0; j < 100000; j++)
            for (int k = 0; k < 100; k++);
    }

列表QListView

相关头文件(实际上,其它的列表也需要使用):

#include <QStringListModel>
#include <QStandardItemModel>
#include <QModelIndex>

使用示例:

    QStringListModel *Model = NULL;
    QStandardItemModel *ItemModel = NULL;

    ItemModel = new QStandardItemModel(this);

    QStringList lst;
    lst << "foo" << "bar" << "123" << "hello world";

    QList<QStandardItem *> items;

    foreach (QString itm, lst)
    {
        QStandardItem *item = new QStandardItem(itm);
        items.push_back(item);
        //ItemModel->appendRow(item);
        //ItemModel->appendColumn(item);
    }
    ItemModel->appendColumn(items);

    ui->listView->setModel(ItemModel);
    // 复杂的应用待议

表格列表QTableView

使用示例:


    QStandardItemModel* model = new QStandardItemModel(5, 3, this);
    ui->tableView->setModel(model);

    // 头部
    QStringList headList;
    headList << "序号" << "姓名" << "年龄";
    for (int i = 0; i < headList.size(); i++)
    {
        model->setHeaderData(i, Qt::Horizontal, headList.at(i));
        ui->tableView->setColumnWidth(i, 40); // 宽度
    }

    // 序号
    for (int i = 0; i < 5; i++)
    {
        QStandardItem *item = new QStandardItem(QString::number(i+1));
        model->setItem(i, 0, item);
        model->item(i, 0)->setForeground(QBrush(QColor(255, 0, 0)));
    }

    // 数据
    model->setItem(0, 1, new QStandardItem("Jim"));
    model->setItem(0, 2, new QStandardItem("35"));
    model->setItem(1, 1, new QStandardItem("Tom"));
    model->setItem(1, 2, new QStandardItem("32"));

    // 隔一行变色,用以区分
    ui->tableView->setAlternatingRowColors(true);

树形列表QTreeView

使用示例:

    QStandardItemModel* model = new QStandardItemModel(ui->treeView);
    ui->treeView->setModel(model);

    // 头部
    QStringList headList;
    headList << "树形列表";
    model->setHorizontalHeaderLabels(headList);

    QStandardItem* itemProject = new QStandardItem("项目");
    model->appendRow(itemProject);

    QStandardItem* itemChild = new QStandardItem("子项");
    itemProject->appendRow(itemChild);

    QStandardItem* itemChild11 = new QStandardItem("子子项");
    itemChild->appendRow(itemChild11);

    QStandardItem* itemChild2 = new QStandardItem("子项2");
    itemProject->appendRow(itemChild2);
发布了481 篇原创文章 · 获赞 244 · 访问量 110万+

猜你喜欢

转载自blog.csdn.net/subfate/article/details/104144623