TA的每日心情 | 难过 2022-9-23 12:52 |
---|
签到天数: 201 天 [LV.7]常住居民III
|
可以通过两种方式来创建按钮,你可以在 Gtk::Button 构造函数中指定标签字符串,或者以后调用 set_label() 来指定标签。
如果你想为按钮定义一个快捷键,那么可以在标签字符串中的某个字符前面加上一个下划线,并且指定可选的参数助记符(mnemonic)为 true。例如:
- Gtk::Button* pButton = new Gtk::Button("_Something", true);
复制代码
Gtk::Button 同时也是一个容器,因此你可以在其中放任何其它的部件,比如放一个 Gtk::Image 在里面。
Gtk::Button部件具有clicked信号,当按下或释放按钮时将会发出该信号。

我们来看一个简单的例子
- //引用头文件,引入所需组件
- #include <gtkmm/window.h>
- #include <gtkmm/button.h>
- #include <iostream>
- //窗口类,继承于gtk::window
- class Buttons : public Gtk::Window
- {
- public:
- Buttons();
- virtual ~Buttons();
- protected:
- //按钮被点击的事件
- void on_button_clicked();
- //按钮
- Gtk::Button m_button;
- };
- //初始化
- Buttons::Buttons():
- m_button(u8"我是按钮") //将按钮的展示文本定义为我是按钮
- {
- //设置窗口标题
- set_title("button demo");
- //为按钮绑定click单击事件
- m_button.signal_clicked().connect(sigc::mem_fun(*this,
- &Buttons::on_button_clicked)); //绑定到函数on_button_clicked
- m_button.set_margin(10); //设置控件与其他控件间的间隔
- set_child(m_button); //将窗口显示的控件设置为button
- }
- Buttons::~Buttons()
- {
- }
- void Buttons::on_button_clicked()
- {
- std::cout << "我是按钮,我被点击了" << std::endl;
- }
- int main(int argc, char* argv[])
- {
- //初始化一个应用
- auto app = Gtk::Application::create("button.dinglz.com");
- //build并显示它
- return app->make_window_and_run<Buttons>(argc, argv);
- }
复制代码
通过运行他,你能得到一个简单的窗口
如下图
被点击时触发事件
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|