2016-07-03 2 views
3

Qt5に移植してビルドした古いQt4コードがあります(gcc4.8、Ubuntu)。プログラムはGUIウィンドウを表示しませんが、コンソール出力を表示します。Qt5アプリケーションではUbuntuでウィンドウを描画しません

最後に、main()全体を以下の最小限のコードに縮小し、同じ動作をしました。「exec ...」が表示され、プログラムはサイレント実行中(終了なし、クラッシュなし) 。

どうすればよいですか?

#include <QApplication> 
#include <QWidget> 

#include <iostream> 

int main (int argc, char **argv) 
{ 
    QApplication app(argc, argv); 

    QWidget window; 

    window.resize(250, 150); 
    window.setWindowTitle("Simple example"); 
    window.show(); 
    std::cout << "exec...\n"; 
    return app.exec(); 
} 
+0

ウィンドウをアプリケーションに関連付ける(関連付ける)のはどこですか?多くのGUIアプリケーションでは、ウィンドウをアプリケーションに挿入または追加する必要があります。 –

+0

@ThomasMatthewsこのコード例は、サイズ(250,150)の空のウィンドウを作成する必要があります。 – pavelkolodin

+0

どのバックエンドですか? X11、eglまたはlinuxfb?上記のコードは私のX11で期待どおりに動作します。ウィンドウマネージャのどこかに埋め込まれていないことを確認してください(ウィンドウマネージャを実行している場合)。 –

答えて

0

単純なウィジェットの読み込み/表示に失敗すると、プラットフォームプラグインが見つからないか間違った場所に表示されます。 デバッグ環境でエラー出力を探します(「プラットフォームプラグインの読み込みに失敗しました」など)。 あなたはどのプラットフォームを使用していますか?アプリケーションのディレクトリ構造を確認してください!

+0

「プラットフォーム」とはどんな意味ですか? – pavelkolodin

0

これは、Qt 5がウィンドウを作成する方法をサポートしていないウィンドウマネージャ(icewm)の問題です。それはfixedicewm 1.3.8なので、それを更新したり、別のウィンドウマネージャを使用すれば問題を解決できます。

関連する問題