With PyQt you can create a QInputDialog (graphical input dialog). PyQT is a GUI module for Python. It’s a binding for the popular Qt framework.
A dialog without input is called a messagebox (QMessageBox).
The input dialog typically consists of a text box and two buttons, the user clicks OK (or Enter), the Dialog collects the input data and returns.
The available dialogs are:
- QInputDialog.getText One line of text
- QInputDialog.getMultiLineText multi-line text
- QInputDialog.getDouble floating point
- QInputDialog.getInt Integer
- QInputDialog.getItem entry selection
QInputDialog example
The example below creates various input dialogs. It includes the single line, multi line, double/float input, integer input and a select box.
It shows them one by one in series, not all at once. You have to click an option to show the next dialog.
<span>import</span> <span>sys</span><span>from</span> <span>PyQt5.QtWidgets</span> <span>import</span> <span>QApplication</span><span>,</span> <span>QWidget</span><span>,</span> <span>QPushButton</span><span>,</span> <span>QDialog</span><span>,</span> <span>QInputDialog</span><span>from</span> <span>PyQt5.Qt</span> <span>import</span> <span>Qt</span><span>class</span> <span>App</span><span>(</span><span>QWidget</span><span>):</span><span>def</span> <span>__init__</span><span>(</span><span>self</span><span>):</span><span>super</span><span>().</span><span>__init__</span><span>()</span><span># text input </span> <span>text</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getText</span><span>(</span><span>self</span><span>,</span> <span>'getText'</span><span>,</span> <span>'Enter text'</span><span>)</span><span>if</span> <span>ok</span> <span>and</span> <span>text</span><span>:</span><span>print</span><span>(</span><span>text</span><span>)</span><span># multi-line input </span> <span>text</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getMultiLineText</span><span>(</span><span>self</span><span>,</span> <span>'getMultiLineText'</span><span>,</span> <span>'Story'</span><span>,</span> <span>"Enter story"</span><span>)</span><span>if</span> <span>ok</span> <span>and</span> <span>text</span><span>:</span><span>print</span><span>(</span><span>text</span><span>)</span><span># enter double </span> <span>double</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getDouble</span><span>(</span><span>self</span><span>,</span> <span>'getDouble'</span><span>,</span> <span>'Enter double'</span><span>,</span> <span>22.33</span><span>,</span> <span>-</span><span>10000</span><span>,</span> <span>10000</span><span>,</span> <span>2</span><span>)</span><span>if</span> <span>ok</span><span>:</span><span>print</span><span>(</span><span>double</span><span>)</span><span># enter integer </span> <span>int</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getInt</span><span>(</span><span>self</span><span>,</span> <span>'getInteger'</span><span>,</span> <span>'Enter number'</span><span>,</span> <span>25</span><span>,</span> <span>0</span><span>,</span> <span>100</span><span>,</span> <span>1</span><span>)</span><span>if</span> <span>ok</span><span>:</span><span>print</span><span>(</span><span>int</span><span>)</span><span># select option </span> <span>items</span> <span>=</span> <span>[</span><span>"Spring"</span><span>,</span> <span>"Summer"</span><span>,</span> <span>"Fall"</span><span>,</span> <span>"Winter"</span><span>]</span><span>item</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getItem</span><span>(</span><span>self</span><span>,</span> <span>'getItem'</span><span>,</span> <span>'Favourite season'</span><span>,</span> <span>items</span><span>,</span> <span>0</span><span>,</span> <span>False</span><span>)</span><span>if</span> <span>ok</span> <span>and</span> <span>item</span><span>:</span><span>print</span><span>(</span><span>item</span><span>)</span><span>if</span> <span>__name__</span> <span>==</span> <span>'__main__'</span><span>:</span><span>app</span> <span>=</span> <span>QApplication</span><span>(</span><span>sys</span><span>.</span><span>argv</span><span>)</span><span>ex</span> <span>=</span> <span>App</span><span>()</span><span>sys</span><span>.</span><span>exit</span><span>(</span><span>app</span><span>.</span><span>exec_</span><span>())</span><span>import</span> <span>sys</span> <span>from</span> <span>PyQt5.QtWidgets</span> <span>import</span> <span>QApplication</span><span>,</span> <span>QWidget</span><span>,</span> <span>QPushButton</span><span>,</span> <span>QDialog</span><span>,</span> <span>QInputDialog</span> <span>from</span> <span>PyQt5.Qt</span> <span>import</span> <span>Qt</span> <span>class</span> <span>App</span><span>(</span><span>QWidget</span><span>):</span> <span>def</span> <span>__init__</span><span>(</span><span>self</span><span>):</span> <span>super</span><span>().</span><span>__init__</span><span>()</span> <span># text input </span> <span>text</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getText</span><span>(</span><span>self</span><span>,</span> <span>'getText'</span><span>,</span> <span>'Enter text'</span><span>)</span> <span>if</span> <span>ok</span> <span>and</span> <span>text</span><span>:</span> <span>print</span><span>(</span><span>text</span><span>)</span> <span># multi-line input </span> <span>text</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getMultiLineText</span><span>(</span><span>self</span><span>,</span> <span>'getMultiLineText'</span><span>,</span> <span>'Story'</span><span>,</span> <span>"Enter story"</span><span>)</span> <span>if</span> <span>ok</span> <span>and</span> <span>text</span><span>:</span> <span>print</span><span>(</span><span>text</span><span>)</span> <span># enter double </span> <span>double</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getDouble</span><span>(</span><span>self</span><span>,</span> <span>'getDouble'</span><span>,</span> <span>'Enter double'</span><span>,</span> <span>22.33</span><span>,</span> <span>-</span><span>10000</span><span>,</span> <span>10000</span><span>,</span> <span>2</span><span>)</span> <span>if</span> <span>ok</span><span>:</span> <span>print</span><span>(</span><span>double</span><span>)</span> <span># enter integer </span> <span>int</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getInt</span><span>(</span><span>self</span><span>,</span> <span>'getInteger'</span><span>,</span> <span>'Enter number'</span><span>,</span> <span>25</span><span>,</span> <span>0</span><span>,</span> <span>100</span><span>,</span> <span>1</span><span>)</span> <span>if</span> <span>ok</span><span>:</span> <span>print</span><span>(</span><span>int</span><span>)</span> <span># select option </span> <span>items</span> <span>=</span> <span>[</span><span>"Spring"</span><span>,</span> <span>"Summer"</span><span>,</span> <span>"Fall"</span><span>,</span> <span>"Winter"</span><span>]</span> <span>item</span><span>,</span> <span>ok</span> <span>=</span> <span>QInputDialog</span><span>.</span><span>getItem</span><span>(</span><span>self</span><span>,</span> <span>'getItem'</span><span>,</span> <span>'Favourite season'</span><span>,</span> <span>items</span><span>,</span> <span>0</span><span>,</span> <span>False</span><span>)</span> <span>if</span> <span>ok</span> <span>and</span> <span>item</span><span>:</span> <span>print</span><span>(</span><span>item</span><span>)</span> <span>if</span> <span>__name__</span> <span>==</span> <span>'__main__'</span><span>:</span> <span>app</span> <span>=</span> <span>QApplication</span><span>(</span><span>sys</span><span>.</span><span>argv</span><span>)</span> <span>ex</span> <span>=</span> <span>App</span><span>()</span> <span>sys</span><span>.</span><span>exit</span><span>(</span><span>app</span><span>.</span><span>exec_</span><span>())</span>import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QDialog, QInputDialog from PyQt5.Qt import Qt class App(QWidget): def __init__(self): super().__init__() # text input text, ok = QInputDialog.getText(self, 'getText', 'Enter text') if ok and text: print(text) # multi-line input text, ok = QInputDialog.getMultiLineText(self, 'getMultiLineText', 'Story', "Enter story") if ok and text: print(text) # enter double double, ok = QInputDialog.getDouble(self, 'getDouble', 'Enter double', 22.33, -10000, 10000, 2) if ok: print(double) # enter integer int, ok = QInputDialog.getInt(self, 'getInteger', 'Enter number', 25, 0, 100, 1) if ok: print(int) # select option items = ["Spring", "Summer", "Fall", "Winter"] item, ok = QInputDialog.getItem(self, 'getItem', 'Favourite season', items, 0, False) if ok and item: print(item) if __name__ == '__main__': app = QApplication(sys.argv) ex = App() sys.exit(app.exec_())
Related links:
原文链接:PyQt QInputDialog
© 版权声明
THE END
暂无评论内容