簡體   English   中英

gtkmm 捕獲小部件銷毀事件

[英]gtkmm catch widget destruction event

我使用 gtkmm 3.24.5。

我想添加一個 sigc 回調來“銷毀”一個小部件。 我怎樣才能連接? Gtk::Widget 上沒有這樣的信號。 我可以使用 C API 來完成嗎?

感謝您的回復。

我沒有找到特定於 3.24.5 的文檔。 但是,在 3.24.4 中, Gtk::Widgets繼承自sigc::trackable ,它暴露了一個sigc::trackable::add_destroy_notify_callback方法。 這似乎是你正在尋找的東西。 這是一個簡單的例子來展示它是如何工作的(Gtkmm 3.24.20):

#include <iostream>
#include <gtkmm.h>

void* DestructorCallback(void* p_in)
{
    std::cout << "Button destruction!" << std::endl;
    return nullptr;
}

class MainWindow : public Gtk::ApplicationWindow
{

public:

    MainWindow();

private:

    Gtk::Button m_button;

};

MainWindow::MainWindow()
: m_button{"Hello World!"}
{
    m_button.add_destroy_notify_callback(nullptr, DestructorCallback);
}

int main(int argc, char *argv[])
{
    auto app = Gtk::Application::create(argc, argv, "org.gtkmm.examples.base");
  
    MainWindow window;
    window.show_all();
  
    return app->run(window);
}

文檔並沒有說太多(事實上,它什么也沒說)關於什么應該是p_in以及回調的void*返回值雖然......

希望這適用於 Gtkmm 3.24.5。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM