2016/12/07(水) [n年前の日記]
#1 [python] PySideでCGツール用のラバーバンドを書いてみる
PySideで、CGツール用のラバーバンドを試しに書いてみたり。選択範囲を作成する時に使うアレ。境界線をドラッグするとリサイズできる仕様をどうにか盛り込んでみた。
ソースが長くなってしまったので、Gist にアップロード。
_PySideでCGツール用ラバーバンドを試しに書いてみる - Gist
こんな感じになった。
処理もクラス分けもグチャグチャになってしまったので、そっくりそのまま何かに使えるソースではないけれど。一応どうにか実装できるみたいだよ、ぐらいのことは程度は実証できた、かなと。
ソースが長くなってしまったので、Gist にアップロード。
_PySideでCGツール用ラバーバンドを試しに書いてみる - Gist
こんな感じになった。
処理もクラス分けもグチャグチャになってしまったので、そっくりそのまま何かに使えるソースではないけれど。一応どうにか実装できるみたいだよ、ぐらいのことは程度は実証できた、かなと。
◎ 処理の流れについてメモ。 :
ラバーバンド(選択範囲の境界線)が、存在する(表示されている)場合、領域を9分割して、マウスカーソルがどこにあるかを判断。その領域にマウスカーソルが乗ってたら、まずはマウスカーソル形状を変更。
更に、マウスボタンが押された時に、マウスカーソルがラバーバンド上に乗っているなら、マウス座標の反対側にある座標を開始点に設定して、終了点のほうをドラッグで指定する処理に入る、みたいな感じ。
しかし、この仕様だと、選択範囲がめちゃくちゃ狭い・小さい時にはリサイズが上手くいかないことに気づいてしまったりもして。そのあたり、例えばGIMPの場合は、選択範囲がめちゃくちゃ狭い場合は境界線の外側にドラッグ可能な領域を用意する、てな仕様になっていて。なるほどうまいこと考えたもんだなと改めて感心したり。
ところで。選択範囲を作ってる途中で、ウインドウ外にマウスカーソルが移動すると、ウインドウ内の表示領域が自動で大きくなって開始点と終了点が QGraphicsView の返す座標値とずれてしまうことに気がついてしまって。そのあたりを解決しようとしているうちに、ソースがどんどんグチャグチャになってしまったという…。なかなか難しい。
それはともかく、もっとイイ感じのやり方があるんじゃないか、という気もするのだけど…。例えばウインドウのサイズ変更時はこういう操作仕様になってるのだから、ノウハウというか、プログラムの書き方としてある程度確立してたりするんじゃないの、とも思えるわけで…。
更に、マウスボタンが押された時に、マウスカーソルがラバーバンド上に乗っているなら、マウス座標の反対側にある座標を開始点に設定して、終了点のほうをドラッグで指定する処理に入る、みたいな感じ。
しかし、この仕様だと、選択範囲がめちゃくちゃ狭い・小さい時にはリサイズが上手くいかないことに気づいてしまったりもして。そのあたり、例えばGIMPの場合は、選択範囲がめちゃくちゃ狭い場合は境界線の外側にドラッグ可能な領域を用意する、てな仕様になっていて。なるほどうまいこと考えたもんだなと改めて感心したり。
ところで。選択範囲を作ってる途中で、ウインドウ外にマウスカーソルが移動すると、ウインドウ内の表示領域が自動で大きくなって開始点と終了点が QGraphicsView の返す座標値とずれてしまうことに気がついてしまって。そのあたりを解決しようとしているうちに、ソースがどんどんグチャグチャになってしまったという…。なかなか難しい。
それはともかく、もっとイイ感じのやり方があるんじゃないか、という気もするのだけど…。例えばウインドウのサイズ変更時はこういう操作仕様になってるのだから、ノウハウというか、プログラムの書き方としてある程度確立してたりするんじゃないの、とも思えるわけで…。
[ ツッコむ ]
#2 [pc] GeForceドライバをアップデートしてみたけど
自分のメインPCには Geforce GTX 750 Ti が乗っているのだけど。GeForceドライバーの新しい版、376.19 が出たらしいのでアップデート作業を。
GeForce Experience 経由でアップグレードしようとしたら、カスタムインストールを選んだはずなのに「クリーンインストール」を尋ねるウインドウが出てこなくて。しかも最後に「インストールに失敗」と言われて。さすが、NVIDIA…。
仕方ないので、NVIDIAのサイトからドライバをダウンロードしてインストールし直し。
しかしコレ、クリーンインストールすると、GeForce Experience 初回起動時にHDD内からゲームを再度検索して30分ぐらい何もできなくなる…。最適化されそうなゲームなんて一本も持ってないのに。Visual Studio や FL Studio のインストールフォルダを検索してどうするんだ…。スキップできる仕様をつけてほしい…。
低負荷でデスクトップの録画ができるという旧ShadowPlay相当の機能をそのうち使ってみたいので、仕方なく GeForce Experience をインストールしてるのだけど、ドライバを更新するたびにこうして待たされるのが…。なんだか馬鹿馬鹿しいなと…。
GeForce Experience 経由でアップグレードしようとしたら、カスタムインストールを選んだはずなのに「クリーンインストール」を尋ねるウインドウが出てこなくて。しかも最後に「インストールに失敗」と言われて。さすが、NVIDIA…。
仕方ないので、NVIDIAのサイトからドライバをダウンロードしてインストールし直し。
しかしコレ、クリーンインストールすると、GeForce Experience 初回起動時にHDD内からゲームを再度検索して30分ぐらい何もできなくなる…。最適化されそうなゲームなんて一本も持ってないのに。Visual Studio や FL Studio のインストールフォルダを検索してどうするんだ…。スキップできる仕様をつけてほしい…。
低負荷でデスクトップの録画ができるという旧ShadowPlay相当の機能をそのうち使ってみたいので、仕方なく GeForce Experience をインストールしてるのだけど、ドライバを更新するたびにこうして待たされるのが…。なんだか馬鹿馬鹿しいなと…。
[ ツッコむ ]
以上、1 日分です。