用C++ QT实现点击下拉框,选则后自动填写其他项

编程入门 行业动态 更新时间:2024-10-24 16:31:41

用C++ QT实现点击<a href=https://www.elefans.com/category/jswz/34/1755588.html style=下拉框,选则后自动填写其他项"/>

用C++ QT实现点击下拉框,选则后自动填写其他项

QT中下拉框

  • 一 . 读取选项内容
    • 1.1 从csv文件读取

一 . 读取选项内容

1.1 从csv文件读取

#include <QApplication>
#include <QFile>
#include <QTextStream>
#include <QVector>
#include <QStringList>
#include <QDebug>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 打开CSV文件QFile file("your_csv_file.csv");if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){qDebug() << "无法打开CSV文件";return 1;}// 创建一个QVector来存储CSV数据QVector<QStringList> csvData;// 读取并解析CSV文件QTextStream in(&file);while (!in.atEnd()){QString line = in.readLine();QStringList fields = line.split(",");// 将CSV行数据添加到QVectorcsvData.append(fields);}// 输出CSV数据for (const QStringList &row : csvData){qDebug() << row.join(", ");}// 关闭文件file.close();return app.exec();
}

从excel中读取

#include <QApplication>
#include <QWidget>
#include <QTableWidget>
#include <QAxObject>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建一个Qt应用程序QWidget window;window.setWindowTitle("读取Excel文件");// 创建一个QTableWidget来显示Excel数据QTableWidget *tableWidget = new QTableWidget(&window);// 创建QAxObject以连接到Excel应用程序QAxObject excel("Excel.Application", &window);excel.setProperty("Visible", false); // 使Excel不可见// 打开Excel工作簿QAxObject *workbooks = excel.querySubObject("Workbooks");QAxObject *workbook = workbooks->querySubObject("Open(const QString&)", "your_excel_file.xlsx");if (workbook){// 获取第一个工作表QAxObject *worksheets = workbook->querySubObject("Worksheets");QAxObject *worksheet = worksheets->querySubObject("Item(int)", 1);if (worksheet){// 获取行数和列数int rowCount = worksheet->property("UsedRange").querySubObject("Rows")->property("Count").toInt();int columnCount = worksheet->property("UsedRange").querySubObject("Columns")->property("Count").toInt();// 设置表格的行数和列数tableWidget->setRowCount(rowCount);tableWidget->setColumnCount(columnCount);// 读取Excel数据并填写到表格中for (int row = 1; row <= rowCount; ++row){for (int col = 1; col <= columnCount; ++col){QAxObject *cell = worksheet->querySubObject("Cells(int, int)", row, col);QString cellData = cell->dynamicCall("Value()").toString();QTableWidgetItem *item = new QTableWidgetItem(cellData);tableWidget->setItem(row - 1, col - 1, item);}}// 释放工作表对象worksheet->dynamicCall("Release()");}// 释放工作簿对象workbook->dynamicCall("Close()");workbook->dynamicCall("Release()");}// 退出Excel应用程序excel.dynamicCall("Quit()");// 显示表格tableWidget->show();return app.exec();
}
auto cbox = new ComboBox();cbox->setEditable(true);m_pTableView->setIndexWidget(m_pModel->index(idx, 0), cbox);// 获取文件中的数据QFile file("D:/develop/Projects/QTPro/TMI/tmi/MaterialInfo.csv");if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {qDebug() << "无法打开CSV文件" << endl;return;}//     创建一个QVector来存储CSV数据
//        QVector<QStringList> csvData;// 读取并解析CSV文件QTextStream in(&file);cbox->clear();while (!in.atEnd()) {QString line = in.readLine();QStringList fields = line.split(",");cbox->addItem(fields[0]);// 将CSV行数据添加到QVector//        csvData.append(fields);}

更多推荐

用C++ QT实现点击下拉框,选则后自动填写其他项

本文发布于:2023-12-03 20:41:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657424.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:下拉框   QT   选则后

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!