14歳の自分に衝撃の事実を告げてください

初めまして
QTのことについて一点疑問がありましたので
質問させていただきました

現在QT CreatorでGUIアプリケーションを作成していまして
最初に生成されたウィンドウを半透明で表示させたいと計画しています。

調べたのですがどこも色に対しての透明ばっかりで ウィンドウを透明にする
資料がありませんでした

ここでダイアログの透明と言ってるのは色の透明化ではなく
後ろの画面(デスクトップ画面)がうっすら見える状態にしたいと
思っています。

みなさんご教授願いします。

以上よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    すみませんひとつ報告するのを忘れていました
    使用しているOSはLinuxでありまして、
    Debian系となります。

      補足日時:2015/10/23 13:07

A 回答 (2件)

Window生成時のWindow属性のbackground_pixelにアルファチャネルを指定すれば透明~半透明~不透明にできます。



↓参考までに、Xlibのプログラミングではこんな感じ。
--------------------------------
XVisualInfo vinfo;
XSetWindowAttributes attr;
Window win;

XMatchVisualInfo (...省略..., 32, TrueColor, &vinfo);
attr.colormap = XCreateColormap(...省略..., vinfo.visual, AllocNone);
attr.border_pixel = 0;
/*ピクセルフォーマットは 0xAARRGGBB */
attr.background_pixel = 0x80000000; /* ← 半透明、0x00000000にすると不透明黒色 */

win = XCreateWindow (...省略..., vinfo.depth, InputOutput, vinfo.visual, CWColormap | CWBorderPixel | CWBackPixel, &attr);
---------------------------------

QtでWindowの属性を設定もしくは変更できるなら、上記の方法でWindow背景を半透明にできます。
    • good
    • 0

QtでWindowの属性を制御できるかわかりませんが、win32 apiではSetLayeredWindowAttributes関数で(Layered)Window内の不透明度を制御できます。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報