重建Qt应用程序不会更改字符串 请把我当作QT中的新手。我已经为按钮点击事件编写了以下代码 void dbCheck () { db = QSqlDatabase::addDatabase("QSQLITE"); QString dbPath(QDir::home().path()); dbPath.append("/Desktop/jk/sample.sqlite"); qDebug () <<"Path Name is "<<dbPath; ....... }
当我运行代码时,它仍然打印前面的路径,即重建Qt应用程序不会更改字符串 请把我当作QT中的新手。我已经为按钮点击事件编写了以下代码 void dbCheck () { db = QSqlDatabase::addDatabase("QSQLITE"); QString dbPath(QDir::home().path()); dbPath.append("/Desktop/jk/sample.sqlite"); qDebug () <<"Path Name is "<<dbPath; ....... },qt,qt5,Qt,Qt5,当我运行代码时,它仍然打印前面的路径,即sample.sqlite 我清理了项目,并重建了相同的,但没有用,仍然得到了相同的结果。真奇怪 我错过什么了吗?我怎样才能纠正这个问题?和缓存有关吗?敬请告知。请重新检查您的环境:您真的清除了所有内容吗?确保您没有以前版本中的*.o,moc.*.cpp,ui.*.h。尝试删除.user文件,并重新配置项目,使其生成不同的文件夹 此外,还可以通过以下方式使用字符串串联: QString dbPath = QString("%1%2") .a
sample.sqlite
我清理了项目,并重建了相同的,但没有用,仍然得到了相同的结果。真奇怪
我错过什么了吗?我怎样才能纠正这个问题?和缓存有关吗?敬请告知。请重新检查您的环境:您真的清除了所有内容吗?确保您没有以前版本中的
*.o
,moc.*.cpp
,ui.*.h
。尝试删除.user
文件,并重新配置项目,使其生成不同的文件夹
此外,还可以通过以下方式使用字符串串联:
QString dbPath = QString("%1%2")
.arg( QDir::home().path() )
.arg( "/Desktop/jk/Newsample.sqlite" ) );
离线,但不要忘记本机分隔符(和)-如果您编写跨平台软件。请重新检查您的环境:您真的清除了所有分隔符吗?确保您没有以前版本中的
*.o
,moc.*.cpp
,ui.*.h
。尝试删除.user
文件,并重新配置项目,使其生成不同的文件夹
此外,还可以通过以下方式使用字符串串联:
QString dbPath = QString("%1%2")
.arg( QDir::home().path() )
.arg( "/Desktop/jk/Newsample.sqlite" ) );
如果您编写跨平台软件,请不要忘记本机分隔符(和)。请小心混合源版本和“影子版本”。如果转到源代码目录,并运行
qmake
和make
,您将进入源代码构建。另一方面,QtCreator在默认情况下使用单独的builddir,也称为“影子建筑”,当然您自己也可以这样做。实际上,这是通过qmake
完成的,方法是创建build dir作为源dir的同级,然后执行qmake../myproject
在shadow build dir中生成makefile
现在的问题是,make程序实际上没有单独构建目录的概念,如果您已经在源代码构建中执行了,那么这些构建文件也可以访问make。然后,当您认为您正在进行卷影构建时,make会在源目录下找到这些构建的文件,并使用它们,而不是创建新的文件
如果这是问题所在,以下内容应该会有所帮助:
在qtsdk命令提示符下转到sourcedir,然后运行
make clean distclean
注意:顺序很重要,distclean
也将删除所有makefile,因此必须最后完成。还可以将make
替换为nmake
或mingw32 make
或您实际使用的任何东西。如果该命令找不到makefile,那么您可能没有在那里运行qmake
,问题是其他问题,但您可以通过运行qmake
来验证这一点,以生成makefiles,并且makeclean distclean
将起作用
如果您使用版本控制(并且没有意外签入生成的文件…),则删除额外文件的替代方法是使用版本控制工具从版本控制目录中删除所有额外文件。小心混合源版本和“影子版本”。如果转到源代码目录,并运行
qmake
和make
,您将进入源代码构建。另一方面,QtCreator在默认情况下使用单独的builddir,也称为“影子建筑”,当然您自己也可以这样做。实际上,这是通过qmake
完成的,方法是创建build dir作为源dir的同级,然后执行qmake../myproject
在shadow build dir中生成makefile
现在的问题是,make程序实际上没有单独构建目录的概念,如果您已经在源代码构建中执行了,那么这些构建文件也可以访问make。然后,当您认为您正在进行卷影构建时,make会在源目录下找到这些构建的文件,并使用它们,而不是创建新的文件
如果这是问题所在,以下内容应该会有所帮助:
在qtsdk命令提示符下转到sourcedir,然后运行
make clean distclean
注意:顺序很重要,distclean
也将删除所有makefile,因此必须最后完成。还可以将make
替换为nmake
或mingw32 make
或您实际使用的任何东西。如果该命令找不到makefile,那么您可能没有在那里运行qmake
,问题是其他问题,但您可以通过运行qmake
来验证这一点,以生成makefiles,并且makeclean distclean
将起作用
如果您使用版本控制(并且没有意外签入生成的文件…),则删除额外文件的替代方法是使用版本控制工具从版本控制目录中删除所有额外文件。有趣的情况,听起来很奇怪。只是想知道。。尝试将qDebug()输入更改为其他内容。很难相信在重新编译之后,qDebug的执行会得到更新,并且dbPath qString将保持
…sample.sqlite
有趣的情况,听起来很奇怪。只是想知道。。尝试将qDebug()输入更改为其他内容。很难相信,在重新编译之后,qDebug的执行会得到更新,并且dbPath qString将保持…sample.sqlite