在PyQt中为Mac创建消息框作为表单

0 投票
2 回答
806 浏览
提问于 2025-04-17 06:54

我在mac OS上使用消息框作为单独的对话框,而不是使用表单,现在我正在努力让它生成一个像消息框的表单,而不是单独的对话框。

我尝试将消息框设置为模态框:

(messagebox.setWindowModality(QtCore.Qt.WindowModal))

并将消息框的父对话窗口标记设置为表单

(parentDialog.setWindowFlags(QtCore.Qt.Sheet) messagebox.setWindowFlags(QtCore.Qt.Sheet))

但是上面的命令没有成功,没法创建一个表单,而是生成了单独的对话框。

有没有人知道怎么解决这个问题?

2 个回答

0

根据助手的说法,你只需要设置窗口的模式和父窗口。你有没有把消息框的父窗口设置为父对话框呢?

2

对话框不能通过 exec_() 这种方式显示为一个浮动窗口。

相反,你可以直接使用 QMessageBox.open(),在Mac上,这个方法大致相当于:

messagebox.finished.connect(self.handler)
messagebox.setWindowModality(QtCore.Qt.WindowModal)
messagebox.setParent(messagebox.parentWidget(), QtCore.Qt.Sheet)
messagebox.setResult(0)
messagebox.show()

撰写回答