2013-02-10 94 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中所見。