除了使用 HBox 和 VBox 进行布局外,还可以使用 Table 对象进行布局。这个有点像 html 的 table,适合方方正正大小差不多的空间集合。本篇将会对 Table 布局进行讲解,利用 Table 做出一个计算器的界面并使其可以响应按钮点击并将点击的按钮内容展示在界面上。在 Windows 系统中效果如下:
![597237cdc2699c1b43d3054e7185dc11.png](https://i-blog.csdnimg.cn/blog_migrate/2164256a6e35c7c3239f86761f628c7f.png)
源码地址: https://gitee.com/coderbusy/gtk-sharp-demo
1、准备项目
我们需要新建一个 .NET Core 控制台项目,在编写本篇博文时 .NET Core 3.1 LTS 版本已经发布了,所以大可以直接使用 .NET Core 3.1 版本。在引用完 GtkSharp 之后,新建一个名为 CalculatorView.cs 的类文件并使其从 Gtk.Window 中派生:
![8b3ac780a25eed3a7d07d50cd806ce23.png](https://i-blog.csdnimg.cn/blog_migrate/1e78f0cb82973675934f83b3c3f19252.png)
在 Programe.cs 文件中键入以下代码,用于启动窗体和运行程序:
![2e63c4bbdb2241ce6f073087d527b13a.png](https://i-blog.csdnimg.cn/blog_migrate/0d0634144065d36a8e0763252d2bf193.png)
2、Table 简介
Table 对象的构造函数需要 3 个参数,具体签名如下:
Table table1 = new Table(int rows, int columns, bool homogeneous);
rows、columns 分别指要创建的行和列。homogeneous 为 true 表示所有的表框大小设置为大小最大那个控件,为 false 则各行和列的大小根据各行列中大小最大那个控件决定 。
行和列的布局从0到n,其中 n 是在对 Table 的调用中指定的数字。因此,如果指定 rows = 2,columns = 2,则布局将如下所示:
0 1 20+----------+----------+| | |1+----------+----------+| |