本文摘要:(由ai生成)
Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TableView与TreeView组件联动的常用方法及灵活运用。


model = new QStandardItemModel(4,5, this);selection = new QItemSelectionModel(model);
ui->tableView->setModel(model);ui->tableView->setSelectionModel(selection);ui->treeView->setModel(model);ui->treeView->setSelectionModel(selection);
QStringList HeaderList;HeaderList << "序号" << "姓名" <<"年龄" << "性别" << "婚否";model->setHorizontalHeaderLabels(HeaderList);QStringList DataList[3];QStandardItem *Item;DataList[0] <<"1001" << "admin" << "24" <<"男" << "是";DataList[1] <<"1002" << "lyshark" << "23" <<"男" << "否";DataList[2] <<"1003" << "lucy" << "37" <<"女" << "是";
int Array_Length =DataList->length(); // 获取每个数组中元素数int Array_Count = sizeof(DataList)/ sizeof(DataList[0]); // 获取数组个数for(int x=0; x<Array_Count; x++){for(int y=0; y<Array_Length; y++){Item = newQStandardItem(DataList[x][y]);model->setItem(x, y, Item);}}
voidMainWindow::on_pushButton_clicked(){// //模态对话框,动态创建,用过后删除DialogSize *ptr = new DialogSize(this); // 创建一个对话框Qt::WindowFlags flags = ptr->windowFlags(); // 需要获取返回值ptr->setWindowFlags(flags | Qt::MSWindowsFixedSizeDialogHint); // 设置对话框固定大小ptr->setRowColumn(model->rowCount(),model->columnCount()); // 对话框数据初始化int ref = ptr->exec(); // 以模态方式显示对话框if (ref==QDialog::Accepted) // OK键被按下,对话框关闭{// 当BtnOk被按下时,则设置对话框中的数据int cols=ptr->columnCount();model->setColumnCount(cols);int rows=ptr->rowCount();model->setRowCount(rows);}// 最后删除释放对话框句柄delete ptr;}
DialogSize::DialogSize(QWidget*parent) :QDialog(parent),ui(new Ui::DialogSize){ui->setupUi(this);}DialogSize::~DialogSize(){delete ui;}// 主窗体调用获取当前行数int DialogSize::rowCount(){return ui->spinBoxRow->value();}// 主窗体调用获取当前列数int DialogSize::columnCount(){return ui->spinBoxColumn->value();}// 设置主窗体中的TableView行数与列数void DialogSize::setRowColumn(introw, int column){ui->spinBoxRow->setValue(row);ui->spinBoxColumn->setValue(column);}
voidMainWindow::on_pushButton_2_clicked(){DialogHead *ptr = new DialogHead(this);Qt::WindowFlags flags = ptr->windowFlags();ptr->setWindowFlags(flags | Qt::MSWindowsFixedSizeDialogHint);// 如果表头列数变化,则从新初始化if(ptr->headerList().count() != model->columnCount()){QStringList strList;// 获取现有的表头标题for (inti=0;i<model->columnCount();i++){strList.append(model->headerData(i,Qt::Horizontal,Qt::DisplayRole).toString());}// 用于对话框初始化显示ptr->setHeaderList(strList);}// 调用弹窗int ref = ptr->exec();if(ref==QDialog::Accepted){// 获取对话框上修改后的StringListQStringListstrList=ptr->headerList();// 设置模型的表头标题model->setHorizontalHeaderLabels(strList);}delete ptr;}
DialogHead::DialogHead(QWidget*parent) :QDialog(parent),ui(new Ui::DialogHead){ui->setupUi(this);model = new QStringListModel;ui->listView->setModel(model);}DialogHead::~DialogHead(){delete ui;}// 设置当前listView中的数据voidDialogHead::setHeaderList(QStringList &headers){model->setStringList(headers);}// 返回当前的表头QStringListDialogHead::headerList(){return model->stringList();}

深圳市优飞迪科技有限公司成立于2010年,是一家专注于产品开发平台解决方案与物联网技术开发的国家级高新技术企业。
十多年来,优飞迪科技在数字孪生、工业软件尤其仿真技术、物联网技术开发等领域积累了丰富的经验,并在这些领域拥有数十项独立自主的知识产权。同时,优飞迪科技也与国际和国内的主要头部工业软件厂商建立了战略合作关系,能够为客户提供完整的产品开发平台解决方案。
优飞迪科技技术团队实力雄厚,主要成员均来自于国内外顶尖学府、并在相关领域有丰富的工作经验,能为客户提供“全心U+端到端服务”。