現在、プロジェクト用のGUIライブラリが必要です。私はPythonに精通しており、PyQtが良い選択かもしれないことがわかりました。
私はPyQtについてのチュートリアルを読んでいて、次のサンプルプログラムについてかなり混乱しています
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
ZetCode PyQt4 tutorial
In this example, we draw text in Russian azbuka.
author: Jan Bodnar
website: zetcode.com
last edited: September 2011
"""
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
self.text = u'\u041b\u0435\u0432 \u041d\u0438\u043a\u043e\u043b\u0430\
\u0435\u0432\u0438\u0447 \u0422\u043e\u043b\u0441\u0442\u043e\u0439: \n\
\u0410\u043d\u043d\u0430 \u041a\u0430\u0440\u0435\u043d\u0438\u043d\u0430'
self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('Draw text')
self.show()
def paintEvent(self, event):
qp = QtGui.QPainter()
qp.begin(self)
self.drawText(event, qp)
qp.end()
def drawText(self, event, qp):
qp.setPen(QtGui.QColor(168, 34, 3))
qp.setFont(QtGui.QFont('Decorative', 10))
qp.drawText(event.rect(), QtCore.Qt.AlignCenter, self.text)
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
ここで、main関数では、Exampleオブジェクトが作成されるため、__init__()
functioninitUI()
が呼び出されます。paintEvent()
私の質問は、関数はどこで呼び出されるのですか?プログラムを実行self.text(some Russian letters)
すると、ウィジェットに正確に表示されるためです。
言い換えれば、sys.exit(app.exec_())
実際には何をしているのでしょうか?なぜpaintEvent()
関数を呼び出すのですか?
ありがとう!