Python 学習:PyQt4 で GUI アプリ

2015-03-12 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
5、2、0、0、0、 2、0、0、0、0(41)で、換算ポイント 68pt 。
一昨日朝方「FM COCOLO」がbg値変わらず6位にダウン。
以降、「C言語」「Firefox」「グルコサミン」等々
上位のものは全く変わらず。
・-・ - -・

さて、本文。

前回(2015-03-09)の記事:「Python 学習:wxPython で GUI アプリ
では、

  ・・・・・
  ・・・・・
  「PyQt」は、“WinPython”に入っている。
  昨年4月(2014-04-22)に“Tkinter”と比較している。
  「Python 学習:Tkinter 学習

  「wxPython」は、昨年6月(2014-06-29)に追加している。
  「Python 学習:MayaVi2 導入

  ・・・・・
  ・・・・・

  そこで、「wxPython」について検索。
  そのものズバリの記事を見つけた。

  「理想のユーザ・インターフェイスを求めて」の 2011-03-08 の記事:
  「画面上にファイルをドラッグ&ドロップすると・・・

  ・・・・・
  ・・・・・

と云うことで、
wxPython」によるコード化と、
wxGlade: a GUI builder for ・・・
について、検討した。


だが、「PyQt4」の方がイイかな?
「WinPython」に初めから入っているから???

と云うことで、少々触ってみた。
(そもそもの目的は、ドラッグ&ドロップでファイル名を得たいが為だが。)


先ずは、
「プログラミング日記」の 2011-08-17 の記事:
[Python][PyQt]ファイルのドラッグ&ドロップ
ここにあるソース・コードをコピー&ペースト。

(当然でしょうが)OKですね。


そう云えば、昨年3月(2014-03-20)にブックマークしていたが、
PyQt4 利用ノート
があった。良さそう?


でも、こっちかナ?
PyQt4 tutorial


最初に参照した「プログラミング日記」にあるコードを
この「ZetCode」の例を見ながら、
<紙>流に書き直してみた。

更に、「Python/OpenCV 学習:大津の2値化
で学習した、閾値算出のコードも追加。

そして、
拡張子を「.pyw」とした。


# -*- coding: utf-8 -*-
# =========================================== test.pyw ===================
import sys, cv2
from PyQt4 import QtGui

class MainW( QtGui.QWidget ):
def __init__( self ): super( MainW, self ).__init__(); self.initUI()

def initUI( self ):
self.Lbl1 = QtGui.QLabel( 'File Name :', self ); self.Lbl1.move( 10, 10 )
self.Lbl2 = QtGui.QLabel( '?'+' '*250, self ) ; self.Lbl2.move( 75, 10 )
self.Lbl3 = QtGui.QLabel( ' Threshold :', self ); self.Lbl3.move( 10, 25 )
self.Lbl4 = QtGui.QLabel( '-'+' '*250, self ) ; self.Lbl4.move( 75, 25 )
self.setWindowTitle( 'D&D here' ); self.setGeometry( 400, 300, 280, 170 )
self.setAcceptDrops( True )

def dragEnterEvent( self, e ):
if e.mimeData().hasUrls(): e.accept()
else: e.ignore()
def dropEvent( self, e ):
files = [ unicode( u.toLocalFile() ) for u in e.mimeData().urls() ]
for f in files:
self.Lbl2.setText( f )
### print f
img = cv2.imread( f, 0 )
th, _ = cv2.threshold( img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU )
self.Lbl4.setText( str(int(th)) )

app = QtGui.QApplication( sys.argv )
w = MainW(); w.show()
sys.exit( app.exec_() )



これ、なかなか good !


もうすこし、学習してみるかナ?


本日はここまで。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


150208,09Z
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
04 | 2017/05 | 06
- 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 31 - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク