[英]GTK# sctructure of application
我是桌面應用程序的新手,我想創建一個只使用 1 個窗口的應用程序。 首先,我創建了一個帶有“登錄”按鈕和 2 個文本字段的簡單登錄表單。 當用戶成功登錄時,窗口會改變它的形式。 我固定了一張主窗體的圖片,用戶可以通過單擊右側的 1..4 按鈕在“屏幕”(我不知道如何正確命名)之間切換。 我們有帶有個人資料照片和昵稱的頂部面板,它們一直保留在主窗體中的程序中。
所以,主要問題是:我應該怎么做? 我應該使用哪些小部件以及應該如何實現 GTK+(以及其他,如 Qt 等)中的動態內容? 所以我想要答案、涵蓋這種情況的主題鏈接、指南和課程。 任何事情都會有所幫助。
我閱讀了很多文檔,但似乎我無法找到正確的信息,因為我不知道如何為搜索查詢制定我的問題。
謝謝,我希望我能找到一些幫助。
PS 我將在這個應用程序中使用 C# 和 GTK#。
您只需要創建各種框( Gtk.VBox或Gtk.HBox ),並根據需要隱藏/顯示它們。 我不知道 Gtk.Stack,但我敢打賭它使用相同的原理,也許做了一些優化。
class UniqueWindowView: Gtk.Window
{
void Build()
{
var vbMainBox = new Gtk.VBox();
this.vbLoginPage = this.BuildLoginPage();
this.vbNotebook = this.BuildNotebook();
vbMainBox.PackStart( this.vbLoginPage, true, true, 100 );
vbMainBox.PackStart( this.vbNotebook, true, true, 5 );
vbMainBox.Show();
this.Add( vbMainBox );
this.SetSizeRequest( 600, 400 );
this.Show();
}
// ...
public Gtk.VBox vbLoginPage {
get; private set;
}
public Gtk.VBox vbNotebook {
get; private set;
}
public Gtk.Notebook nbNotebook {
get; private set;
}
public Gtk.Button btLogin {
get; private set;
}
}
運行此方案后,您必須准備顯示或隱藏相應的框。
class UniqueWindowCtrl
{
public UniqueWindowCtrl()
{
this.view = new UniqueWindowView();
this.view.DeleteEvent += (o, args) => this.Quit();
this.view.btLogin.Clicked += (sender, e) => this.ShowNotebook();
}
public void Start()
{
this.ShowLogin();
}
public void ShowLogin()
{
this.view.vbLoginPage.Show();
this.view.nbNotebook.Hide();
}
public void ShowNotebook()
{
this.view.vbLoginPage.Hide();
this.view.nbNotebook.Show();
}
void Quit()
{
this.view.Hide();
Gtk.Application.Quit();
}
UniqueWindowView view;
}
您可以在此處找到GTK# 中唯一窗口的完整源代碼。 希望這可以幫助。
我建議你看看GtkStack 。 這將使您能夠在單個窗口中擁有多個小部件布局,並為您提供一種更改顯示的小部件的簡單方法。 GtkStack 通常與StackSwitcher一起 使用。 然而,普通按鈕也能正常工作。 我還可以建議您使用Glade來布置您的小部件嗎? 這將向您展示您的小部件集的外觀。
編輯:GtkStack 似乎不適用於 Gtk#。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.