Hello World / plɹoM ollǝH

Programmers Live in Vain

PySide Progressbarを表示してみる

QProgressDialogを使うと一番簡単であります

f:id:dungeonneko:20170612143019g:plain

import sys
from PySide import QtGui

app = QtGui.QApplication(sys.argv)
prog = QtGui.QProgressDialog('何か処理しています...', 'キャンセル', 0, 100, None, 0)
prog.show()
prog.setValue(50)
sys.exit(app.exec_())
キャンセルボタンなくしたい

コンストラクタのキャンセルボタンのテキストにNoneを指定

QtGui.QProgressDialog('何か処理しています...', None, 0, 100, None, 0)
ウインドウのボタンを消したい

コンストラクタの最後の引数でウインドウフラグを指定

QtGui.QProgressDialog('何か処理しています...', 'キャンセル', 0, 100, None,
    QtCore.Qt.Window | QtCore.Qt.WindowTitleHint | QtCore.Qt.CustomizeWindowHint)
リサイズなくしたい

setFixedSizeを呼ぶ

prog.setFixedSize(prog.sizeHint())
Marqueeスタイル(進捗表示しないで処理の終了だけ待つやつ)にしたい

f:id:dungeonneko:20170612153620g:plain

プログレスバーの範囲を 0 ~ 0 にする

QtGui.QProgressDialog('何か処理しています...', 'キャンセル', 0, 0, None, 0)

バー横の空白が残る場合は進捗表示テキストをセンター寄せすればいい

prog.setStyleSheet('QProgressBar {text-align: center;}')