Qt5 Python GUI 编程指南
创建时间:2018-12-10  访问量:9633  9  1

Qt5 Python GUI 编程指南

输入对话框

在QInputDialog类的帮助下可以创建一个输入对话框。这个QInputDialog类提供了一个能够从用户获取单个值的对话框。提供的输入对话框是由一个文本域和 OK 与 Cancel 两个按钮组成。文本域可以使我们能够从用户那里获取一个值,这个值可以是一个字符串,一个数字或一个列表的选项。QInputDialog类中提供的下列方法可以从用户那里接受不同类型的输入。

  • getInt():这个方法显示了一个用于接受整型值的spin box(自旋框)。为了从用户那里获取一个整型值,你需要使用下面的语法:

    getInt(self, window title, label before LineEdit widget, default value, minimum, maximum and step size)

    下面来看一个示例:

    quantity, ok = QInputDialog.getInt(self, "Order Quantity", "Enter quantity:", 2, 1, 100, 1)

    上面的示例代码提示用户输入一个数量。如果用户没有使用任何值,quantity黙认值就为2。用户可以输入1到100之间的任意一个值。

  • getDouble():此方法显示一个带有浮点数的自旋框,用于接受小数。为了从用户那里获得小数,你需要使用以下语法:

    getDouble(self, window title, label before LineEdit widget, default value, minimum, maximum and number of decimal places desired)

    看下面的例子:

    price , ok = QInputDialog.getDouble(self, "Price of the product", "Enter price:", 1.50, 0, 100, 2)

    上面的代码用于提示用户输入产品的介格。如果用户没有输入任何值,price 变量的黙认值就是 1.5。用户可以输入0到100之间的任意小数。

  • getText():这个方法显示了一个Line Edit用来接受用户输入的文本。为了从用户那里获得文本,你需要使用下面的语法:

    getText(self, window title, label before LineEdit widget)

    看下面的例子:

    name, ok = QtGui.QInputDialog.getText(self, 'Get Customer Name', 'Enter your name:')

    上面的代码将会显示一个标题为Get Customer Name的输入对话框。这个对话框上将显示一个Line Edit部件,允许用户输入任意文本。在Line Edit部件之前会显示一个Label部件,它的文本是Enter your name。在这个对话框中输入的客户名称将会被赋给name变量。

  • getItem():这个方法展示了一个显示一些选项的组合框用于选择。为了从下拉列表中选择一个选项,你需要使用下面的语法:

    getItem(self, window title, label before combo box, array, current item, Boolean Editable)

    这里的array是显示在组合框中的选项列表。这个current item是组合框中当前选中的选项。Editable是一个布尔值,如果它的值是True,意味着用户可以编辑这个组合框并输入他们自己的文本。当Editable设置为False时,它意味着用户仅仅可以从组合框中选择相关的选项而不能编辑选项列表。看下面的例子:

    countryName, ok = QInputDialog.getItem(self, "Input Dialog", "List of countries", countries, 0, False)

    上面的代码将会显示一个标题为Input Dialog的输入对话框。这个对话框显示了一个组合框,组合框中显示了countries 数组提供的一些选项。组合框前面显示了个文本为List of countries的Label部件。组合框中选择的国家名称将会赋给countryName变量。用户可以从组合框中选择任意一个选项,但不可以更改国家的名称。