私は Qt5.1 を使用しており、ディスプレイなしで QApplication を作成しようとしています。QPainter でテキストを描画する必要があるため、QApplication (または QGuiApplication) を使用する必要があります。そうしないと、segfault が発生します。
アプリケーションは Qt4.8 では問題なく動作しましたが、Qt5.1 ではヘッドレス バージョンの Ubuntu で次のエラーで失敗します。
「QXcbConnection: ディスプレイに接続できませんでした」.
Qt 4.8 では、GUIenabled = false で次のコンストラクターを使用して、ディスプレイを必要としない QApplication を作成できました。
QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled )
Qt5.1 では、QApplication のコンストラクターに GUIenabled フラグがなくなりました。
ソースコードを簡単にスキャンしたところ、QApplication コンストラクターにフラグがあるようですが、そのフラグで使用できるオプションについては文書化されていません。「false」を使用しても機能しません。
ディスプレイなしで QApplication を作成するにはどうすればよいですか? QApplication GUIenabled = false を伝える別の方法はありますか? または、QImage で QPainter を使用してテキストを描画するときに segfault しない QCoreApplication を作成できますか?