0

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 のソリューションは必要なものとかなり似ているはずです。

4

1 に答える 1

0

QLineEdit を使用する場合、Enter キーはウィザードを進めるために解釈されます。代わりに QTextEdit を使用してください。

于 2012-07-28T17:21:21.877 に答える