mono-Gtk中的容器类

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Mono提倡使用Gtk来制作跨平台的UI,Gtk编程有点像java,都有自己的容器类,如果想摆出合适的界面就必须正确的使用Gtk中的容器类, 常用的有如下如 Gtk.

Mono提倡使用Gtk来制作跨平台的UI,Gtk编程有点像java,都有自己的容器类,如果想摆出合适的界面就必须正确的使用Gtk中的容器类,

常用的有如下如 Gtk.Box
就有 Vbox


using System;

using Gtk;

 

class VBoxTester {

    

     static void Main ()

     {

          Application.Init ();

          Window myWindow = new Window ("VBox Widget");

 

          VBox myBox = new VBox (false, 4);

         

          //Add the box to a Window container

          myWindow.Add (myBox);

              AddButton (myBox);

             AddButton (myBox);

          AddButton (myBox);

          myWindow.ShowAll ();

          Application.Run ();

     }

 

     static void AddButton (VBox box)

     {

          box.PackStart (new Button ("Button"), true, false, 0);

     }    

}

 

 

 

同样也有Hbox

using System;

using Gtk;

 

class HBoxTester {

    

     static void Main ()

     {

          Application.Init ();

          Window myWindow = new Window ("HBox Widget");

 

          HBox myBox = new HBox (false, 4);

 

          //Add some buttons to the horizontal box

          AddButton (myBox);

          AddButton (myBox);

         

          //Add the box to a Window container

          myWindow.Add (myBox);

          myWindow.ShowAll ();

          Application.Run ();

     }

 

     static void AddButton (HBox box)

     {

          box.PackStart (new Button ("Button"), true, false, 0);

     }    

}

 

 

 

其中还有一个比较常用的旧Table,
它的坐标系统如下:
0(leftAttach)          1                       2(rightAttach)

(topAttach)

0+---------------------+-----------------------+

 |                     |                       |

1+---------------------+-----------------------+

 |                     |                       |

2+---------------------+-----------------------+

(bottomAttach)

当要加空间进去的时候,应该指明这个空间在表格里的大小
使用
table1.Attach (        Widget            child,

                       int               leftAttach,

                       int               rightAttach,

                       int               topAttach,

                       int               bottomAttach,

                     );

 

 

namespace GtkSharpTutorial {

 

 

        using Gtk;

        using System;

        using System.Drawing;

 

 

        public class table

        {

              

                static void callback( object obj, EventArgs args)

                {

                        Button mybutton = (Button) obj;

                        Console.WriteLine("Hello again - {0} was pressed", (string) mybutton.Label);

                }

 

                static void delete_event (object obj, DeleteEventArgs args)

                {

                Application.Quit();

                }

 

                static void exit_event (object obj, EventArgs args)

                {

                        Application.Quit();

                }

 

                public static void Main(string[] args)

                {

                        Application.Init ();

 

 

                        Window window = new Window ("Table");

 

 

                        window.DeleteEvent += delete_event;

 

                        window.BorderWidth= 20;

 

                        Table table = new Table (2, 2, true);

 

                        window.Add(table);

 

                        Button button = new Button("button 1");

 

                        button.Clicked += callback;

 

*/

                        table.Attach(button, 0, 1, 0, 1);

 

                        button.Show();

 

 

                        Button button2 = new Button("button 2");

 

 

                        button2.Clicked += callback;

 

*/

                        table.Attach(button2, 1, 2, 0, 1);

 

                        button2.Show();

 

                        Button quitbutton = new Button("Quit");

 

                        quitbutton.Clicked += exit_event;

 

                        table.Attach(quitbutton, 0, 2, 1, 2);

 

                        quitbutton.Show();

 

                        table.Show();

                        window.ShowAll();

 

                        Application.Run();

 

                }

        }

}

 

 

 

 

编译以上的代码的时候 因为用了Gtk所以要显示引用Gtk
mcs –pkg:gtk-sharp Demo.cs

目录
相关文章
|
6月前
|
存储 C++ 容器
【C++】STL容器——vector类的使用指南(含代码演示)(11)
【C++】STL容器——vector类的使用指南(含代码演示)(11)
|
6月前
|
安全 Java 编译器
容器【泛型类、泛型接口、泛型方法 、泛型方法与可变参数 】(一)-全面详解(学习总结---从入门到深化)
容器【泛型类、泛型接口、泛型方法 、泛型方法与可变参数 】(一)-全面详解(学习总结---从入门到深化)
63 0
|
3月前
|
安全 算法 Java
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
这篇文章讨论了Java集合类的线程安全性,列举了线程不安全的集合类(如HashSet、ArrayList、HashMap)和线程安全的集合类(如Vector、Hashtable),同时介绍了Java 5之后提供的java.util.concurrent包中的高效并发集合类,如ConcurrentHashMap和CopyOnWriteArrayList。
【Java集合类面试二】、 Java中的容器,线程安全和线程不安全的分别有哪些?
|
3月前
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Group Box的使用及说明
272 3
|
3月前
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
103 2
|
3月前
|
数据采集 监控 Kubernetes
Job类日志采集问题之iLogtail以减小容器发现和开始采集的延时如何优化
Job类日志采集问题之iLogtail以减小容器发现和开始采集的延时如何优化
|
3月前
|
数据采集 Kubernetes Java
Job类日志采集问题之在日志中添加容器的元信息标签,如何操作
Job类日志采集问题之在日志中添加容器的元信息标签,如何操作
|
3月前
|
存储 Kubernetes 数据处理
Job类日志采集问题之为什么Job容器的日志采集要考虑容器发现速度和开始采集延时,如何理解
Job类日志采集问题之为什么Job容器的日志采集要考虑容器发现速度和开始采集延时,如何理解
|
3月前
|
C++ 容器
C++中自定义结构体或类作为关联容器的键
C++中自定义结构体或类作为关联容器的键
40 0
|
6月前
|
小程序 前端开发 定位技术
微信小程序-常用的视图容器类组件
该内容是关于微信小程序组件的分类和部分具体组件的介绍。主要分为9大类:视图容器、基础内容、表单组件、导航组件、媒体组件、地图组件、画布组件、开放能力和无障碍访问。其中详细讲解了`view`、`scroll-view`、`swiper`及`swiper-item`等组件的用途和示例。`view`用于构建页面布局,`scroll-view`支持滚动效果,`swiper`则用于创建轮播图。此外,还提到了`root-portal`、`page-container`等其他特殊用途的组件。
76 0