PyQtのリストで表示した項目から、選択された項目の内容を取得する

     3月に出るポケモンカード「リューノブレード」「リューズブラスト」のCMが最近放送されました。
     そこにボクが担当させて頂いたポケモンのカードがチラっと一瞬映っていて、大変テンション高めですヽ(*´∀`)ノ キャッホーイ!!
     3月16日発売です、他に何が収録されてるのかまったく知らないので今から楽しみです!!



     さて、前回の続きです。
     前回とりあえずリストからアイテムをクリックすると、それに反応して何個選択されているか出力するサンプルを作りましたが、何個選択されてるかだけじゃほとんどの場合意味ないんで、実際にどんなアイテムが選択されているのか具体的に取得する方法を探しておりました。  melのtextScrollListで言うところの
    textScrollList -q -si scrollFieldName;
    
    に該当するヤツですな。
     実は前回のサンプルのslotメソッドで、引数としてselectedとdeselectedの中に選択・非選択されたものが渡されております。
     が!!しかし!!! 実際これを試しにプリントしてみても、変なクラスが返ってくるだけで、具体的な中身はまったくわかりません。 こら困った。。。

     ってことで、ここから具体的に中身のデータを取り出すテストをしてみます。
     前回のサンプルのslotメソッドを書き換えてます。
        def slot( self, selected, deselected ):
            for item in selected:
                # セレクトされている各アイテムのインデックスを取得する。
                indexes = item.indexes()
    
                # indexesにはセレクトされた列の各種情報が入っているので、
                # それをfor文で全て取得する。
                textlist = list()
                for index in indexes:
                    # 各インデックスのデータを取得
                    data = index.data()
                    # 取得したデータを文字列に変換して取得
                    textlist.append( str(data.toString()) )
                text = ' - '.join( textlist )
                print( text )
    
    
    ・・・(´ε`;)ウーン…難しい。
     引数selected(deselected)にはQItemSelectionが渡されます。これをfor文で回すと、各要素にはQItemSelectionRangeと言うものが入ります。
     QItemSelectionRange.indexesメソッドで、選択されたアイテムの列の分だけQModelIndexが格納されているリストが返ってきますので、あとはこれをfor文でまわし、QModelIndexのdataメソッドでデータを受け取りtoQStringで文字列に変換かけています。



    ・・・ややこしいぞ?
     本当にこれであってるんでしょうか、周りにPyQt出来る人いないんでスゲー不安なんですがww


     まぁとりあえず値をゲットできたんで、さらにグタグタと進めてみます。
     なかなか簡単には理解できんですなぁ。。。

    スポンサーサイト

    コメントの投稿

    非公開コメント

    No title

    ふふー、格好いいカード達い~ぱいみたよっ!

    お気に入りはレジスチルっ♪
    すごい綺麗で質感とか、目(?)の光とか・・・格好良過ぎでしょ!
    ロボット系、ほんと好きなんだなーーーてw

    今後も格好いいの、お願いねっ♪

    メカ男がバレる一枚

     おぉ~~、コメント&お褒め頂きありがとうざいます(^^)ノ
     ちょいと引越しでネットが出来なかったんでお返事が遅くなって申し明けない(^^;)

     今回はEXばかしを担当させてもらって恐縮な感じですが、気に入って貰えれば
    嬉しい限りです!
     レジスチルは・・・やっぱメカ好きが全面に出てしまうのかぁw

     
     ようやくネットが開通したんで、BW5ネタ書きます、よかったらそちらも読んでくださいな。
     これからも頑張ります(`・ω・´)ゞ

    プロフィール

    Eske

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

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

    最新記事
    最新コメント
    カテゴリ
    最新トラックバック
    月別アーカイブ
    検索フォーム
    リンク
    QRコード
    QR