我正在尝试在pyqt中完成GUI。我正在尝试创建一个弹出窗口,其中有一个文本框,用户可以在其中键入/设置用户的ID(1-99),然后单击“确定”按钮进行设置并关闭窗口。 这是我到目前为止所做的。
def viewProfile(self)
profBox = QMessageBox()
QMessageBox.about(self, 'Profile', "///Text box where can type User ID:// ",
QMessageBox.Ok)
我不确定如何生成文本框。
另外,如果我想在消息窗口中显示变量的整数值或字符串 / box,我只是将它留下引号但包括它吗?它的语法是什么?
谢谢!
答案 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中创建的登录对话框,但你可以用代码创建它,因为它更简单了