gpt4 book ai didi

c# - 应用程序的 GTK# 结构

转载 作者:太空宇宙 更新时间:2023-11-03 12:33:03 24 4
gpt4 key购买 nike

我是桌面应用程序的新手,我想创建一个只使用一个窗口来处理所有事情的应用程序。首先,我创建了一个带有“登录”按钮和 2 个文本字段的简单登录表单。当用户成功登录窗口改变它的形式。我固定了一个 picture比如说,MAIN 表单,用户可以通过单击右侧的 1..4 按钮在“屏幕”(我不知道如何正确命名)之间切换。我们的顶部面板带有个人资料照片和昵称,它们始终保留在 MAIN 窗体中。

所以,主要问题是:我应该怎么做?我应该使用哪些小部件以及应该如何实现 GTK+(以及其他,如 Qt 等)中的动态内容?所以我想要答案、指向涵盖这种情况的主题的链接、指南和类(class)。任何事情都会有所帮助。

我阅读了很多文档,但似乎我找不到合适的信息,只是因为我不知道如何为搜索查询制定我的问题。

谢谢,我希望能找到一些帮助。

附言我将为这个应用程序使用 C# 和 GTK#。

最佳答案

您只需要创建各种框(Gtk.VBoxGtk.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;
}

您可以找到 unique window in GTK# here 的完整源代码.希望这会有所帮助。

关于c# - 应用程序的 GTK# 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41988671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com