QLayoutForm を持つページを持つ QWizard があります。LayoutForm には編集ボックスがあり、そこに説明を入力できますが、Enter キーを押して改行することはできません。改行するとページが進むからです。現在、これも含む初期化イベントでデフォルトのQWizardをオーバーライドしています
class MapWizard (QtGui.QWizard):
def __init__(self, parent=None):
super(MapWizard, self).__init__()
self.setOption(QtGui.QWizard.NoDefaultButton, True)
self.addPage(IntroPage())
self.addPage(SettingsPage())
self.setWindowTitle("Map Wizard")
self.show()
そして、その助けがあれば、ここに説明ボックスのクラスがあります
class DescriptionBox (QtGui.QLineEdit):
def __init__ (self, parent=None):
super(DescriptionBox, self).__init__()
self.setAlignment(QtCore.Qt.AlignTop)
def sizeHint(self):
return(QtCore.QSize(200,200))
ただし、 NoDefaultButton は何もしていないようです。エラーは発生しませんが、「最終」ボタンと「次へ」ボタンがデフォルトで選択されているという問題は解決しません。lineEditText ボックスにフォーカスしてもフォーカスされます。
私は PyQt バージョン 4 (Windows) を使用していますが、Qt のソリューションは必要なものとかなり似ているはずです。