PyQt QInputDialog

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
喜欢就支持一下吧
点赞8 分享
Fight for the things you love no matter what you may face, it will be worth it.
不管你面对的是什么,为你所爱的而奋斗都会是值得的
评论 抢沙发

请登录后发表评论

    暂无评论内容