#1
by atell » 6ヶ月前
初めまして。atellと申します。よろしくお願い致します。
Raspberry Pi OS 64bitで、Geanyを使ってコードを書いています。まだ始めたばかりなのでわからない事だらけです。GTKを使っています。ここもよくわかりません。ちなみにこのコードはCopilotに組んでもらいました。
コード:
#include <gtk/gtk.h>
#include <stdio.h>
gint showMessageBox(const char *message, const char *title) {
GtkWidget *dialog;
gint response;
// メッセージダイアログの作成
dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_MODAL,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK,
"%s", message);
gtk_window_set_title(GTK_WINDOW(dialog), title);
// ダイアログを表示し、ユーザーの応答を待つ
response = gtk_dialog_run(GTK_DIALOG(dialog));
// ダイアログを破棄
gtk_widget_destroy(dialog);
return response; // 応答を返す
}
int main(int argc, char *argv[]) {
// GTK初期化
gtk_init(&argc, &argv);
// メッセージボックスを表示し、応答を取得
gint response = showMessageBox("Hello, Raspberry Pi!", "Message Box");
// 応答に基づく処理
if (response == GTK_RESPONSE_OK) {
printf("OK button was clicked.\n");
}
// 追加の処理
printf("Continuing with the next steps.\n");
// GTKメインループを開始
gtk_main();
// メインループを終了
//gtk_main_quit();
return 0;
}
ターミナルのウィンドウが消えず、Ctrl+cで終了しないといけません。プログラムが完全に終了していないのでしょうか?これが入力待ちで止まるというのが正常な終了だと思うのですが、違うのでしょうか?実行ファイルを起動してOKボタンを押すとウィンドウは消えますが、終了せずにタスクマネージャに残ります。
gtk_main();が問題のようなのですが、ここをgtk_main_quit();にすると、ウィンドウは閉じますが。よくわかりません。ご教授ください。どうかよろしくお願い致します。
初めまして。atellと申します。よろしくお願い致します。
Raspberry Pi OS 64bitで、Geanyを使ってコードを書いています。まだ始めたばかりなのでわからない事だらけです。GTKを使っています。ここもよくわかりません。ちなみにこのコードはCopilotに組んでもらいました。
[code]
#include <gtk/gtk.h>
#include <stdio.h>
gint showMessageBox(const char *message, const char *title) {
GtkWidget *dialog;
gint response;
// メッセージダイアログの作成
dialog = gtk_message_dialog_new(NULL,
GTK_DIALOG_MODAL,
GTK_MESSAGE_INFO,
GTK_BUTTONS_OK,
"%s", message);
gtk_window_set_title(GTK_WINDOW(dialog), title);
// ダイアログを表示し、ユーザーの応答を待つ
response = gtk_dialog_run(GTK_DIALOG(dialog));
// ダイアログを破棄
gtk_widget_destroy(dialog);
return response; // 応答を返す
}
int main(int argc, char *argv[]) {
// GTK初期化
gtk_init(&argc, &argv);
// メッセージボックスを表示し、応答を取得
gint response = showMessageBox("Hello, Raspberry Pi!", "Message Box");
// 応答に基づく処理
if (response == GTK_RESPONSE_OK) {
printf("OK button was clicked.\n");
}
// 追加の処理
printf("Continuing with the next steps.\n");
// GTKメインループを開始
gtk_main();
// メインループを終了
//gtk_main_quit();
return 0;
}
[/code]
ターミナルのウィンドウが消えず、Ctrl+cで終了しないといけません。プログラムが完全に終了していないのでしょうか?これが入力待ちで止まるというのが正常な終了だと思うのですが、違うのでしょうか?実行ファイルを起動してOKボタンを押すとウィンドウは消えますが、終了せずにタスクマネージャに残ります。
gtk_main();が問題のようなのですが、ここをgtk_main_quit();にすると、ウィンドウは閉じますが。よくわかりません。ご教授ください。どうかよろしくお願い致します。