- PyQt5 教程
- PyQt5 - 主頁
- PyQt5 - 簡介
- PyQt5 - 新特性
- PyQt5 - Hello World
- PyQt5 - 主要類
- PyQt5 - 使用 Qt Designer
- PyQt5 - 訊號和槽
- PyQt5 - 佈局管理
- PyQt5 - 基本控制元件
- PyQt5 - QDialog 類
- PyQt5 - QMessageBox
- PyQt5 - 多文件介面
- PyQt5 - 拖放
- PyQt5 - 資料庫處理
- PyQt5 - 繪圖 API
- PyQt5 - 畫刷樣式常量
- PyQt5 - QClipboard
- PyQt5 - QPixmap 類
- PyQt5 有用的資源
- PyQt5 - 快速指南
- PyQt5 - 有用的資源
- PyQt5 - 討論
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()
輸出
上面的程式碼產生以下輸出 −
pyqt_basic_widgets.htm
廣告