Pyqt-qinputdialog-widget

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

PyQt-QInputDialogウィジェット

これは、テキストフィールドと、[OK]と[キャンセル]の2つのボタンを備えた事前設定ダイアログです。 ユーザーが[OK]ボタンをクリックするか、Enterキーを押すと、親ウィンドウはテキストボックスに入力を収集します。

ユーザー入力は、数字、文字列、またはリストのアイテムにすることができます。 ユーザーにすべきことを促すラベルも表示されます。

QInputDialogクラスには、ユーザーからの入力を受け入れるために次の静的メソッドがあります-

Sr.No. Methods & Description
1

getInt()

整数のスピナーボックスを作成します

2

getDouble()

浮動小数点数のスピナーボックスを入力できます

3

getText()

テキストを入力する単純な行編集フィールド

4

getItem()

ユーザーが項目を選択できるコンボボックス

次の例は、入力ダイアログ機能を実装しています。 最上位ウィンドウには3つのボタンがあります。 それらのclicked()シグナルは、接続されたスロットを介してInputDialogをポップアップします。

items = ("C", "C++", "Java", "Python")

item, ok = QInputDialog.getItem(self, "select input dialog",
   "list of languages", items, 0, False)

   if ok and item:
      self.le.setText(item)

   def gettext(self):
      text, ok = QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')
      if ok:
         self.le1.setText(str(text))

   def getint(self):
      num,ok = QInputDialog.getInt(self,"integer input dualog","enter a number")

      if ok:
         self.le2.setText(str(num))

完全なコードは次のとおりです-

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

class inputdialogdemo(QWidget):
   def __init__(self, parent = None):
      super(inputdialogdemo, self).__init__(parent)

      layout = QFormLayout()
      self.btn = QPushButton("Choose from list")
      self.btn.clicked.connect(self.getItem)

      self.le = QLineEdit()
      layout.addRow(self.btn,self.le)
      self.btn1 = QPushButton("get name")
      self.btn1.clicked.connect(self.gettext)

      self.le1 = QLineEdit()
      layout.addRow(self.btn1,self.le1)
      self.btn2 = QPushButton("Enter an integer")
      self.btn2.clicked.connect(self.getint)

      self.le2 = QLineEdit()
      layout.addRow(self.btn2,self.le2)
      self.setLayout(layout)
      self.setWindowTitle("Input Dialog demo")

   def getItem(self):
      items = ("C", "C++", "Java", "Python")

      item, ok = QInputDialog.getItem(self, "select input dialog",
         "list of languages", items, 0, False)

      if ok and item:
         self.le.setText(item)

   def gettext(self):
      text, ok = QInputDialog.getText(self, 'Text Input Dialog', 'Enter your name:')

      if ok:
         self.le1.setText(str(text))

   def getint(self):
      num,ok = QInputDialog.getInt(self,"integer input dualog","enter a number")

      if ok:
         self.le2.setText(str(num))

def main():
   app = QApplication(sys.argv)
   ex = inputdialogdemo()
   ex.show()
   sys.exit(app.exec_())

if __name__ == '__main__':
   main()

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

QInputDialogウィジェットの出力