PySideでモードレスダイアログを表示する場合はshowメソッドを使用しますが、
呼び出し元で何らかの処理が継続中の場合、
その処理が終わるまでダイアログは待ち状態になってしまいます。
それを防ぐためには、モードレスダイアログの中で定期的に
QtGui.QApplication.processEvents()を呼び出す必要があります。
(QProgressbarDialogなどもsetValueメソッドの中でprocessEventsを呼び出し
ダイアログを定期的に更新しています)
以下、時間のかかる処理を行う際に、「Please wait...」と書かれたモードレスダイアログ
を表示させる例です。
:waitdialog.py
import sys
from PySide import QtGui, QtCore
class WaitDialog(QtGui.QDialog):
    def __init__(self, parent=None):
        super(WaitDialog, self).__init__(parent)
        label1 = QtGui.QLabel("Please wait...")
        layout = QtGui.QVBoxLayout()
        layout.addWidget(label1)
        self.setLayout(layout)
        self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
        self.setWindowTitle("Work in progress")
        self.resize(200, 100)
        self.setModal(True)
        self.show()
        self.raise_()
        QtGui.QApplication.processEvents()
def main():
    app = QtGui.QApplication(sys.argv)
    widget = WaitDialog()
    u""" 時間のかかる処理開始 """
    import time
    time.sleep(10)
    u""" 時間のかかる処理終了 """
    widget.close()
    sys.exit(app.exec_())
if __name__ == "__main__":
    main()