Qt Creator IDE的生成目录

Qt Creator IDE的生成目录

问题描述:

我想用一些数据填充QTableview。在Qt Creator下开发时,从构建目录读取数据。每次运行该程序时,QTableview都会继续使用以前的数据重新填充。Qt Creator IDE的生成目录

如果我在运行前每次手动更改构建目录,都不会发生。但是如何解决这个问题,而不需要每次我想要一个新的运行时手动改变编译目录呢?

+0

Qannie你是什么IDE? Qt的创造者?视觉工作室? – aghilpro

+0

Qt创建者是我的IDE – annie

+0

虽然我看不到QTableView的链接。 – AlexanderVX

在您的项目目录中有一个文件名ProjectName.pro.user

在配置项目时创建此文件。这是XML文件。

你可以*.user文件找到这一行:调试

<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/probook/Documents/Qt/testProject/Build/Windows/Debug</value> 

此行定义build目录地址。该文件中的版本和配置文件有相同的行。

您也可以使用Qt Creator的定义(自定义)相对目录编译: 转到Qt Creator的,ToolsOptions...Build & RunGeneralDefault build directoryScreenshot

更多信息:

Qt Creator stores user-specific project settings in a .pro.user file. You can share these settings between several projects as a .pro.shared file. It has the same XML structure as a .pro.user file, but only contains the settings to share.

+0

感谢您的信息!但是要知道任何其他解决方案,以避免在qtableview中重新填充数据,而不是更改构建目录? – annie

+0

@annie你能解释一下你的项目吗?是否有可能在启动时清除QTableView? – aghilpro

基于评论,问题似乎是它被保存到建立的目录数据。解决办法是在运行应用程序之前删除它。

您可以添加自定义过程步骤下,要么在项目 - 构建设置 - 生成步骤,或在项目 - 运行设置 - 部署,只是删除所需的数据文件。确切的命令取决于操作系统。

另一种方法是向应用程序本身添加一个类似--development-erase-saved-data的命令行开关,并擦除文件(或者只是不读取它们,或者其他)。然后将该命令行开关添加到项目 - 运行设置 - 运行步骤 - 命令行参数以获取所需的生成配置。

在应用程序本身中添加对此的支持更易于维护,并且几乎可以自动跨平台。但是,这可能是您不希望在应用程序中使用的功能,但在这种情况下,您可能只能为调试版本启用它(使用#ifdef)。


作为一个备注,保存数据到可执行文件目录并不是一个好主意。你可能想例如保存它的位置由

QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)

返回(见here获取更多信息。)