2016-06-17 10 views
0

私はQtウィジェットを使って書かれたGUIアプリケーションを持っています。私はバージョニングを追加しました。私はアップデートマネージャーも作成するつもりです。これを動作させるには、アップデートマネージャが自分のアプリのバージョンを判断できる必要があります。私はバージョンスイッチでアプリケーションを実行し、出力を解析することでこれを実装することを考えました。私は研究を行い、Qtにはこれに対応する何らかのソリューションがあることがわかりました。ここでQt GUIアプリケーションのバージョンをコンソールに出力する方法

は一例です:

#include "mainwindow.h" 
#include <QApplication> 
#include <QCommandLineParser> 

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QApplication::setApplicationVersion("1.0.0"); 

    QCommandLineParser parser; 
    auto versionOption = parser.addVersionOption(); 
    parser.process(app); 

    if (parser.isSet(versionOption)) 
    { 
     MainWindow w; 
     w.show(); 
     return app.exec(); 
    } 

    return 0; 
} 

私は-vまたは--versionコマンドラインスイッチを使用して、このアプリを起動した場合、私は、バージョン情報を含むメッセージボックスを取得します。

私は同じことを達成する必要があり、情報のみを標準出力に出力する必要があります。アプリがバージョンスイッチで起動されている場合は、コンソールにバージョンを表示して閉じる必要があります。

GUIアプリケーションを使用して標準コンソール出力にバージョン情報を印刷するにはどうすればよいですか?

+0

Qtインストーラフレームワークについてはどうですか? Qtのインストールで知っているように、デプロイされたアプリケーションを更新機能で更新します。 https://doc.qt.io/qtinstallerframework/index.html – maxik

+0

私はむしろ単純な解決策を実装し、準備が整ったものを使用し、コードの背後にある理由を理解しようとするより複雑さを追加します。 –

+0

よろしくお願いします。次に、アプリケーションディレクトリにある現在のバージョンを含む単純なテキストファイルを使用しないでください。 – maxik

答えて

2

私たちがコメントのいくつかの点を明らかにしたので、次に進むつもりです。 ;)

ドキュメント(http://doc.qt.io/qt-5/qapplication.html#details)を見てください。詳細セクションでは、コマンドラインオプションを適切に解析して処理する方法を見ています。

ここで(https://stackoverflow.com/a/3886128/6385043)標準出力に書き込む可能性があります。 QDebugに注意してください。

私の意見では、テキストファイルに固執してください。ビルド中にを使用してを使用してを作成することもできます。QApplication::setApplicationVersion(QString)でも使用できます。

+0

はい。私はさらに研究をしましたが、これはこれまでのところ最良の方法と思われます。 –

+1

Qtの良いことは、文書があるので研究活動をしていることです。 ;) – maxik

関連する問題