首页 > 其他分享 >QFileDialog自定义样式设置SetStytlesheet

QFileDialog自定义样式设置SetStytlesheet

时间:2024-04-04 22:55:56浏览次数:24  
标签:自定义 SetStytlesheet color QFileDialog background fileDilog 151515 FFFFFF

 

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();
}

标签:自定义,SetStytlesheet,color,QFileDialog,background,fileDilog,151515,FFFFFF
From: https://www.cnblogs.com/bclshuai/p/18115080

相关文章

  • Qt自定义控件之Battery电池控件
    文章目录前言一、BasicBattery二、Battery控件三、效果总结前言在Qt应用程序开发中,自定义控件是一种常见的需求,开发者经常需要根据特定的需求创建定制化的控件来增强用户界面的交互性和美观性。Battery电池控件是一种常见的自定义控件,用于显示设备的电池状态。通过B......
  • TreeSet自定义对象compareTo(Object o)方法
    java小白,最近学到TreeSet,我们都知道在存储自定义对象时,需要使用Comparable或使用Comparator存储。刚刚碰到这样一段代码。publicclassPersonimplementsComparable{intage;Stringname;Person(intage,Stringname){this.age=age;th......
  • 中间件 ZK分布式专题与Dubbo微服务入门 6-12 acl -自定义用户权限
    0课程地址https://coding.imooc.com/lesson/201.html#mid=12728 1重点关注1.1本节内容通过schema为digest密文的形式设置用户权限,调用权限 1.2关键代码//自定义用户认证访问List<ACL>acls=newArrayList<ACL>();......
  • 如何根据JSON文件内容生成自定义对象
    在Python中,你可以使用json模块来解析JSON文件,并将解析后的数据映射到自定义的Python对象上。这通常涉及到定义一个类,并为该类实现一个__init__方法来初始化对象的属性。然后,你可以编写一个函数来读取JSON文件,将解析后的数据传递给类的构造函数,从而创建自定义对象。下面是一个简单......
  • 自定义系统服务
    Systemd是什么Systemd是Linux系统下的一个系统和服务管理器,它负责启动其它程序并运行为PID1的进程。其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell的系统开销的效果,最终代替常用的SystemV与BSD风格init程......
  • 提升办公效率,一起了解流程自定义表单优势
    提高办公效率,可以一起了解低代码技术平台。对于很多中小型企业而言,低代码技术平台及流程自定义表单优势突出,是助力企业实现流程化办公,实现数字化转型的得力助手。流辰信息是专业研发开发平台、数据治理、数据分析等产品的服务商,是众多客户理想的合作伙伴。一起来了解低代码技术平......
  • keycloak~在认证的action中自定义重定向地址
    场景与实现逻辑我的登录接口,在输入账号密码成功后进行中间页中间页可以通过添加Authenticator的实现类来写逻辑authenticate方法是渲染页面的,action方法是提交表单后的逻辑context.success()方法表示认证成功,将进行重写向操作可以通过Response.status(302).header(HttpHeade......
  • Nuxt3-自定义路由配置以及使用自定义布局layout
    一、不自定义路由下,如何使用自定义布局1、根目录下app.vue<template><div><NuxtLayout><NuxtPage/></NuxtLayout></div></template>2、layout文件夹下新建文件main.vue<template><divclass="_app">......
  • spring security 6.0.8(boot 3.0.13)自定义 filter 踩坑-已解决
    springboot3.0.13(3.1.10)springsecurity6.0.8(6.1.8)-- 官方文档:https://docs.spring.io/spring-security/reference/index.html写文时最新为6.2.3。  说明,先是用springboot3.1.10测试,失败,降低到3.0.13仍然失败。 开发建立了AppLoginFilter,实现了attemp......
  • grad_cam下的自定义模型获取热力图
    原文链接:https://blog.csdn.net/zxdd2018/article/details/1255053521.(多张图片)备注:gram_cam_1importosimportnumpyasnpimporttorchimportcv2importmatplotlib.pyplotaspltimporttorchvision.modelsasmodelsfromtorchvision.transformsimportCompose,N......