Pyqt-qlineedit-widget

提供:Dev Guides
移動先:案内検索

PyQt-QLineEditウィジェット

*QLineEdit* オブジェクトは、最も一般的に使用される入力フィールドです。 1行のテキストを入力できるボックスを提供します。 複数行のテキストを入力するには、 *QTextEdit* オブジェクトが必要です。

次の表は、QLineEditクラスのいくつかの重要なメソッドを示しています-

以下は、QLineEditの最も一般的に使用されるメソッドです。

Sr.No. Methods & Description
1

setAlignment()

配置定数に従ってテキストを配置します

Qt.AlignLeft

Qt.AlignRight

Qt.AlignCenter

Qt.AlignJustify

2

clear()

内容を消去します

3

setEchoMode()

ボックス内のテキストの外観を制御します。 エコーモード値は-

QLineEdit.Normal

QLineEdit.NoEcho

QLineEdit.Password

QLineEdit.PasswordEchoOnEdit

4

setMaxLength()

入力用の最大文字数を設定します

5

setReadOnly()

テキストボックスを編集不可にします

6

setText()

プログラムでテキストを設定します

7

text()

フィールド内のテキストを取得します

8

setValidator()

検証ルールを設定します。 利用可能なバリデーターは

  • QIntValidator* -入力を整数に制限します *QDoubleValidator* -指定された小数に制限された数値の小数部 *QRegexpValidator* -入力を正規表現と照合します
9

setInputMask()

入力に文字の組み合わせのマスクを適用します

10

setFont()

コンテンツのQFontオブジェクトを表示します

QLineEditオブジェクトは、次の信号を発します-

以下に、最も一般的に使用される信号の方法を示します。

Sr.No. Methods & Description
1

cursorPositionChanged()

カーソルが移動するたびに

2

editingFinished()

Enterキーを押すか、フィールドがフォーカスを失ったとき

3

returnPressed()

「Enter」を押すと

4

selectionChanged()

選択したテキストが変更されるたび

5

textChanged()

ボックス内のテキストが入力またはプログラム的な手段によって変化するとき

6

textEdited()

テキストが編集されるたびに

この例のQLineEditオブジェクトは、これらのメソッドのいくつかの使用方法を示しています。

最初のフィールド e1 は、カスタムフォントを使用してテキストを右揃えで表示し、整数入力を許可します。 2番目のフィールドは、入力を小数点以下2桁の数字に制限します。 3番目のフィールドには、電話番号を入力するための入力マスクが適用されます。 フィールド e4 のtextChanged()シグナルはtextchanged()スロットメソッドに接続されています。

EchoModeプロパティがPasswordに設定されているため、 e5 フィールドの内容はパスワード形式でエコーされます。 Editingfinished()シグナルはpresenter()メソッドに接続されています。 したがって、ユーザーがEnterキーを押すと、関数が実行されます。 フィールド e6 にはデフォルトのテキストが表示されますが、読み取り専用に設定されているため編集できません。

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

def window():
   app = QApplication(sys.argv)
   win = QWidget()

   e1 = QLineEdit()
   e1.setValidator(QIntValidator())
   e1.setMaxLength(4)
   e1.setAlignment(Qt.AlignRight)
   e1.setFont(QFont("Arial",20))

   e2 = QLineEdit()
   e2.setValidator(QDoubleValidator(0.99,99.99,2))

   flo = QFormLayout()
   flo.addRow("integer validator", e1)
   flo.addRow("Double validator",e2)

   e3 = QLineEdit()
   e3.setInputMask('+99_9999_999999')
   flo.addRow("Input Mask",e3)

   e4 = QLineEdit()
   e4.textChanged.connect(textchanged)
   flo.addRow("Text changed",e4)

   e5 = QLineEdit()
   e5.setEchoMode(QLineEdit.Password)
   flo.addRow("Password",e5)

   e6 = QLineEdit("Hello Python")
   e6.setReadOnly(True)
   flo.addRow("Read Only",e6)

   e5.editingFinished.connect(enterPress)
   win.setLayout(flo)
   win.setWindowTitle("PyQt")
   win.show()

   sys.exit(app.exec_())

def textchanged(text):
   print "contents of text box: "+text

def enterPress():
   print "edited"

if __name__ == '__main__':
   window()

上記のコードは、次の出力を生成します-

QLineEditウィジェットの出力

contents of text box: h
contents of text box: he
contents of text box: hel
contents of text box: hell
contents of text box: hello
editing finished