C++ 编程a';检查是否有更新';按钮以确定存储库中的更改

C++ 编程a';检查是否有更新';按钮以确定存储库中的更改,c++,qt,qtgui,C++,Qt,Qtgui,我有一个应用程序处于非常早期的开发阶段,并且仍然不断地更新或修复bug。这个程序被设计用来自动审计我的很多工作,目前有5-7个人通过葡萄藤听说了它 我不喜欢不断地发送电子邮件,要求传播更新已经发布的消息,所以我想实现某种“检查更新”按钮。我该怎么做这样的事情呢 该按钮只需在我的发布库中检查新版本号,并让用户知道他们的版本号是否落后,这是进行此类操作的正确途径吗?还是有一条更容易的道路 我甚至建议不要为此使用复选框,而只需使用 您需要先添加所需的观看路径: 如果路径存在,则将路径添加到文件系统监

我有一个应用程序处于非常早期的开发阶段,并且仍然不断地更新或修复bug。这个程序被设计用来自动审计我的很多工作,目前有5-7个人通过葡萄藤听说了它

我不喜欢不断地发送电子邮件,要求传播更新已经发布的消息,所以我想实现某种“检查更新”按钮。我该怎么做这样的事情呢


该按钮只需在我的发布库中检查新版本号,并让用户知道他们的版本号是否落后,这是进行此类操作的正确途径吗?还是有一条更容易的道路

我甚至建议不要为此使用复选框,而只需使用

您需要先添加所需的观看路径:

如果路径存在,则将路径添加到文件系统监视程序。如果路径不存在,或者文件系统监视程序已经在监视该路径,则不会添加该路径

如果path指定了一个目录,当path被修改或从磁盘中删除时,将发出directoryChanged()信号;否则,当修改、重命名或删除路径时,将发出fileChanged()信号

如果手表成功,则返回true

监视失败的原因通常取决于系统,但可能包括资源不存在、访问失败或总监视计数限制(如果平台有)

注意:可以同时监视的文件和目录的数量可能有系统相关的限制。如果达到此限制,将不监视路径,并返回false

您将连接到:

void QFileSystemWatcher::fileChanged(常量QString和路径)[信号]

当指定路径上的文件被修改、重命名或从磁盘中删除时,将发出此信号

处理程序槽可以自动向用户发出一些通知,即使没有明确的复选框

将所有这些付诸实践,我会写下这样的话:

MyClass::MyClass(QObject *parent) : QObject(parent)
{
    connect(myFileSystemWatcherPointer, SIGNAL(fileChanged(const QString &)), SLOT(handleFileChanged(const QString &)));
    myFileSystemWatcherPoiner->addPath(myFilePath);
}

MyClass::handleFileChanged(const QString &file)
{
    if (file == desiredFile)
        showUpdatePopUp();
}

@JBentley我很感谢大家的回应,我以前从未处理过分发我的软件的问题,也从未期望其他人使用我的应用程序。我感到不知所措,因为我一点也不知道如何将我的程序打包到二进制下载或软件包管理器中,您是否有学习如何进行此操作的链接?此“检查更新”按钮确实可以用于检查存储库中的更改,但发布后,最终用户可以使用它检查应用程序更新,否?@JBentley:您在Windows上没有软件包管理器,至少在任何可靠的地方都可以方便地进行更新。@Gmercer015:您使用的是哪种操作系统?你在寻找一个带有信号和插槽的Qt解决方案吗?@LaszloPapp我的目标是一个合适的Windows7版本