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();
}
posted @   一字千金  阅读(360)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示