pyqt:QMessageBox - 文本框和设置数据?

时间:2014-03-03 01:09:48

标签: python pyqt qmessagebox

我正在尝试在pyqt中完成GUI。我正在尝试创建一个弹出窗口,其中有一个文本框,用户可以在其中键入/设置用户的ID(1-99),然后单击“确定”按钮进行设置并关闭窗口。 这是我到目前为止所做的。

def viewProfile(self)
        profBox = QMessageBox()
        QMessageBox.about(self, 'Profile', "///Text box where can type User ID:// ",
    QMessageBox.Ok)

我不确定如何生成文本框。

另外,如果我想在消息窗口中显示变量的整数值或字符串 / box,我只是将它留下引号但包括它吗?它的语法是什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

您想使用QInputDialog。这有一堆静态方法,它们生成一个完整的对话框,并在用户单击OK时返回所选的整数。这意味着您无需担心创建对话框对象,添加小部件和按钮等等。

所以你想要打电话:

parent_window = self #probably..., depends on your code
minimum_value = 1
maximum_value = 99
default_value = 1
title = "Profile"
message = "Select your user ID"
user_id, ok = QInputDialog.getInt(parent_window, title, message, default_value, minimum_value, maximum_value)

QInputDialog代码行运行时,将向用户显示一个对话框。当用户单击“确定”或“取消”时,输入的user_ID将放在user_id中,ok将是一个布尔值,指示是否单击了“确定”按钮(True如果“确定”按钮是单击,False如果单击取消按钮

如果要在消息中放置整数,可以执行以下操作:

message = "Select your user ID. An integer I want you to know about is %d. I hope you find that useful."%my_integer

但这确实是一个Python字符串格式化问题,您应该单独研究。简而言之,在我的示例中,您可以显示一个字符串。这个字符串有多长,取决于你(它可以是多行,有新行字符等)

答案 1 :(得分:0)

你应该使用QDialog。这样你就可以按照你想要的方式自定义它(添加文本框,按钮...) 看看我的答案here,基本上它是在QTDesigner中创建的登录对话框,但你可以用代码创建它,因为它更简单了