網站首頁 編程語言 正文
文章目錄
總結一些常用表的用法
QListWidget
的用法
void TableWidget::initListWidget()
{
//插入方法1
ui->listWidget->addItem("Program Files");
//插入方法2
QListWidgetItem* pInsertItem = new QListWidgetItem();
pInsertItem->setText("Program Files(x64)");
ui->listWidget->insertItem(1,pInsertItem);
ui->listWidget->insertItem(2,"Program Files(x64)副本");
ui->listWidget->insertItems(3,QStringList()<<
QStringLiteral("Program Files(x64)副本1")<<
QStringLiteral("Program Files(x64)副本2"));
//插入方法3
ui->listWidget->addItem("ProgramData");
QListWidgetItem* pAdditem = new QListWidgetItem();
pAdditem->setText("ProgramData副本");
ui->listWidget->addItem(pAdditem);
ui->listWidget->addItems(QStringList()
<< QStringLiteral("ProgramData副本1")
<< QStringLiteral("ProgramData副本2")
<< QStringLiteral("ProgramData副本3"));
//設置圖標
pInsertItem->setIcon(QIcon(":/image/folder.ico"));
pAdditem->setIcon(QIcon(":/image/folder.ico"));
//設置勾選狀態
pInsertItem->setCheckState(Qt::Checked);
pAdditem->setCheckState(Qt::Unchecked);
}
QListView
的用法
void TableWidget::initListView()
{
QStandardItemModel* pModel = new QStandardItemModel();
//插入方法1
QStandardItem* pItem = new QStandardItem("Program Files");
pModel->appendRow(pItem);
//插入方法2
pItem = new QStandardItem();
pItem->setText("Program Files(x64)");
pItem->setIcon(QIcon(":/image/folder.ico"));
pItem->setCheckState(Qt::Checked);
pItem->setCheckable(true);//和QListWidget不同,需要手動開啟,默認是不可選的
pModel->insertRow(1,pItem);
//設置model
ui->listView->setModel(pModel);
}
QTableWidget
的用法
void TableWidget::initTableWidget()
{
#if 1
//方式1
QStringList hearList;
hearList<<QStringLiteral("編號")<<QStringLiteral("類型")<<QStringLiteral("距離")<<QStringLiteral("狀態");
//設置列數
ui->tableWidget->setColumnCount(4);
//添加表頭數據
ui->tableWidget->setHorizontalHeaderLabels(hearList);
//隱藏列表頭
ui->tableWidget->verticalHeader()->setHidden(true);
//自適應
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
for(int i = 0; i < 5; i++)
{
int nRow = ui->tableWidget->rowCount();
ui->tableWidget->insertRow(nRow);
ui->tableWidget->setItem(nRow,0,new QTableWidgetItem("12"));
ui->tableWidget->setItem(nRow,1,new QTableWidgetItem("12"));
ui->tableWidget->setItem(nRow,2,new QTableWidgetItem("12"));
ui->tableWidget->setItem(nRow,3,new QTableWidgetItem("12"));
ui->tableWidget->item(nRow,0)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(nRow,1)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(nRow,2)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(nRow,3)->setTextAlignment(Qt::AlignCenter);
}
#else
//方式2
//設置列數
ui->tableWidget->setColumnCount(4);
ui->tableWidget->setHorizontalHeaderItem(0,new QTableWidgetItem("編號"));
ui->tableWidget->setHorizontalHeaderItem(1,new QTableWidgetItem("類型"));
ui->tableWidget->setHorizontalHeaderItem(2,new QTableWidgetItem("距離"));
ui->tableWidget->setHorizontalHeaderItem(3,new QTableWidgetItem("狀態"));
//隱藏列表頭
ui->tableWidget->verticalHeader()->setHidden(true);
//自適應
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
for(int i = 0; i < 5; i++)
{
int nRow = ui->tableWidget->rowCount();
ui->tableWidget->insertRow(nRow);
ui->tableWidget->setItem(nRow,0,new QTableWidgetItem("12"));
ui->tableWidget->setItem(nRow,1,new QTableWidgetItem("12"));
ui->tableWidget->setItem(nRow,2,new QTableWidgetItem("12"));
ui->tableWidget->setItem(nRow,3,new QTableWidgetItem("12"));
ui->tableWidget->item(nRow,0)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(nRow,1)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(nRow,2)->setTextAlignment(Qt::AlignCenter);
ui->tableWidget->item(nRow,3)->setTextAlignment(Qt::AlignCenter);
}
#endif
}
QTableView
的用法
void TableWidget::initTableView()
{
#if 0
//方式1
QStandardItemModel* pModel = new QStandardItemModel;
QStringList hearList2;
hearList2<<QStringLiteral("商品序號")<<QStringLiteral("商品庫存")<<QStringLiteral("商品成本")<<QStringLiteral("商品售價");
//添加表頭數據
pModel->setHorizontalHeaderLabels(hearList2);
//設置列數
pModel->setColumnCount(4);
//隱藏列表頭
ui->tableView->verticalHeader()->setHidden(true);
//設置model
ui->tableView->setModel(pModel);
//自適應
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
for(int i = 0; i < 5; i++)
{
pModel->setItem(i,0,new QStandardItem("23"));
pModel->setItem(i,1,new QStandardItem("45"));
pModel->setItem(i,2,new QStandardItem("5"));
pModel->setItem(i,3,new QStandardItem("56"));
pModel->item(i,0)->setTextAlignment(Qt::AlignCenter);
pModel->item(i,1)->setTextAlignment(Qt::AlignCenter);
pModel->item(i,2)->setTextAlignment(Qt::AlignCenter);
pModel->item(i,3)->setTextAlignment(Qt::AlignCenter);
}
#else
//方式2
QStandardItemModel* pModel = new QStandardItemModel(0, 4, this);
pModel->setHeaderData(0, Qt::Horizontal, QObject::tr("商品序號"));
pModel->setHeaderData(1, Qt::Horizontal, QObject::tr("商品庫存"));
pModel->setHeaderData(2, Qt::Horizontal, QObject::tr("商品成本"));
pModel->setHeaderData(3, Qt::Horizontal, QObject::tr("商品售價"));
//設置model
ui->tableView->setModel(pModel);
//隱藏列表頭
ui->tableView->verticalHeader()->setHidden(true);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
for(int i = 0; i < 5; i++)
{
pModel->setItem(i,0,new QStandardItem("23"));
pModel->setItem(i,1,new QStandardItem("45"));
pModel->setItem(i,2,new QStandardItem("5"));
pModel->setItem(i,3,new QStandardItem("56"));
pModel->item(i,0)->setTextAlignment(Qt::AlignCenter);
pModel->item(i,1)->setTextAlignment(Qt::AlignCenter);
pModel->item(i,2)->setTextAlignment(Qt::AlignCenter);
pModel->item(i,3)->setTextAlignment(Qt::AlignCenter);
}
#endif
}
QTreeWidget
的用法
void TableWidget::initTreeWidget()
{
#if 1
//方式1
ui->treeWidget->setHeaderHidden(true);
QTreeWidgetItem *topLevel = new QTreeWidgetItem();
topLevel->setText(0, QStringLiteral("中國"));
topLevel->setCheckState(0, Qt::Checked);
topLevel->setIcon(0, QIcon(":/image/folder.ico"));
//北京
QTreeWidgetItem *pItemBJ = new QTreeWidgetItem();
pItemBJ->setText(0, QStringLiteral("北京"));
pItemBJ->setCheckState(0, Qt::Checked);
QTreeWidgetItem *file1 = new QTreeWidgetItem();
file1->setText(0, "西城區");
file1->setCheckState(0, Qt::Checked);
QTreeWidgetItem *file2 = new QTreeWidgetItem();
file2->setText(0, "海定區");
file2->setCheckState(0, Qt::Checked);
pItemBJ->addChild(file1);
pItemBJ->addChild(file2);
QTreeWidgetItem *pItemSH = new QTreeWidgetItem();
pItemSH->setText(0, QStringLiteral("上海"));
pItemSH->setCheckState(0, Qt::Checked);
QTreeWidgetItem *file3 = new QTreeWidgetItem();
file3->setText(0, "黃浦區");
file3->setCheckState(0, Qt::Checked);
pItemSH->addChild(file3);
QTreeWidgetItem *pItemSX = new QTreeWidgetItem();
pItemSX->setText(0, QStringLiteral("陜西"));
pItemSX->setCheckState(0, Qt::Checked);
QTreeWidgetItem *file4 = new QTreeWidgetItem();
file4->setText(0, "渭南市");
file4->setCheckState(0, Qt::Checked);
QTreeWidgetItem *file5 = new QTreeWidgetItem();
file5->setText(0, "咸陽市");
file5->setCheckState(0, Qt::Checked);
QTreeWidgetItem *pItemXA = new QTreeWidgetItem();
pItemXA->setText(0, "西安市");
pItemXA->setCheckState(0, Qt::Checked);
QTreeWidgetItem *file6 = new QTreeWidgetItem();
file6->setText(0, "雁塔區");
file6->setCheckState(0, Qt::Checked);
pItemXA->addChild(file6);
pItemSX->addChild(file4);
pItemSX->addChild(file5);
pItemSX->addChild(pItemXA);
QList<QTreeWidgetItem*> topLevelItemList;
topLevelItemList << pItemBJ << pItemSH << pItemSX;
topLevel->addChildren(topLevelItemList);
ui->treeWidget->addTopLevelItem(topLevel);
connect(ui->treeWidget,SIGNAL(itemChanged(QTreeWidgetItem*,int)),this,SLOT(itemChangedSlot(QTreeWidgetItem*,int)));
#else
//方式2--一般用于右鍵彈菜單
ui->treeWidget->setHeaderHidden(true);
QTreeWidgetItem* topLevel = new QTreeWidgetItem(QStringList(tr("中國")),TopCategory);
topLevel->setCheckState(0, Qt::Checked);
topLevel->setIcon(0, QIcon(":/image/folder.ico"));
//北京
QTreeWidgetItem* pItemBJ = new QTreeWidgetItem(QStringList(tr("北京")),SecondCategory);
pItemBJ->setCheckState(0, Qt::Checked);
QTreeWidgetItem* item1 = new QTreeWidgetItem(QStringList(tr("西城區")),ThirdCategory);
item1->setCheckState(0, Qt::Checked);
QTreeWidgetItem *item2 = new QTreeWidgetItem(QStringList(tr("海定區")),ThirdCategory);
item2->setCheckState(0, Qt::Checked);
pItemBJ->addChild(item1);
pItemBJ->addChild(item2);
topLevel->addChild(pItemBJ);
QTreeWidgetItem *pItemSH = new QTreeWidgetItem(QStringList(tr("上海")),SecondCategory);
pItemSH->setCheckState(0, Qt::Checked);
QTreeWidgetItem *item3 = new QTreeWidgetItem(QStringList(tr("黃浦區")),ThirdCategory);
item3->setCheckState(0, Qt::Checked);
pItemSH->addChild(item3);
topLevel->addChild(pItemSH);
QTreeWidgetItem *pItemSX = new QTreeWidgetItem(QStringList(tr("陜西省")),SecondCategory);
pItemSX->setCheckState(0, Qt::Checked);
QTreeWidgetItem *item4 = new QTreeWidgetItem(QStringList(tr("渭南市")),ThirdCategory);
item4->setCheckState(0, Qt::Checked);
pItemSX->addChild(item4);
QTreeWidgetItem *item5 = new QTreeWidgetItem(QStringList(tr("咸陽市")),ThirdCategory);
item5->setCheckState(0, Qt::Checked);
pItemSX->addChild(item5);
QTreeWidgetItem *pItemXA = new QTreeWidgetItem(QStringList(tr("西安市")),ThirdCategory);
pItemXA->setCheckState(0, Qt::Checked);
QTreeWidgetItem *item6 = new QTreeWidgetItem(QStringList(tr("雁塔區")),FourthCategory);
item6->setCheckState(0, Qt::Checked);
pItemXA->addChild(item6);
pItemSX->addChild(pItemXA);
topLevel->addChild(pItemSX);
ui->treeWidget->addTopLevelItem(topLevel);
#endif
}
QTreeView
的用法
void TableWidget::initTreeView()
{
//和QTreeWidget基本一樣----是QTreeWidget父類
QStandardItemModel* model = new QStandardItemModel(ui->treeView);
model->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("地名")<<QStringLiteral("說明"));
QStandardItem* topLevel = new QStandardItem(QStringLiteral("中國"));
topLevel->setCheckable(true);
topLevel->setIcon(QIcon(":/image/folder.ico"));
topLevel->setTristate(true);
model->appendRow(topLevel);
QStandardItem* pItemBJ = new QStandardItem(QStringLiteral("北京"));
pItemBJ->setCheckable(true);
pItemBJ->setTristate(true);
topLevel->appendRow(pItemBJ);
topLevel->setChild(pItemBJ->index().row(),1,new QStandardItem(QStringLiteral("直轄市")));
QStandardItem* item = new QStandardItem(QStringLiteral("西城區"));
item->setCheckable(true);
pItemBJ->appendRow(item);
item = new QStandardItem(QStringLiteral("海定區"));
item->setCheckable(true);
pItemBJ->appendRow(item);
QStandardItem* pItemSH = new QStandardItem(QStringLiteral("上海"));
pItemSH->setCheckable(true);
pItemSH->setTristate(true);
topLevel->appendRow(pItemSH);
topLevel->setChild(pItemSH->index().row(),1,new QStandardItem(QStringLiteral("直轄市")));
item = new QStandardItem(QStringLiteral("黃浦區"));
item->setCheckable(true);
pItemSH->appendRow(item);
QStandardItem* pItemSX = new QStandardItem(QStringLiteral("陜西省"));
pItemSX->setCheckable(true);
pItemSX->setTristate(true);
topLevel->appendRow(pItemSX);
topLevel->setChild(pItemSX->index().row(),1,new QStandardItem(QStringLiteral("省級行政區")));
item = new QStandardItem(QStringLiteral("渭南市"));
item->setCheckable(true);
pItemSX->appendRow(item);
item = new QStandardItem(QStringLiteral("咸陽市"));
item->setCheckable(true);
pItemSX->appendRow(item);
item = new QStandardItem(QStringLiteral("西安市"));
item->setCheckable(true);
item->setTristate(true);
pItemSX->appendRow(item);
QStandardItem* itemSon = new QStandardItem("雁塔區");
itemSon->setCheckable(true);
item->appendRow(itemSon);
ui->treeView->setModel(model);
connect(model,SIGNAL(itemChanged(QStandardItem*)),this,SLOT(treeItemChanged(QStandardItem*)));
}
原文鏈接:https://blog.csdn.net/qq_45893999/article/details/122520596
相關推薦
- 2022-12-10 C++實現線程同步的四種方式總結_C 語言
- 2022-09-08 Redis?Lua腳本實現ip限流示例_Redis
- 2022-04-22 electron設置最小大小和最大大小
- 2022-07-13 CMD使用技巧和常用固定語句
- 2023-02-12 基于Redis驗證碼發送及校驗方案實現_Redis
- 2022-07-06 Flutter?DateTime日期轉換的詳細使用_Android
- 2022-08-18 Go?Web編程添加服務器錯誤和訪問日志_Golang
- 2022-06-22 Python?裝飾器常用的創建方式及源碼示例解析_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支