QFileDialog自定义样式设置SetStytlesheet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 | void QStockView::SlotOutputExcel() { QFileDialog fileDilog; fileDilog.setOption(QFileDialog::DontUseNativeDialog, true ); const QString g_FileDialogQSS = " .QFileDialog " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QListView " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QListView::item " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QComboBox QAbstractItemView " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QComboBox " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QComboBox QAbstractItemView ::item " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QLineEdit " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QFrame " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QSidebar " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QLabel " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QTreeView#treeView " " { " " background-color: #151515; " " color: #FFFFFF; " " } " " .QPushButton " " { " " background-color: #151515; " " border: 1px solid #414141; " " border-radius: 3px; " " color: #FFFFFF; " " } " ; fileDilog.setStyleSheet(g_FileDialogQSS); fileDilog.setAcceptMode(QFileDialog::AcceptSave); fileDilog.setLabelText(QFileDialog::Accept, tr( "保存" )); // 设置对应控件的文字 fileDilog.setLabelText(QFileDialog::LookIn, (u8 "查看" )); // 设置对应控件的文字 fileDilog.setLabelText(QFileDialog::FileName, (u8 "文件名" )); // 设置对应控件的文字 fileDilog.setLabelText(QFileDialog::FileType, (u8 "文件类型" )); // 设置对应控件的文字 fileDilog.setLabelText(QFileDialog::Reject, (u8 "取消" )); // 设置对应控件的文字 fileDilog.setWindowTitle(QString(u8 "保存数据到Excel" )); fileDilog.setNameFilter(tr(u8 "file(*.xlsx)" )); if (fileDilog.exec() != QDialog::Accepted) { return ; } // HRESULT retval = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);和这个冲突无法打开选择框 //QString filePath = fileDilog.getSaveFileName(NULL, tr("保存到Excel"), m_defaultPath, tr("*.xlsx"),nullptr, QFileDialog::DontUseNativeDialog); QStringList selectfiles = fileDilog.selectedFiles(); if (selectfiles.size() == 0) { return ; } QString filePath = selectfiles[0]; //!!!判空处理 if (filePath.isEmpty()) return ; m_defaultPath = QFileInfo(filePath).absoluteDir().absolutePath(); QAxObject excel( "Excel.Application" ); //!!!获取工作簿集合 QAxObject*workbooks = excel.querySubObject( "WorkBooks" ); //!!!新建工作簿 workbooks->querySubObject( "Add" ); //!!!获取当前工作簿 QAxObject*workbook = excel.querySubObject( "ActiveWorkBook" ); if (workbook == nullptr) return ; //!!!获取表页对象 QAxObject*worksheets = workbook->querySubObject( "WorkSheets" ); //!!!获取第一页 QAxObject*worksheet = worksheets->querySubObject( "Item(int)" , 1); //!!!获取权限 QAxObject*usedrange = worksheet->querySubObject( "Usedrange" ); //先保存表头 QString headItem = "" ; for ( int j = 1; j < ui.tableWidgetHis->columnCount(); j++) { headItem = ui.tableWidgetHis->horizontalHeaderItem(j)->text(); worksheet->querySubObject( "Cells(int, int)" , 1, j )->dynamicCall( "setValue(const QVariant&)" , headItem.toStdString().c_str()); } //!!!遍历获取数据将数据写入文件 for ( int i = 0; i < ui.tableWidgetHis->rowCount(); i++) { QTableWidgetItem* pCheck = ui.tableWidgetHis->item(i, 0); if (pCheck!=NULL) { if (pCheck->checkState()==Qt::Checked) { for ( int j = 1; j < ui.tableWidgetHis->columnCount(); j++) { //worksheet->querySubObject("Cells(int, int)", i + 1, j+1)->dynamicCall("SetNumberFormatLocal(const QVariant&)", "@"); worksheet->querySubObject( "Cells(int, int)" , i + 2, j )->dynamicCall( "setValue(const QVariant&)" , ui.tableWidgetHis->item(i, j)->text().toStdString().c_str()); } } } } //!!!保存文件 workbook->dynamicCall( "SaveAs(const QString&)" , QDir::toNativeSeparators(filePath)); workbooks->dynamicCall( "Close()" ); excel.dynamicCall( "Quit()" ); WaringDialog diag( "提示" , "保存数据到Excel成功!" ); diag.setPicType(0); diag.exec(); } |
void QStockView::SlotOutputExcel(){QFileDialog fileDilog;fileDilog.setOption(QFileDialog::DontUseNativeDialog, true);const QString g_FileDialogQSS =" .QFileDialog "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QListView "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QListView::item "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QComboBox QAbstractItemView "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QComboBox "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QComboBox QAbstractItemView ::item "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QLineEdit "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QFrame "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QSidebar "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QLabel "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QTreeView#treeView "" { "" background-color: #151515; "" color: #FFFFFF; "" } "" .QPushButton "" { "" background-color: #151515; "" border: 1px solid #414141; "" border-radius: 3px; "" color: #FFFFFF; "" } ";fileDilog.setStyleSheet(g_FileDialogQSS);fileDilog.setAcceptMode(QFileDialog::AcceptSave);fileDilog.setLabelText(QFileDialog::Accept, tr("保存")); // 设置对应控件的文字fileDilog.setLabelText(QFileDialog::LookIn, (u8"查看")); // 设置对应控件的文字fileDilog.setLabelText(QFileDialog::FileName, (u8"文件名")); // 设置对应控件的文字fileDilog.setLabelText(QFileDialog::FileType, (u8"文件类型")); // 设置对应控件的文字fileDilog.setLabelText(QFileDialog::Reject, (u8"取消")); // 设置对应控件的文字fileDilog.setWindowTitle(QString(u8"保存数据到Excel"));fileDilog.setNameFilter(tr(u8"file(*.xlsx)"));if (fileDilog.exec() != QDialog::Accepted){return;}//HRESULT retval = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);和这个冲突无法打开选择框//QString filePath = fileDilog.getSaveFileName(NULL, tr("保存到Excel"), m_defaultPath, tr("*.xlsx"),nullptr, QFileDialog::DontUseNativeDialog);QStringList selectfiles = fileDilog.selectedFiles();if (selectfiles.size() == 0){return;}QString filePath = selectfiles[0];//!!!判空处理if (filePath.isEmpty())return;m_defaultPath = QFileInfo(filePath).absoluteDir().absolutePath();QAxObject excel("Excel.Application");//!!!获取工作簿集合QAxObject*workbooks = excel.querySubObject("WorkBooks");//!!!新建工作簿workbooks->querySubObject("Add");//!!!获取当前工作簿QAxObject*workbook = excel.querySubObject("ActiveWorkBook");if (workbook == nullptr)return;//!!!获取表页对象QAxObject*worksheets = workbook->querySubObject("WorkSheets");//!!!获取第一页QAxObject*worksheet = worksheets->querySubObject("Item(int)", 1);//!!!获取权限QAxObject*usedrange = worksheet->querySubObject("Usedrange");//先保存表头QString headItem = "";for (int j = 1; j < ui.tableWidgetHis->columnCount(); j++){headItem = ui.tableWidgetHis->horizontalHeaderItem(j)->text();worksheet->querySubObject("Cells(int, int)", 1, j )->dynamicCall("setValue(const QVariant&)", headItem.toStdString().c_str());}//!!!遍历获取数据将数据写入文件for (int i = 0; i < ui.tableWidgetHis->rowCount(); i++){QTableWidgetItem* pCheck = ui.tableWidgetHis->item(i, 0);if (pCheck!=NULL){if (pCheck->checkState()==Qt::Checked){for (int j = 1; j < ui.tableWidgetHis->columnCount(); j++){//worksheet->querySubObject("Cells(int, int)", i + 1, j+1)->dynamicCall("SetNumberFormatLocal(const QVariant&)", "@");worksheet->querySubObject("Cells(int, int)", i + 2, j )->dynamicCall("setValue(const QVariant&)", ui.tableWidgetHis->item(i, j)->text().toStdString().c_str());}}}}//!!!保存文件workbook->dynamicCall("SaveAs(const QString&)", QDir::toNativeSeparators(filePath));workbooks->dynamicCall("Close()");excel.dynamicCall("Quit()");WaringDialog diag("提示", "保存数据到Excel成功!");diag.setPicType(0);diag.exec();
}
自己开发了一个股票智能分析软件,功能很强大,需要的关注微信公众号:QStockView
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix