QDilaog,如何获取对话框是点击了确定还是取消按钮,c++代码
时间: 2023-12-13 21:03:48 浏览: 56
在 C++ 中,您可以使用 `MessageBox` 函数创建对话框,并获取用户点击的按钮。具体实现可以参考以下代码:
```cpp
#include <Windows.h>
int main()
{
int result = MessageBox(NULL, "确定要执行此操作吗?", "提示", MB_YESNO);
if (result == IDYES) {
printf("您点击了确定按钮!\n");
}
else if (result == IDNO) {
printf("您点击了取消按钮!\n");
}
return 0;
}
```
在上述代码中,我们使用了 `MessageBox` 函数创建了一个简单的对话框,并为“确定”按钮和“取消”按钮分别指定了 `MB_YESNO` 参数。当用户点击按钮时,`MessageBox` 函数会返回一个整数值,根据此值来判断用户点击的是哪个按钮。如果用户点击了“确定”按钮,则返回值为 `IDYES`,如果点击了“取消”按钮,则返回值为 `IDNO`。
相关问题
QDilaog,如何获取自己的对话框是点击了确定还是取消按钮,c++代码
如果您是自己创建对话框,可以在创建对话框时为“确定”按钮和“取消”按钮分别指定不同的 ID,然后在处理按钮点击事件时,通过判断所点击的按钮的 ID 来确定是点击了确定还是取消按钮。具体实现可以参考以下代码:
```cpp
#include <Windows.h>
#include <CommCtrl.h>
// 对话框过程函数
INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
EndDialog(hwndDlg, IDOK);
return TRUE;
case IDCANCEL:
EndDialog(hwndDlg, IDCANCEL);
return TRUE;
default:
break;
}
break;
default:
break;
}
return FALSE;
}
int main()
{
// 创建对话框
int result = DialogBox(NULL, MAKEINTRESOURCE(IDD_DIALOG1), NULL, DialogProc);
// 处理按钮点击事件
if (result == IDOK) {
printf("您点击了确定按钮!\n");
}
else if (result == IDCANCEL) {
printf("您点击了取消按钮!\n");
}
return 0;
}
```
在上述代码中,我们使用了 `DialogBox` 函数创建了一个自定义对话框,并为“确定”按钮和“取消”按钮分别指定了不同的 ID。在处理按钮点击事件时,我们根据返回的值来判断用户点击的是哪个按钮。如果用户点击了“确定”按钮,则返回值为 `IDOK`,如果点击了“取消”按钮,则返回值为 `IDCANCEL`。
linux,QDilaog,如何获取自己的对话框是点击了确定还是取消按钮,c++代码
在 Linux 平台上,您可以使用 GTK+ 库创建对话框,并获取用户点击的按钮。具体实现可以参考以下代码:
```cpp
#include <gtk/gtk.h>
// “确定”按钮的回调函数
void on_ok_button_clicked(GtkButton* button, gpointer user_data)
{
gtk_dialog_response(GTK_DIALOG(user_data), GTK_RESPONSE_OK);
}
// “取消”按钮的回调函数
void on_cancel_button_clicked(GtkButton* button, gpointer user_data)
{
gtk_dialog_response(GTK_DIALOG(user_data), GTK_RESPONSE_CANCEL);
}
int main(int argc, char* argv[])
{
// 初始化 GTK 库
gtk_init(&argc, &argv);
// 创建对话框
GtkWidget* dialog = gtk_dialog_new_with_buttons("提示", NULL, 0,
GTK_STOCK_OK, GTK_RESPONSE_OK,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
NULL);
// 获取对话框的“确定”按钮和“取消”按钮
GtkWidget* ok_button = gtk_dialog_get_widget_for_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK);
GtkWidget* cancel_button = gtk_dialog_get_widget_for_response(GTK_DIALOG(dialog), GTK_RESPONSE_CANCEL);
// 为按钮添加回调函数
g_signal_connect(G_OBJECT(ok_button), "clicked", G_CALLBACK(on_ok_button_clicked), dialog);
g_signal_connect(G_OBJECT(cancel_button), "clicked", G_CALLBACK(on_cancel_button_clicked), dialog);
// 显示对话框
gtk_widget_show_all(dialog);
// 运行主循环
gint result = gtk_dialog_run(GTK_DIALOG(dialog));
// 处理按钮点击事件
if (result == GTK_RESPONSE_OK) {
printf("您点击了确定按钮!\n");
}
else if (result == GTK_RESPONSE_CANCEL) {
printf("您点击了取消按钮!\n");
}
// 销毁对话框
gtk_widget_destroy(dialog);
return 0;
}
```
在上述代码中,我们使用了 GTK+ 库创建了一个简单的对话框,并为“确定”按钮和“取消”按钮分别指定了 `GTK_RESPONSE_OK` 和 `GTK_RESPONSE_CANCEL` 参数。当用户点击按钮时,`gtk_dialog_run` 函数会返回一个整数值,根据此值来判断用户点击的是哪个按钮。如果用户点击了“确定”按钮,则返回值为 `GTK_RESPONSE_OK`,如果点击了“取消”按钮,则返回值为 `GTK_RESPONSE_CANCEL`。
阅读全文