Qt practice record: Common Control Operation Example 2

Following the prequel, we continue to record QT common example of the operation of the control. Including: QProgressBar and so on.

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++);
    }

List QListView

Related header files (in fact, other lists also need to use):

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

Example of use:

    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);
    // 复杂的应用待议

List of Tables QTableView

Example of use:


    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);

Treelist QTreeView

Example of use:

    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);
Published 481 original articles · won praise 244 · Views 1.1 million +

Guess you like

Origin blog.csdn.net/subfate/article/details/104144623