我試圖連接到gtkmm的configure_event信號。其他信號,如property_is_active和delete_event正常工作。無法連接到gtkmm的signal_configure_event
下面的代碼示例中,它編譯和運行,但是當我移動或用鼠標調整窗口中,「COUT」並不在控制檯上顯示。
我在什麼可能是錯誤的困惑。正如GTKMM文檔所說,代碼如下,與之前做過的其他「事件」相同,例如按鈕按下:啓用事件的MASK,然後將其信號連接到我的處理程序。 基於返回的一些東西「google」,我嘗試了這裏顯示的add_event(...)以及set_event(...),並且在add/set調用之前包含了一個「show()」努力滿足舊教程中的一些提示(可能來自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()));
}