!!!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}}