messagebox选择“确定”打开新的窗口,选择“取消”关闭messagebox且不打开新的窗口
时间: 2023-10-02 13:07:39 浏览: 39
好的,你可以使用以下代码实现:
```python
import tkinter as tk
from tkinter import messagebox
def open_new_window():
# 打开新窗口的函数
pass
def show_message_box():
# 显示 message box 的函数
result = messagebox.askyesno("标题", "内容")
if result:
open_new_window()
# 创建主窗口
root = tk.Tk()
# 在主窗口添加一个按钮,点击时显示 message box
button = tk.Button(root, text="打开窗口", command=show_message_box)
button.pack()
# 进入消息循环
root.mainloop()
```
在上面的代码中,我们使用 `messagebox.askyesno` 方法显示 message box,并根据用户的选择来打开或关闭新窗口。当用户点击 message box 中的确定按钮时,`askyesno` 方法返回 True,我们就调用 `open_new_window` 函数打开新窗口;当用户点击取消按钮时,`askyesno` 方法返回 False,我们就什么也不做,关闭 message box。
相关问题
c#messagebox选择“确定”打开新的窗口,选择“取消”关闭messagebox且不打开新的窗口
好的,你可以使用以下代码实现:
```csharp
using System;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void openNewWindow()
{
// 打开新窗口的方法
}
private void showMessagebox()
{
// 显示 message box 的方法
DialogResult result = MessageBox.Show("内容", "标题", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes)
{
openNewWindow();
}
}
private void button1_Click(object sender, EventArgs e)
{
// 点击按钮时调用 showMessagebox 方法
showMessagebox();
}
}
```
在上面的代码中,我们使用 `MessageBox.Show` 方法显示 message box,并根据用户的选择来打开或关闭新窗口。当用户点击 message box 中的确定按钮时,`Show` 方法返回 `DialogResult.Yes`,我们就调用 `openNewWindow` 方法打开新窗口;当用户点击取消按钮时,`Show` 方法返回 `DialogResult.No`,我们就什么也不做,关闭 message box。
messageBox->warning窗口使用代码关闭不了
如果您使用代码创建了`QMessageBox`的`warning`对话框窗口,并且想要通过代码关闭它,可以使用以下代码:
```
QMessageBox *msgBox = new QMessageBox(QMessageBox::Warning, "Title", "Message", QMessageBox::Ok);
msgBox->setAttribute(Qt::WA_DeleteOnClose); // 使消息框关闭时自动删除
msgBox->show(); // 显示消息框
// 关闭消息框窗口
msgBox->close();
```
请注意,如果您使用`exec()`方法显示`QMessageBox`对话框窗口作为模态对话框,那么您需要使用`accept()`或`reject()`方法来关闭对话框窗口。如果您使用`show()`方法显示对话框窗口作为非模态对话框,那么您可以使用`close()`方法来关闭对话框窗口。
另外,为了确保消息框关闭时自动删除,您可以使用`setAttribute(Qt::WA_DeleteOnClose)`方法设置`Qt::WA_DeleteOnClose`属性。这样,当消息框窗口被关闭时,它的内存空间也会被释放。