PyQt5 - QInputDialog 控制元件



這是一個預先配置的具有一個文字欄位和兩個按鈕的對話方塊,確定和取消。父視窗在使用者單擊確定按鈕或按 Enter 時收集文字框中的輸入。

使用者輸入可以是數字、字串或列表中的項。還顯示提示使用者執行操作的標籤。

QInputDialog 類有以下從使用者處接受輸入的靜態方法 −

序號 方法和說明
1

getInt()

建立用於整數的微調框

2

getDouble()

可以輸入浮點數的微調框

3

getText()

一個簡單的行編輯欄位,用於鍵入文字

4

getItem()

使用者可以選擇項的組合框

示例

以下示例實現了輸入對話方塊功能。頂級視窗有三個按鈕。它們的 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 PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets 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 Widget Output
pyqt_basic_widgets.htm
廣告
© . All rights reserved.