トップ 一覧 ping 検索 ヘルプ RSS ログイン

PyQtの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!PyQt
[Python]

::チュートリアル
*http://zetcode.com/tutorials/pyqt4/
::クラスリファレンス
*http://pyqt.sourceforge.net/Docs/PyQt4/classes.html
::ドキュメント
*http://qt-project.org/doc/qt-4.8/
::Wiki
*https://wiki.python.org/moin/PyQt

!!インストール
*[インストールと簡易画面|http://typea.info/blg/glob/2014/08/python-gui-pyqt.html]

*[Python GUI Spyder と Qt Designer で かんたん GUI 開発|http://typea.info/blg/glob/2016/03/python-gui-spyder-qt-designer-gui.html]
!!!サンプル
!!ブランクテンプレート
 # -*- coding:utf-8 -*-
 
 import sys
 from PyQt4 import QtGui as gui
 from PyQt4 import QtCore as core
 
 class MainWindow(gui.QWidget):
     def __init__(self):
         super(MainWindow, self).__init__()
         self.initUi()
 
     def initUi(self):
         # 
         #
         self.show()
 
 def main():
     app = gui.QApplication(sys.argv)
     mainWin = MainWindow()
     sys.exit(app.exec_())
 
 if __name__ == '__main__':
     main()

!!簡易画面
{{ref_image pyqt_sample01.jpg}}
 # -*- coding:utf-8 -*-
 import sys
 from PyQt4 import QtGui, QtCore
 
 class ExampleQt(QtGui.QWidget):
     def __init__(self):
         super(ExampleQt, self).__init__()
         self.initUi()
 
     def getModeItems(self):
         return (u'Item1',u'Item2',u'Item3')
 
     def initUi(self):
 
         grid = QtGui.QGridLayout()
         grid.setSpacing(10)
 
         lblMode = QtGui.QLabel(u'テスト')
         self.cmbMode = QtGui.QComboBox(self)
         self.cmbMode.addItems(self.getModeItems())
         grid.addWidget(lblMode,1,0)
         grid.addWidget(self.cmbMode,1,1)
 
         lblMq = QtGui.QLabel('MQ')
         self.cmbMqs = QtGui.QComboBox(self)
         self.cmbMqs.addItems(('Item1','Item2','Item3','Item4','Item5','Item6'))
         grid.addWidget(lblMq,2,0)
         grid.addWidget(self.cmbMqs,2,1)
 
         self.chkTblPrefix = QtGui.QCheckBox(u'チェックボックス',self)
         grid.addWidget(self.chkTblPrefix,3,0)
 
         boxBtn = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight)
 
         self.btnExec = QtGui.QPushButton(u'実行',self)
         self.btnExec.clicked.connect(self.doExecute)
         boxBtn.addWidget(self.btnExec)
 
         self.btnClear = QtGui.QPushButton(u'クリア',self)
         self.btnClear.clicked.connect(self.doClear)
         boxBtn.addWidget(self.btnClear)
 
         grid.addLayout(boxBtn, 4,0,1,2)
 
         splitter1 = QtGui.QSplitter(QtCore.Qt.Horizontal)
 
         self.txtData = QtGui.QTextEdit(self)
         splitter1.addWidget(self.txtData)
 
         self.txtOut = QtGui.QTextEdit(self)
         splitter1.addWidget(self.txtOut)
 
         grid.addWidget(splitter1, 5,0,1,5)
 
         self.setLayout(grid)
         self.setGeometry(200, 200, 700, 400)
         self.show()
 
     def doClear(self, value):
         self.txtData.clear()
         self.txtOut.clear()
 
     def doExecute(self, value):
         selected = self.getModeItems().index(unicode(self.cmbMode.currentText()))
 
         result = ''
         data = unicode(self.txtData.toPlainText())
         if selected == 0:
             isprefix = self.chkTblPrefix.isChecked()
             # do something
             pass
         elif selected == 1:
             # do something
             pass
         elif selected == 2:
             # do something
             pass
         self.txtOut.clear()
         self.txtOut.append(result)
 
 def main():
     app = QtGui.QApplication(sys.argv)
     exampleQt = ExampleQt()
     sys.exit(app.exec_())
 
 if __name__ == '__main__':
     main()

!!!Tips
!!スクロールバーを先頭に移動
::TextEdit
 textEdit.verticalScrollBar().triggerAction(QtGui.QAbstractSlider.SliderToMinimum)

!!チェックボックスをチェック
*http://pyqt.sourceforge.net/Docs/PyQt4/qt.html#CheckState-enum
 from PyQt4 import QtCore as qt
 
 chkCountWs = gui.QCheckBox(u"空白計測")
 chkCountWs.setCheckState(qt.Qt.Checked)
!!ファイル選択
 dialog = QtGui.QFileDialog()
 dialog.setFileMode(gui.QFileDialog.AnyFile)
 dialog.setFilter('images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)')
 if dialog.exec_():
     fileNames = dialog.selectedFiles()    
     for f in fileNames:
         print f
!!!サンプル
!!Python ファイルを分割する
*Python ファイルを分割する
!!文字数計測ツール
*http://typea.info/blg/glob/2014/08/pyqt.html
{{ref_image pyqt_char_counter.jpg}}

!!FreeMindをHTMLに変換する
*http://typea.info/blg/glob/2014/08/pyqtubuntuhtmlwiki.html
{{ref_image freemind_2_html.png}}