GTKMM configure_event信号に接続しようとしています。 property_is_activeやdelete_eventなどの他のシグナルは正常に動作します。GTKMMに接続できませんsignal_configure_event
以下のコードサンプルでは、コンパイルして実行しますが、マウスでウィンドウを移動またはサイズ変更すると、コンソールに「cout」は表示されません。
私は何が間違っているのだろうと困惑しています。このコードはGTKMMのドキュメントのように、私が前に行ったボタンの押下など、他の「イベント」と同じパターンです。イベントのマスクを有効にしてから、シグナルをハンドラに接続します。いくつかの "google"が返されたので、add_event(...)とset_event(...)の両方を試してみました。古いチュートリアル(GTK2の可能性もある)でいくつかのヒントを満たす努力。人々を示唆様々なフォーラムがC以外の(ほとんどの言語++。
(現在のDebian Linuxでは、GTK 3)
任意の助けをいただければ幸いです。この点を越え得ている上の他の記事があります。
#include <fstream>
#include <istream>
#include <ostream>
#include <iostream>
#include <gdkmm.h>
#include <gtkmm.h>
using namespace std;
class AdjunctWindow : public Gtk::Window {
public:
AdjunctWindow();
~AdjunctWindow();
bool on_configure_changed(GdkEventConfigure* configure_event);
};
AdjunctWindow::AdjunctWindow() {
add_events(Gdk::STRUCTURE_MASK);
signal_configure_event().connect(sigc::mem_fun(*this,
&AdjunctWindow::on_configure_changed));
}
AdjunctWindow::~AdjunctWindow(){
}
bool AdjunctWindow::on_configure_changed(GdkEventConfigure* configure_event) {
cout << "configure changed\n";
return false;
}
int main(int argc, char** argv) {
Gtk::Main kit(argc, argv);
Gtk::Main::run(*(new AdjunctWindow()));
}