スポンサーサイト

    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    eventFilter de のっとーり

     気がつけばポケモンカードの新弾「ガイアボルケーノ・ダイダルストーム」が発売され2ヶ月が経過・・・そしてガンダムトライエイジの新弾「G3」もそろそろ稼働開始って事で、お仕事したのにブログに載せる暇が全然ない最近です(-_-;)
     去年末の12月にポケモンカード初のイラスト集も発売され、一点だけですが掲載されてワショーイだったので、ブログで歓喜の宴を書き綴ろうと思ったのですがその暇もなく・・・

     と私事ばかり並べてしまいましたが、久しぶりの更新はQTネタです。

     例えば親ウィジェット(仮にWidgetAとする)のkeyPressEventで何らかの動作のショートカットを作成しても、そのWidgetAの子として作ったウィジェット(仮にTreeViewAとする)にフォーカスが当たっているとTreeViewAの方のショートカットが優先されてしまい、WidgetAのショートカットが死んでしまう事があります。と言うか100%死にます。

    eventFilter001.png



    続きを読む

    ファイル拡張子別アイコン、ゲットだぜ!(ビシィッ!)

     久しぶりのPyQt・・・改めPySideネタです。
     最近時代の流れに則ってPySide使ってます。Maya2014のPySideはMenuのTrigered呼ばれると、Maya終了時にクラッシュするクールな仕様なのはなぜ?

     本日はファイルの拡張子・・・と言うかファイルに合わせてOSにセットされてるアイコンをゲットしちゃう方法です。
     では早速!


    続きを読む

    イーベントでTimerしてみる?

     今回はQtのtimerEventのメモ。
     QtのQObjectにはtimerEventメソッドがあり、これをオーバーライドする事で時間にそって何らかな作業を行う事ができます。
     とりあえずサンプルコード
    # -*- coding:utf-8 -*-
    import datetime
    
    from PyQt4 import QtGui, QtCore
    
    
    class TimerWidget(QtGui.QWidget):
        def __init__(self, parent=None):
            super(TimerWidget, self).__init__(parent)
            
            # Tree Viewを作成。----------------------------------------------------
            model = QtGui.QStandardItemModel(0, 0)
            self.view = QtGui.QTreeView()
            self.view.setModel(model)
            # ---------------------------------------------------------------------
            
            layout = QtGui.QVBoxLayout(self)
            layout.addWidget(self.view)
    
            self.timerId = self.startTimer(1000)    # TimerEventをスタート
    
        def timerEvent(self, event):
            '''
            オーバーライド用のtimerEventメソッド。
            ここに処理を記述する。
            '''
            if event.timerId() == self.timerId:
                # 引数eventのタイマーIDが先に行ったself.timerIdと一致している場合
                # アイテムを追加する。
                model = self.view.model()
                item = QtGui.QStandardItem(
                    datetime.datetime.now().strftime('%Y/%m/%d, %H:%M:%S')
                )
                model.setItem(model.rowCount(), 0, item)
                
    
    if __name__ == '__main__':
        import sys
        app = QtGui.QApplication(sys.argv)
        win = TimerWidget()
        win.show()
        
        sys.exit(app.exec_())
    
    で、こんな感じになります。
    timerEvent001.jpg


    続きを読む

    グラフィカルにアイテム

     更新が超久々~、しかも最近はプラモネタばっかりでしたが、ちょっとトレーラー部分は色々な事情から(面倒とかしんどいとかカッタルイとか・・・)難航してるんでちょいお休みデス。
    trailer016.jpg
     う〜ん、作るのしんどい・・・あと一歩なんだが(´Д`)ハァ…



     って事で今回は久々にQtネタです!
     前にPyQtでイメージビューワってところでやったネタの続きであります。
     前回はQGraphicSceneのマウスイベントをオーバーライドし、その中でQGraphicsPixmapItemのTransformマトリクスを直接動かすという感じでしたが・・・
     これだとココのアイテムは動かせても、全体を動かくことは出来ないんですね。

     QGraphicsSceneは内部に多数のQGraphicsItemを格納できますが、前回の方法だとこれらをまとめて動かすことは出来ません、はい残念~。
     って事で違うアプローチで言ってみましょう~==3


     今回はQGraphicsSceneの側となるQGraphicsViewを色々いじって操作出来るようにします。
     これが出来るとMayaのノードエディタみたいな事が出来る!!!





    かも・・・
    qGraphicsViewExample001.jpg
     今回もお姉ちゃん登場。最近絵書いてないなぁ・・・


    続きを読む

    PyQtでイメージビューワ

     画像を表示したいっ!! 俺は今、ムォォォォレツに画像を表示したいっ!!
     って事で今回はQGraphicsViewシリーズに関する話題で。

     Qtでイメージを表示する時にはいくつか方法があります。例えばQLabelにQPixmapをセットしてそれを表示するって言う方法がPyQt付属のサンプルで提供されてますね。
     しかし、その方法だと操作が微妙~(´ε`;)ウーン… 何が微妙かと言うと
    • 画像が枠より小さい場合、移動ができない。
    • スケールをかける際にマウスポイントを中心に・・・って事が難しい
    • 回転も無理ポ。。。
     などなど、色々制約がついてしまいますね。


     そんな不満いっぱいの我々に用意されているのがQGraphics~シリーズ.+゜*。:゜+(人*´∀`)+゜:。*゜+
     描画に関する事はこいつを使用すれば宜しいようです。
     ではではQGraphicsシリーズに初挑戦~


    続きを読む

    プロフィール

    Eske

    Author:Eske
    萌えイラストレーターを目指す3DCGイラストレーター。
    現在ポケモンカードゲーム、ガンダムトライエイジ、ガンダムコンクエスト、妖怪ウォッチとりつきカードゲームなどで3DCGを使用したイラストレーターとして参加中。

    主にここでは日々気づいたメモなんかを残してます。
    イラストのお仕事も受け付けております。ココからアクセスできますので、お気軽にご相談下さい。

    最新記事
    最新コメント
    カテゴリ
    最新トラックバック
    月別アーカイブ
    検索フォーム
    リンク
    QRコード
    QR
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。