morris555's diary

高校生のブログです。

python de qt4 #04

はじめに

今日はプログレスバーです。

gtk3より、簡単にできた気がします。

本題

開始ボタンをクリックするとスタートするシンプルなプログラムです。

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import sys
from PyQt4 import QtGui
from PyQt4 import QtCore


class Widget(QtGui.QWidget):
    def __init__(self):
        super(Widget, self).__init__()

        self.progressbar()
        self.setWindowTitle(u'ProgressBar')
        self.show()

    def progressbar(self):
        self.pbar = QtGui.QProgressBar(self)

        self.btn = QtGui.QPushButton(u'開始', self)
        self.btn.move(0, 30)
        self.btn.clicked.connect(self.on_btn_clicked)

        self.timer = QtCore.QBasicTimer()
        self.step = 0

    def timerEvent(self, e):
        if self.step >= 100:
            self.timer.stop()
            self.btn.setText(u'終了')
            return

        self.step = self.step + 1
        self.pbar.setValue(self.step)

    def on_btn_clicked(self):
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText(u'再開')
        else:
            self.timer.start(100, self)
            self.btn.setText(u'一時停止')

        if self.step >= 100:
            sys.exit()


def main():
    app = QtGui.QApplication(sys.argv)
    widget = Widget()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

gtk3より簡単でした(?)

おわりに

qt4には、タイマーなどもあるんですねww

「Qt万歳」です(笑)