`
shrek
  • 浏览: 74722 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
qja
社区版块
存档分类
最新评论

gtkmm 学习笔记(2) 按钮.

    博客分类:
  • GNU
阅读更多
Gtkmm 按钮

gtkmm提供了四种基础的按钮类型
Gtk::Button, Gtk::ToggleButton, Gtk::CheckButton, Gtk::RadioButton

有两 种方式建立一个Button, 你可以在构造函数中指定Button的文本,或在稍后通过set_label()来设置它.
想要定义一个加速键,在文本中的某个字符前加一条下划线,并加上true参数以指明是使用 mnemonic paramter.
如:
Gtk::Button* pButton=new Gtk::Button("_Something",true);

还有一些通用的按钮可以用(Stock item), 这样你的程序就可以跟其他程序有一致的外观了.
如: Gtk::Button* pButton=new Gtk::Button(Gtk::Stock::OK);
这样构造的函数,将会有标准的文本(所有语言,跟环境中的一样),有标准的加速键,和标准的图标 .

还有,Gtk::Button也是个容器,所以你可以在上面放任何widget,如Gtk::Image

ToggleButton跟普通按钮差不多,不过你可以通过 get_active()  和 set_active()来取得和设置按钮的
状态,如果按钮是按下的,get_active()返回true.
另外还可以使用 toggled()来进行切换

CheckButton从ToggleButton继承过来,唯一真正的区别是两种的外观.

RadioButton跟CheckButton差不多,区别是它可以放在一个组中,一个组里只有一个RadioButton可以被
选中. 一种如下:
  Gtk::RadioButton m_rb1, m_rb2,m_rb3;
  ........
  Gtk::RadioButton::Group group=m_rb1.get_group();
  m_rb2.set_group(group);
  m_rb3.set_group(group);
通过得到第一个按钮的group并设置到后面的按钮中. 注意,你不能只是
m_rb2.set_group(m_rb1.get_group());
因为group会被set_group()修改,所以是non-const的.

另一种是:
  Gtk::RadioButton::Group group;
  Gtk::RadioButton *m_rb1=Gtk::manage(new Gtk::RadioButton(group,"button1"));
  Gtk::RadioButton *m_rb2=Gtk::manage(new Gtk::RadioButton(group,"button2"));
分享到:
评论

相关推荐

    gtkmm-3.24.2.tar.xz

    gtkmm-3.24.2.tar.xz

    gtkmm-documentation-master.zip

    总之,"gtkmm-documentation-master.zip" 文件是学习和开发 gtkmm 应用的重要资源,包含了所有必要的源代码和文档,能够帮助开发者快速上手并精通 gtkmm。无论是初学者还是经验丰富的开发者,都能从中受益匪浅。

    gtkmm-2.4.0.tar.gz

    2. **信号和槽机制**:GTKMM实现了GTK+的信号和槽系统,允许对象之间的通信。当一个事件发生(如用户点击按钮),对应的信号会被触发,然后连接到的槽函数会被执行。这种事件驱动的编程模式简化了程序逻辑。 3. **...

    gtkmm中文学习手册.chm

    2. **窗口与小部件**:gtkmm中的GtkWidget类是所有可见元素的基类,包括窗口(GtkWindow)、按钮(GtkButton)、文本框(GtkEntry)等。开发者需要学习如何创建、布局和管理这些小部件。 3. **信号与回调**:在...

    gtkmm4 程序设计.pdf

    标题:“gtkmm4 程序设计.pdf”描述:“gtkmm4的程序设计manual,最新版中文版,开源的文档,直接下载即可食用。”标签:“gtkmm” 根据提供的文件内容,我们可以得知这份文档是一本关于gtkmm4程序设计的手册。gtkmm是...

    gtkmm30-3.22.2-1.el7.x64-86.rpm.tar.gz

    1、文件内容:gtkmm30-3.22.2-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gtkmm30-3.22.2-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo ...

    gtkmm30-devel-3.22.2-1.el7.x86_64.rpm

    gtkmm30-devel-3.22.2-1.el7.x86_64.rpm

    gtkmm30-doc-3.22.2-1.el7.noarch.rpm

    gtkmm30-doc-3.22.2-1.el7.noarch.rpm

    gtkmm30-devel-3.22.2-1.el7.x64-86.rpm.tar.gz

    1、文件内容:gtkmm30-devel-3.22.2-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gtkmm30-devel-3.22.2-1.el7.tar.gz #Step2、进入解压后的目录,执行...

    gtkmm24-devel-2.24.5-1.el7.x86_64.rpm

    gtkmm24-devel-2.24.5-1.el7.x86_64.rpm

    gtkmm24-2.24.5-1.el7.x64-86.rpm.tar.gz

    2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gtkmm24-2.24.5-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装

    gtkmm30-3.22.2-1.el7.x86_64.rpm

    离线安装包,亲测可用

    gtkmm24-docs-2.24.5-1.el7.x64-86.rpm.tar.gz

    2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gtkmm24-docs-2.24.5-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导...

    gtkmm24-devel-2.24.5-1.el7.x64-86.rpm.tar.gz

    2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/gtkmm24-devel-2.24.5-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导...

    gtkmm24-2.24.5-1.el7.x86_64(1).rpm

    离线安装包,亲测可用

    gtkmm24-2.24.5-6.el8.x86_64.rpm

    离线安装包,亲测可用

    programming-with-gtkmm.pdf

    ### 使用GTKMM进行编程 #### 一、简介与背景 《Programming with gtkmm》是一本由多位专家共同编写的书籍,旨在帮助读者掌握如何利用C++结合...通过学习本书,读者将能够熟练地使用GTKMM开发出高质量的GUI应用程序。

    gtkmm30-3.22.2-3.el8.i686.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    gtkmm30-3.22.2-3.el8.aarch64.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

Global site tag (gtag.js) - Google Analytics