mieki256's diary



2016/11/28(月) [n年前の日記]

#1 [python] PySideでカーソルを変更

QCursor でカーソルを作って、setCursor() でマウスカーソルを変更できる。

_qcursor_test.py
u"""
QCursorのテスト。マウスカーソルを変更する.

動作確認環境 : Windows10 x64 + Python 2.7.12 + PySide 1.2.4
"""

import sys
from PySide.QtCore import *  # NOQA
from PySide.QtGui import *   # NOQA


class GView(QGraphicsView):

    """GraphicsView."""

    def __init__(self, *argv, **keywords):
        """init."""
        super(GView, self).__init__(*argv, **keywords)

        scene = QGraphicsScene(self)
        self.setScene(scene)

        pm = QPixmap(320, 240)
        pm.fill(QColor(192, 192, 192, 255))
        pitem = QGraphicsPixmapItem(pm)
        scene.addItem(pitem)

        lst = [
            ("pen", "./mouse_cursor_pen.png", 0, 0),
            ("eraser", "./mouse_cursor_eraser.png", 0, 0),
            ("picker", "./mouse_cursor_picker.png", 9, 22),
            ("fill", "./mouse_cursor_fill.png", 9, 22),
        ]
        self.curs = []
        for d in lst:
            name, filepath, hx, hy = d
            cur_pm = QPixmap(filepath)
            cur = QCursor(cur_pm, hotX=hx, hotY=hy)
            self.curs.append(cur)

        self.cur_idx = 0
        self.setCursor(self.curs[self.cur_idx])

    def mousePressEvent(self, event):
        u"""マウスボタンが押された時の処理."""
        # 左もしくは右ボタンを押したらマウスカーソルを変更
        if event.button() == Qt.LeftButton:
            self.cur_idx = (self.cur_idx + 1) % len(self.curs)
        elif event.button() == Qt.RightButton:
            self.cur_idx = (self.cur_idx - 1 + len(self.curs)) % len(self.curs)
        else:
            return

        self.setCursor(self.curs[self.cur_idx])  # マウスカーソルを設定

    def mouseReleaseEvent(self, event):
        u"""マウスボタンが離された時の処理."""
        pass
        # self.unsetCursor()


class MyWidget(QWidget):

    """Main Window."""

    def __init__(self, *argv, **keywords):
        """init."""
        super(MyWidget, self).__init__(*argv, **keywords)
        l = QVBoxLayout()
        l.addWidget(QLabel("Dummy", self))
        l.addWidget(QLabel("Dummy", self))
        l.addWidget(GView(self))
        l.addWidget(QLabel("Dummy", self))
        l.addWidget(QLabel("Dummy", self))
        self.setLayout(l)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = MyWidget()
    w.show()
    sys.exit(app.exec_())

マウスカーソル画像は以下。EDGE2を使って自作してみたり。

_mouse_cursor_pen.png
_mouse_cursor_eraser.png
_mouse_cursor_picker.png
_mouse_cursor_fill.png

実行すると、こんな感じに。マウスクリックでマウスカーソルを変更できる。

qcursor_test_ss01.gif

ソースと画像素材は、CC0 / Public Domain ってことで。

_QCursor - PySide v1.0.7 documentation を読むと、1bit画像を2枚指定する設定の仕方で、xor表示ができる、と書いてあるように見えるのだけど。よくよく読んでみると、Windows では xor表示できるけど他の環境ではどうなるか知らんよ、と書いてあった。となると、クロスプラットフォームを意識して使うなら xor表示は避けたほうがいいのかもしれない。

xor表示ってのは…。おそらくだけど、下地が黒ならマウスカーソルは白に、下地が白ならマウスカーソルが黒に、みたいな表示じゃないかと想像するけど、どうなんだろう。

#2 [anime] 「けいおん!」2期、文化祭の回を視聴

NHK-BSで「けいおん!」が放送されてるので録画して見ているのだけど。とうとう例の文化祭の回が。

やっぱり名作、というか名シーンだなと…。いかん…鼻水が…。

#3 [movie] 「プリンス・オブ・ペルシャ 時間の砂」を視聴

たまたまTVをつけたらNHK-BSで流れていたので途中から視聴。画面に映ったタイトルを目にしてビックリ。まさか、あのゲームの実写映画版? 恥ずかしながら存在を知りませんでした。そうか…アレって映画化されてたのか…。

ググってみたら、2004年の、今風にリメイクされたゲーム版、の映画化だそうで。そりゃそうか。PC-9801とかそのあたりのPCで動いてたアレを今になって映画化するわけないよなと。

内容は、フツーに面白かった。アクションシーンはハリウッド映画的なソレで、おそらくはゲーム版を連想させるのであろうアクションも盛り込まれてる、ような気配を感じたし。ラストのあたりはなんだかロマンチックなソレだし。誰でもそれなりに楽しめる系の映画、てな印象。

なのだけど。これで赤字だったらしい…。なんでや…。

#4 [zatta][anime][neta] 氷の○○の上で鉄郎とメーテルがキャッキャウフフとスケートしてたらどんな印象を受けるのだろう

ちとネタバレだけど…。銀河鉄道999の冥王星の回で、氷の 墓地が出てくるけど。

あの上で、鉄郎とメーテルが楽しそうにスケートしてたら、視聴者はどんな印象を持ったのだろうかと、なんだか妄想を。

「スケートなんか初めてだよ」と言いながら、メーテルに滑り方を教えてもらう鉄郎。そのうち慣れてきて、「どうだいメーテル。この滑り」と例のごとく調子に乗り始めて。そこでふと、足元のアレに気づく。「うわっ! なんだこりゃ」と驚いて尻餅を。メーテルが「この上で滑るのが、冥王星に住む機械化人間達の、娯楽の一つなのよ」と説明したりして。

鉄郎のことだから…。たぶん、一言ポロッと。「うへえ…悪趣味だなあ…」とか言いそうだなと。

てなシーンを見て、「オイオイ、鉄郎。お前は分かってないなあ」「それってとっても素敵な光景じゃないか!」「嗚呼、俺もそういう場所で滑りたいなあ」と言い出す視聴者って、どの程度居るんだろう。

てな感じの妄想が、 _例のスケートリンク 関連記事を目にして浮かんできました。

もはや日本人は、精神的に、機械化人間ばかりなのかもしれない…。

それとは別に。

TV番組等で、食べ物を粗末にする系の企画が流れる際は、「この後スタッフが美味しくいただきました」てなテロップが出てくることがあるけれど。アレがあることで建前上許してもらえている、みたいなところがあるよなと。

であるから当然、例のスケートリンクも、「この後スタッフが美味しくいただきました」をやってくれないと困るよなと。ソレが無いと許されないよなと。しかし、5千匹か…。完食できるのか…。まさか廃棄処分とかしないよな。例えばTV番組でそんなことしたら、その後の展開は誰でも容易に想像できるはずで。 *1

何にせよ、氷漬けにした光景をイメージできる、そういう種類の想像力は溢れてるけど、そういうことをしたらこうなる、という種類の想像力は乏しいのだろうな…。

故・藤子F先生なら、似たような漫画を描いてくれそう。地球人の死体を氷漬けにした、その上で、宇宙人がスケートしていて。宇宙人同士が「命に対する冒涜だ。けしからん」「死んでるんだから構わんだろ。何を怒ってるんだ」と喧々諤々、している様子を物陰に隠れて震えながら見ている、地球人の主人公。みたいな。や、そういう感じの作品、あったけど。藤子F先生のSF漫画は、名作揃いですよ…。
*1: と思ったけどもしかして、飼ってる動物達に食べさせるのかもしれないか…。 _件の施設はカピバラを飼ってる ようだけど、 _ヤツラは魚も食べる ようだし。仮に、どうせ冷凍庫で氷漬けにして大量に保管してるなら畜生共に食べさせる前にもう一働き、という話なら少しは違ってくるのだろうか。どうなんだ。

以上、1 日分です。

過去ログ表示

Prev - 2016/11 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project