2013-02-10 105 views
1

我是相当新的C++,我有一点在Java MCV编程经验之间切换。即时通讯在C++上使用GTKmm 我想要做的是编写一个教学助手的应用程序,将应用程序提交和编辑到各个职位,管理员可以进入视图并接受这些应用程序。gtkmm的3.0如何框架或窗口

我试图在乞讨要做的就是创建3“框架”

  • (我只是在工作的时刻在递交申请的学生),这首先将有2个按钮1选择,如果你是一名学生/管理

  • 一旦点击你是一个学生,我想隐藏这个框架和展示我的第二帧

  • 第二个框架将有另外2个按钮一个用于创建应用程序和其他编辑应用

我的核心问题是,我不知道如何帧之间进行切换,我已经写了所有的代码为我的模型,并明白了一切我想要它做的,但是我不能似乎找到如何做到这一点?

我唯一的想法是为每个这些创建窗口,使它们看起来都不错瓦特/ e,然后当按下一个按钮有一个窗口关闭,并写入字符串我可以访问文件以查看哪个按钮已被按下,然后相应地打开一个新窗口。我应该这样做还是有更好的方法?

回答

1

最简单的方法是使用笔记本小部件。您可以隐藏选项卡,因为您将使用方法set_show_tabs(false)来控制显示哪个页面。使用方法append_page()将每个框架的顶级窗口小部件放在窗格中,然后使用set_current_page()在它们之间切换。您可能想使用方法set_show_bevel(false)来隐藏笔记本的斜面,如果它令人分心。

使用信号来做出一个小部件(例如“我是学生”按钮)在一个页面上做一些事情(例如去到第二页)。如果你不知道这意味着什么或如何去做,那么通过gtkmm tutorial,它会解释这一点和更多。

+0

笔记本电脑可以占用程序的整个区域,基本上就像一个框架一样吗?或者即使选项卡被隐藏,是否有可见的边框? – NULL 2016-04-07 19:32:27

+0

自从我进行了任何gtk编程以来已经有一段时间了,但是我似乎没有记得如果禁用了斜角和制表符,“tab”的东西就不会显示出来。你必须尝试确保。 – ergosys 2016-04-08 04:59:55

2

我想我可以建议任何版本> = GTK + 3.10更好/更地道的选择 - 这,是公平的,抵达公认的答案大约半年后。

如果你想不喜欢选项卡的任何配件部件之一,在-A-时间之间进行切换,那么Gtk::Stack似乎是一个更好的选择。因为它专门针对一次一个演示文稿,而没有任何冗余和(理论上)Notebook的手动切换功能的开销,您只需立即禁用!这是一个有多个孩子的容器,在任何特定时刻都有一个容器可见,当然还有改变活动孩子的方法。

您可以连接自己的部件和/或事件来管理该Stack的孩子所示。另外 - 虽然可能只是在这种情况下恢复冗余 - 还有一个StackSwitcher伴随窗口小部件,它几乎是一个垂直标签栏,如GTK +演示和GNOME Tweak Tool中所见。