OK、これは私を狂わせています。些細なことだと思いますが、しばらく答えを探していたのですが、わかりません。額は平らになると思います。
PythonでQt4ダイアログを設計しています。QDesignerを介してコードを生成し、システムに4つの入力があります。
- QLineEdit(空白にすることはできません)
- QPlainTextEdit
- QLineEdit(空白にすることはできません)
- QComboBox(オプションの1つを選択する必要があります)
質問:フィールドを「必須」にするフラグはありますか?強制的に非空白にしますか?
QRegExpValidatorを使用しようとしましたが、これが正しいかどうかわかりません。
regex = QRegExp(r"\\S+")
self.optionName.setValidator(QRegExpValidator(regex,self))
明らかな何かが欠けていることはわかっています(self.optionName.setRequired()関数にしないでください)。
アップデート
このクラスを追加しました:
from PyQt4 import QtGui
class ValidStringLength(QtGui.QValidator):
def __init__(self, min, max, parent):
QtGui.QValidator.__init__(self, parent)
self.min = min
self.max = max
def validate(self, s, pos):
if self.max > -1 and len(s) > self.max:
return (QValidator.Invalid, pos)
if self.min > -1 and len(s) < self.min:
return (QValidator.Intermediate, pos)
return (QValidator.Acceptable, pos)
def fixup(self, s):
pass
このように呼んでください:
self.optionName.setValidator(ValidStringLength(2, 8, self.optionName))
self.criteriaName.setValidator(ValidStringLength(2, 8, self.criteriaName))
クラスのvalidate()関数にブレークポイントが設定されていますが、それが呼び出されることはありません。
私は何か基本的なものが欠けていますか?
TIA
マイク