- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!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}}