-1
私はGTKmmアプリケーションをクラス(Main
という名前)の中に持っています。私はMain
のメソッドをボタンのクリックアクションのコールバック関数として使用します。GTKmm:ボタンクリック信号を接続しようとするとプログラムがクラッシュする
私はボタンを初期化:gtkmmの公式ガイドから報告されたように、私は機能に信号を接続
void Main::on_login_button_login_clicked()
{
// Code
}
:
#define GTK_LOGIN_BUTTON_LOGIN "lw_loginButton"
[...]
builder->get_widget(GTK_LOGIN_BUTTON_LOGIN, loginWidgets.Login);
:
struct LoginWidgets {
Gtk::Button *Login;
Gtk::Entry *username;
Gtk::Entry *password;
} loginWidgets;
コールバック関数:
loginWidgets.Login->signal_clicked().connect(
sigc::mem_fun(this,&Main::on_login_button_login_clicked));
プログラムを起動するとクラッシュします。デバッグを通して、私は信号を接続しようとした後にクラッシュすることに気づいた。最後の行のコードにコメントすると、プログラムは動作しますが、(明らかに)シグナルは処理されません。 コンパイル時および実行時にエラーは報告されません。
アドバイスはありますか?
EDIT:間違った信号接続を指摘したため、最後のコードラインを修正しました。
私は特定のウィジェットで間違いを犯したことをご理解いただきありがとうございます。 3つのシグナルコールバックで3つのウィジェットを初期化して接続しても、質問のウィジェットのみを表示しました –
私の更新された答えを見てください。 –