Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« xyzzy で XML を解析 | トップページ | ふぁぼりを Evernote へ »

2010-05-19

KlogShow を完全透過に


昨日、UTF8 対応に改造した KlowShow ですが、
背景の 100% 透過ができないのがおしいかんじ。
(透明度を 0% にすると文字も読めなくなる)

というわけで、透明度を 0% に設定したときに
背景のみ完全透過(文字は 100% 不透明でくっきり)
になるように、ちょろっと改造してみました。


  ⇒ Download  ※ 55MB あります


このアーカイブファイルを展開してできたファイルを全部
C:\Program Files\klogshow\ に置けば OK です(上書きコピー)。

Configure メニューで「Opacity」を "0" にしない限り、オリジナルと変わりません。
「Opacity」を "0" にすると、背景が消えて、文字だけ浮いた状態になります。
ちなみに、この状態ではウインドウの移動ができないので、移動したいときは
Opacity を 50% とかにして移動させてください。


以下、詳細。

====================

mainWindow.cpp を改造します。

% diff ../../org/src/mainWindow.cpp .
150c150,155
< 	setWindowOpacity ( ( double ) ( settings.value ( "opacity", DEFAULT_OPACITY ).toInt() ) / 100 );
---
> 	const int opacity = settings.value ( "opacity", DEFAULT_OPACITY ).toInt();
> 	if (opacity > 0) {
> 		setWindowOpacity ( (double)opacity / 100 );
>     }
> 	this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint);
> 	this->setAttribute(Qt::WA_TranslucentBackground, true);
166c171,176
< 	palette.setColor ( QPalette::Window, colorBaseDefault );
---
> 	if (opacity > 0) {
> 		palette.setColor ( QPalette::Window, colorBaseDefault );
> 	} else {
> 		colorBaseDefault.setAlphaF((double)opacity/100);
> 		palette.setColor ( this->backgroundRole(), colorBaseDefault );
> 	}
265c275
< 	pal.setBrush ( QPalette::Window, QBrush ( gradient ) );
---
> //	pal.setBrush ( QPalette::Window, QBrush ( gradient ) );
% 
% vi Makefile.Release
% 
% mingw32-make release
% 
% mingw32-make release-install
% 
Makefile.Release はちょっと手直ししないと動きません。 "-lQtGui4 -lQtCore4" を "-lQtGuid4 -lQtCored4" に変えたりとか。 そうしないと make に成功しても実行時にエラーになっちゃいます。 あと、"release-install" で以下のファイルもコピーしてあげる必要があります。
c:\Qt\2010.02.1\qt\bin\QtCored4.dll
c:\Qt\2010.02.1\qt\bin\QtGuid4.dll
c:\Qt\2010.02.1\qt\bin\libgcc_s_dw2-1.dll
==================== とりあえず Seaoak の環境で動いているだけなので、 うまく動かなかったらあきらめてください・・・。 もちろん無保証です。あしからず。

« xyzzy で XML を解析 | トップページ | ふぁぼりを Evernote へ »