0

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

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

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

另外,如果我想在消息窗口/框中显示变量的整数值或字符串,我是否只需将其放在引号之外但包含它?它的语法是什么?

谢谢!

4

2 回答 2

2

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

所以你想打电话:

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行代码运行时,将向用户显示一个对话框。当用户点击 OK 或 Cancel 时,输入的 user_ID 将被放入,user_id并且ok是一个布尔值,表示是否点击了 OK 按钮(True如果点击了 OK 按钮,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 字符串格式问题,您应该单独研究。简而言之,在我的示例中,您可以显示一个字符串。该字符串的长度取决于您(可以是多行,有换行符等)

于 2014-03-04T05:23:20.983 回答
0

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

于 2014-03-03T09:40:20.783 回答