首先,我们打开前文所设置的工程项目。
然后,我们在界面设计窗口,加入一个label用于显示,要保存的目录。注意设置下相应的界面布局。
然后,我们在mainwindow.h类中创建一个newExcel的函数,用于实现新建excel的功能。
在对应的cpp文件中,我们要实现newExcel函数功能,首先,按前文的步骤,将application,workbook,worksheet进行赋值并设置。
其中,pApplication->setControl("Excel.Application")用于连接excel控件。pWorkBooks = pApplication->querySubObject("Workbooks")获取workbooks指针。
之后,我们需要用QFile先判断下是否已经存在同名文件,如果没有,我们通过 *** 作excel组件进行创建。file.exist()是判断文件是否存在。如果不存在,我们新建一个excel,然后获取活动的workbook。然后通过dynamicCall调用SaveAs函数进行保存。
然后在构造函数中调用newExcel,我们可以创建一个名字为fileName的excel文件了。
程序运行以后,会d出保存文件的对话框,在其中选择要保存的excel文件名,点击保存之后,会在你选择的路径中创建一个excel文件。
但是,当我们准备删除此文件的时候,会无法完成,这是因为,我们程序中使用pApplication *** 作excel的函数并没有关闭。
9
我们可以在源文件中添加以下代码关闭调用。这样就可以删除了。
/*d出是否保存文件对话框*/bool MainWindow::do_file_SaveOrNot()
{
if(ui->textEdit->document()->isModified()) //如果文件被更改过,d出保存对话框
{
QMessageBox box
box.setWindowTitle("警告")
box.setIcon(QMessageBox::Warning)
box.setText(curFile + " 尚未保存,是否保存?")
box.setStandardButtons(QMessageBox::Yes | QMessageBox::No |QMessageBox::Cancel)
int nRet = box.exec()
if(nRet ==QMessageBox::Yes) //如果选择保存文件,则执行保存 *** 作
{
do_file_Save()
return true
}
else if(nRet ==QMessageBox::No) //如果选择不保存,则抛弃原内容
return true
else
return false
}
}
1、其他软件进程的干涉(如HOOK) 已知有道词典的划词取词功能(可能是用了信息钩子)会导致QT无响应的BUG。 还有可能是上层屏幕显示的软件导致QT无响应。 请尽量关闭其他软件进程,再重新进入QT排除原因。如果实锤了,那当然就不能同时使用了!2.
其他可能的解决办法 删除~\AppData\Roaming\QtProject文件夹,然后再打开Qt Creator即可。 该文件夹经本noob的试验是用于存储QT个人设置以及历史项目目录等文件的,大可删除,QT会在重新打开时自动生成,只不过你相关的设置就会恢复默认值了!!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)