linux,QDilaog,如何获取自己的对话框是点击了确定还是取消按钮,c++代码
时间: 2023-12-13 07:03:49 浏览: 207
在 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`。
阅读全文