qt4アプリケーションはXepyrで実行できません。

qt4アプリケーションはXepyrで実行できません。

Xephyrデフォルトユーザーとしてログインしている間に他のユーザーとしてアプリケーションを実行するために使用します。

に基づくアプリケーションをXephyr除いて、ほとんどのアプリケーションはでうまく機能します。qt4

electrum
ipython qtconsole
qbittorrent

上記のアプリケーションは通常のXサーバーで実行すると機能しますが、Xで実行するとウィンドウフレームのみが表示されますが空ですXephyr

この問題をどのように解決できますか?

私のオペレーティングシステムはDebian Wheezyで、バージョン番号は次のとおりです。

xserver-xephyr    1.12.4
libqtcore4        4.8.2

Xephyrセッションを開始する方法は次のとおりです。

Xephyr :1 -screen 1920x1080 -nolisten tcp -reset -terminate >/dev/null 2>&1 &
terminator --execute su - user2 -c 'DISPLAY=:1 startlxde >/dev/null 2>&1 &'

修正する 私はそれをテストしましたが、XFCE4同じ問題があります。 QT4 アプリケーションがまだ動作しておらず、空のウィンドウが表示されます。たとえば、qbittorrentウィンドウがどのように見えるかを見てみましょう。

ここに画像の説明を入力してください。

ベストアンサー1

質問では、Xephyrが正しく実行されていると仮定していますが(これに関する情報は提供されていないため)、少なくともqBittorrentがDebian Xfce WheezyのXephyrで正しく実行されていることを確認しました。

以下のスクリーンショットは、XephyrのqBittorrent 2.9.8を示しています。

Debian Xfce WheezyのXephyrでqBittorrent 2.9.8

これは、Debian Xfce Wheezyで現在まで入手可能な最新のパッケージを使用してテストされており、libqtcore4これはxserver-xephyr質問で参照されているバージョンと似ています。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.9 (wheezy)
Release:    7.9
Codename:   wheezy

$ dpkg-query -W | grep libqt
libqt4-dbus:i386    4:4.8.2+dfsg-11
libqt4-network:i386 4:4.8.2+dfsg-11
libqt4-xml:i386 4:4.8.2+dfsg-11
libqtcore4:i386 4:4.8.2+dfsg-11
libqtdbus4:i386 4:4.8.2+dfsg-11
libqtgui4:i386  4:4.8.2+dfsg-11

$ dpkg-query -W | grep xephyr
xserver-xephyr  2:1.12.4-6+deb7u6

問題の特定

私が見つけた唯一の関連クエリは次のとおりです。エラー71421、「Qt5アプリケーションはXepyrでは使用できません」と報告します。

XephyrでQt5(または明らかにGTK3)アプリケーションを実行しようとすると機能しません(何も表示されないため)。 GTK2またはQt4はglxgearsなどのGLXアプリケーションでうまく機能します。また、DMを実行せずにスタンドアロンXサーバーでテストしました。 Qt5はXephyrでは動作しませんが、そこではうまく動作します。

このバグは問題のケースに似ていますが、Qt5アプリケーションにのみ影響します。このバグはQt5によって発生し、今年4月末に修正されました。

それ以外は、Xepyrでアプリケーションがどのように実行されるかについての情報は提供されません。

上記のアプリケーションは通常のXサーバーで実行すると機能しますが、Xepyrで実行するとウィンドウフレームのみが表示されますが空です。

引用されたテキストを見ると、まだいくつかの質問があります。 Xephyrは無効な引数で実行されていますか?それとも、Xephyrでアプリケーションが他のユーザーとしてどのように実行されますか?

Qt4アプリケーションがXephyrで実行されていないと判断した場合は、Qt4パッケージに報告されていない問題かもしれません。しかし、qBittorrent(Qt4ベース)がXephyrで正しく機能していることを確認したので、これは「他のユーザー」に問題があるか、Xephyrが現在のセッションで実行されている方法に問題がある可能性があります。

Xephyrの使用について

Xephyrを使用して特定のタスクを実行する方法を説明するオンラインリソース。

  1. サフィールArchWikiから。 Xephyrの実行を開始するのに最適な場所ですが、Xephyrでターミナルまたはウィンドウマネージャを実行するよりも広範な使用法については説明しません。

  2. Xepyrの使用を開始する方法がわかりません。私は何が間違っていましたか?Xorgメーリングリスト、2014年1月23日木曜日17:16:40 PST。 XepyrでXtermを実行する別の方法です。

  3. 複数のXデスクトップを実行するには?スーパーユーザーについて2009年7月22日に質問されました。 Xepyrを使用して提案された答えの1つです。ソース#1で提案された方法と似ています。

  4. 複数端末の構成/Xephyr: Xephyr を使用して複数の端末を作成する方法ウィキブックスから。

  5. 複数のXserverのスクリーンショット2014年8月21日Unix&Linux Stack Exchangeに関する質問です。

  6. 方法:Xepyrを使用してFirefox(およびその他の項目)を別々のユーザーとして実行します。。これは質問で提案された最も類似した使用法のようです。

私がこれらのソースを引用する理由は、XephyrがQtアプリケーションを正しく実行していることを確認するのに役立つヒントを提供するためです。

それにもかかわらず、「Xephyrを使用してデフォルトのユーザーとしてログインしている間に別のユーザーとしてアプリケーションを実行します」という最初の文を理解するのは少し面倒です。結局のところ、私はXephyrでqBittorrentの実行をテストするために「他のユーザー」を作成しませんでした。たぶん他の人がより良い答えを与えるかもしれません。

おすすめ記事