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