我正在尝试使用一些数据填充QTableview
。在Qt Creator下开发时,将从构建目录中读取数据。每次运行程序时,QTableview
都会继续使用以前的数据重新填充。
如果我每次在运行之前手动更改构建目录,则不会发生。但是,如果我不想在每次想要全新运行时手动更改构建目录,如何解决问题呢?
答案 0 :(得分:0)
在项目目录中有一个文件名ProjectName.pro.user
。
配置项目时创建此文件。它是XML档案。
您可以在*.user
个文件中找到这一行:
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">C:/Users/probook/Documents/Qt/testProject/Build/Windows/Debug</value>
此行定义调试的构建目录地址。该文件中的Release和Profile有一行相同的行。
您还可以使用Qt创建器来定义(自定义)相对目录构建:
转到Qt创建者,Tools
,Options...
,Build & Run
,General
,Default build directory
。
更多信息:
答案 1 :(得分:0)
根据评论,问题似乎是保存到构建目录的数据。解决方案是在运行应用程序之前将其删除。
您可以在项目 - 构建设置 - 下添加自定义流程步骤 构建步骤,或在项目 - 运行设置 - 部署下,只删除所需的数据文件。确切的命令取决于操作系统。
另一种方法可能是向应用程序本身添加命令行开关,例如--development-erase-saved-data
,并删除文件(或者只是不读取它们,或者其他)。然后将该命令行开关添加到项目 - 运行设置 - 运行步骤 - 命令行参数以获取所需的构建配置。
在应用程序本身中添加对此的支持更容易维护,并且几乎自动跨平台。但是,它可能是您在应用程序中不想要的功能,但在这种情况下,您可能只为调试版本启用它(使用#ifdef
)。
作为旁注,如今将数据保存到可执行目录并不是一个好主意。您可能希望将其保存为例如
返回的位置 QStandardPaths::writableLocation(QStandardPaths::AppDataLocation)
(有关详细信息,请参阅here。)