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()
上記のコードは、次の出力を生成します-