下拉框,选则后自动填写其他项"/>
用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实现点击下拉框,选则后自动填写其他项
发布评论