1. 首页 > 智能数码 >

treeview控件使用详解_treeview控件使用技巧

我给你一个实用的例子!你好好看,就会懂的!

treeview控件使用详解_treeview控件使用技巧treeview控件使用详解_treeview控件使用技巧


我运行过了,没有问题!

如果还有什么问题,请于我联系(QQ:63495849)

比如现有一个ACCESS数据库的一张表字段如下:

员工编号,员工姓名,上司编号

0 A

1 B 0

2 C 1

现在要用TREEVIEW控件将这张表表示出来!

代码如下:

Option Explicit

Dim con As ADODB.Connection

Dim rs As ADODB.Recordset

Private Sub Form_Load()

Set con = New ADODB.Connection

con.ConnectionString=

"Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=" & App.Path & "\Emp.mdb"

con.CursorLocation = adUseClient

con.ConnectionTimeout = 5

con.Open

Set rs = New ADODB.Recordset

rs.Open "Select * From Employees", con, adOpenForwardOnly, adLockOptimistic, -1

Dim i As Integer, nod As Node

For i = 1 To rs.RecordCount

If rs.Fields("LeaderID").Value = 0 Then

Me.TreeView1.Nodes.Add , , "K_" & rs.Fields("nID").Value, rs.Fields("EmpName").Value, 1

Else

Me.TreeView1.Nodes.Add "K_" & rs.Fields("LeaderID").Value, tvwChild, "K_" & rs.Fields("nID").Value, rs.Fields("EmpName").Value, 1

End If

rs.MoveNext

Next i

rs.Close

Set rs = Nothing

End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

con.Close

Set con = Nothing

End Sub

我这里有一个MSDN中的关于如何使用TreeView控件的帮助文件。

完成代码

上面的代码显示了用两个相关的表填成一个表的基本策略。全部代码如下:

'必须设置对 DAO 3.5 的引用。

'在声明部分,声明模块级的对象变量:

Private mDbBiblio As Database

Private mNode As Node

你要导出的文件是一个集合还是什么?

关于treeview的话,你需要先定义一个treeview对象,然后给它的一级标签循环指定值,然后在它的循环里面在循环将子标签的值也给指定。然后将treeview对象与循环的值绑定就可以了。

给你一个简单的树构造语句

treeView1.Nodes.Add("根节点");

for (int i = 0; i < 5; i++)

{treeView1.Nodes[0].Nodes.Add("一级目录"+i.ToString());

}for (int i = 0; i < treeView1.Nodes[0].Nodes.Count; i++)

{for (int j = 0; j < 5; j++)

{treeView1.Nodes[0].Nodes[i].Nodes.Add("二级目录" + j.ToString());

}}

另外节点的tag属性里面还可以存放值,比如ID什么的

ASP.NET中使用TreeView控件

简介

在 年 Microsoft发布了四种ASP NET Web控件 用于为使用 Microsoft Internet Explorer 的 Web 访问者提供更好的体验 这些 Web 控件称为 Internet Explorer Web 控件 也简称为 IE Web 控件 包括以下四种控件 ◆ MultiPage Web 控件

◆ TabStrip Web 控件

◆ Toolbar Web 控件

◆ TreeView Web 控件

这些 Web 控件通过提供 Web 访问者熟悉的用户界面 增强了 ASP NET Web 页面 例如 Toolbar Web 控件可以显示一个与各种 Microsoft Office 产品中的工具栏相类似的可单击工具栏 TabStrip 和 MultiPage Web 控件配合使用后可以显示选项卡式内容 TreeView Web 控件可以用来显示可单击 可展开的树中的数据 与在 Microsoft Windows? 资源管理器中用树来显示 PC 文件系统中的驱动器和文件夹很类似 (您可以在 GotDotNet 站点找到这些 Web 控件的生动演示 WebControl Toolbar 演示 TabStrip/MultiPage WebControl 演示和 TreeView Sample WebControl 演示 )

IE Web 控件可以在安装了 NET Framework 版本 或 的 Web 服务器上使用 尽管 IE Web 控件是设计用来与 Internet Explorer 配合使用的 但这些 Web 控件也可以显示在其他浏览器中 不过 在 Internet Explorer 以外的浏览器中 当用户与 IE Web 控件交互时(例如展开 TreeView Web 控件中的某个节点) 会发生回传 在 Internet Explorer 或更高版本中 IE Web 控件会发送 DHTML 代码 从而避免了回传的发生 也就是说 在访问您的 Web 站点时 使用 Internet Explorer 或更高版本的访问者将会比使用其他浏览器的用户获得更好的用户体验 当然 没有使用 IE 或更高版本的用户仍可以看到 IE Web 控件 并可以与之进行交互

下面 本文将主要介绍 TreeView IE Web 控件 并讨论如何使用此控件在 ASP NET Web 页面中显示数据 有关其他 IE Web 控件的详细信息 请参阅 Internet Explorer Web Controls Overview 和 Internet Explorer Web Controls Reference

安装IE Web控件

要在 ASP NET Web 应用程序中使用 IE Web 控件 首先必须下载控件的源代码 然后运行一个编译批处理文件 对源代码进行编译并将所需的所有文件复制到相应的 Web 应用程序目录中 Internet Explorer Web 控件下载程序包是一个大小为 KB 的自解压安装文件

下载并安装完 IE Web 控件后 将创建一个新目录(默认为 C:\Program Files\IE Web Controls\ 您也可以在安装过程中配置此目录) 找到这个新目录 然后双击 build bat 文件 这将创建一个新的子目录 build 编译 src 子目录中的类 并将生成的程序集和支持文件复制到 build 子目录中

运行完 build bat 文件后 build 子目录将包含程序集文件 Microsoft Web UI WebControls dll 和子目录 Runtime 要在 ASP NET Web 应用程序中使用 IE Web 控件 必须将 build\Runtime 子目录中的内容复制到 Web 应用程序的 /webctrl_client/ _ 子目录中 并将程序集文件 (Microsoft Web UI WebControls dll) 复制到 Web 应用程序的 /bin 子目录中 (在 IE Web 控件的 README txt 文件中 提供了示例以及执行这些任务的命令行指令 )

IE Web控件入门

如果使用的是 Microsoft Visual Studio? NET 来开发 ASP NET Web 应用程序 则将 IE Web 控件添加到 ASP NET Web 页是件轻松的事 首先 将 IE Web 控件包含在工具箱中 要完成这项操作 请右击 Toolbox(工具箱) 然后选择 Customize Toolbox(自定义工具箱)选项 选择 NET Framework Components( NET Framework 组件)选项卡 然后单击 Browse(浏览)按钮 找到 Microsoft Web UI WebControls dll 程序集文件 然后单击 OK(确定) 这会将 MultiPage TabStrip Toolbar 和 TreeView 等 IE Web 控件添加到 Visual Studio NET 工具箱中 要将以上控件中的任何一种添加到 ASP NET Web 页中 只需要将相应的控件从工具箱拖放到设计器中即可

要在内含代码的类中使用 IE Web 控件 首先需要右击 Reference(引用) 然后选择 Add Reference(添加引用) 将引用添加到 Microsoft Web UI WebControls dll 程序集中 然后 在内含代码的类中 如果使用的是 C# 则添加 using Microsoft Web UI WebControls 如果使用的是 Microsoft Visual Basic NET 则添加 Imports Microsoft Web UI WebControls

如果不是使用 Visual Studio NET 作为 ASP NET Web 应用程序编辑器 则需要在 ASP NET Web 页的顶端手动添加以下 @Register 指令

<%@ Register TagPrefix= whatever Namespace= Microsoft Web UI WebControls Assembly= Microsoft Web UI WebControls %>

然后 将IE Web控件添加到Web页中 可以使用以下语法

<whatever:WebControlName runat= server > </whatever:WebControlName>

例如 要添加 TreeView 控件 可以在页面顶端添加以下 @Register 指令

<%@ Register TagPrefix= iewc Namespace= Microsoft Web UI WebControls Assembly= Microsoft Web UI WebControls %>

接着 在ASP NET Web页中希望显示TreeView的位置添加以下Web控件语法

<iewc:TreeView runat= server > </iewc:TreeView>

TreeView IE Web 控件入门

当 TreeView IE Web 控件在访问者浏览器中显示时 会显示一棵树 此树与 Windows 资源管理器中的树非常类似 不同的是 TreeView 可以由任意多个 TreeNode 对象组成 每个 TreeNode 对象都可以关联文本和图像 另外 TreeNode 还可以显示为超链接并与某个 URL 相关联 每个 TreeNote 还可以包括任意多个子 TreeNote 对象 包含 TreeNode 及其子节点的层次结构构成了 TreeView 控件所呈现的树结构

假设您要构建一个用于显示家谱的 TreeView 控件 由于信息基本上不需要改动 因此您可能希望静态地指定 TreeView 结构 如果使用的是 Visual Studio NET 则静态指定 TreeView 结构就像填写几份表格一样简单 首先 通过将 TreeView 控件从工具箱拖放到设计器中 将新的 TreeView 控件添加到 ASP NET Web 页中 然后 将 TreeView 控件的 ID 属性设置为 tvFamilyTree 完成这两个步骤后 您的屏幕应该与图 类似

图 简单的 TreeView

现在 要静态指定组成 TreeView 的 TreeNode 请从 Properties(属性)窗格中选择 Nodes(节点)属性 然后单击此属性右侧的省略号按钮 这时将显示 TreeNodeEditor(TreeNode 编辑器)对话框 现在可以将新的 TreeNode 添加到 TreeView 中 图 显示了输入家族树信息后的 TreeNodeEditor(TreeNote 编辑器)对话框

图 TreeNodeEditor(TreeNote 编辑器)对话框

填充 TreeNodeEditor(TreeNote 编辑器)对话框后 以下标记将被添加到 ASP NET Web 页的 aspx 部分

<ie:TreeView id= tvFamilyTree runat= server ><ie:TreeNode Text= John Smith ><ie:TreeNode Text= Born: Jan rd ></ie:TreeNode><ie:TreeNode Text= Died: Feb ></ie:TreeNode><ie:TreeNode Text= Spouse ><ie:TreeNode Text= Marie Ellsworth ><ie:TreeNode Text= Born: Aug ></ie:TreeNode><ie:TreeNode Text= Died: Unknown ></ie:TreeNode></ie:TreeNode><ie:TreeNode Text= Children ><ie:TreeNode Text= John Smith Jr ><ie:TreeNode Text= Born: July ></ie:TreeNode><ie:TreeNode Text= Died: Sept ></ie:TreeNode></ie:TreeNode><ie:TreeNode Text= Mary Smith ><ie:TreeNode Text= Born: June ></ie:TreeNode><ie:TreeNode Text= Died: Aug ></ie:TreeNode><ie:TreeNode Text= Spouse ><ie:TreeNode Text= Edward Joy ><ie:TreeNode Text= Born: Unknown ></ie:TreeNode><ie:TreeNode Text= Died: Aug ></ie:TreeNode></ie:TreeNode><ie:TreeNode Text= Children ><ie:TreeNode Text= Michael Joy ><ie:TreeNode Text= Born: Oct ></ie:TreeNode></ie:TreeNode><ie:TreeNode Text= Michele Joy ><ie:TreeNode Text= Born: May ></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeNode></ie:TreeView>

如果不是使用 Visual Studio NET 作为编辑器 则需要将此内容手动添加到 ASP NET Web 页 当通过浏览器查看 ASP NET Web 页时 将显示一棵可展开的树 如图 所示 (图 显示了展开各个节点后的树 默认情况下 将仅显示根节点 您可以设置 TreeNote 的 Expanded 属性 以指示首次查看此页面时该 TreeNote 应为展开状态 )

图 展开的 TreeNote

除了文本标签以外 TreeNote 还可以关联图像 尤其值得说明的是 每个 TreeNote 可以关联三幅图像 当 TreeNote 处于标准(折叠)状态时显示一幅图像 当 TreeNote 处于展开状态时显示另一幅图像 当 TreeNote 处于选中状态(当用户单击 TreeNote 时 该节点变为选中状态)时显示第三幅图像 这三种属性都需要一个指向指定图像的 URL

例如 可以通过以下方法展开家族树演示 将 TreeView 的 ImageUrl 属性设置为指向某个闭合的文件夹图像的 URL 将 TreeView 的 ExpandedImageUrl 属性设置为指向某个打开的文件夹图像的 URL 从而分别将折叠和已展开的 TreeNote 显示为闭合的文件夹和打开的文件夹 (如果要为选定的 TreeNote 换一幅图像 只需要将 TreeView 的 SelectedImageUrl 属性设置为相应的 URL 即可 )

请注意 TreeView 和 TreeNote 都具有 ImageUrl ExpandedImageUrl 和 SelectedImageUrl 属性 不同的是 当设置 TreeView 的属性时 默认情况下 TreeView 中所有 TreeNote 都将显示指定的图像 如果设置 TreeNote 的属性 则这些属性仅适用于当前特定的 TreeNote 由于我们希望所有 TreeNote 处于折叠状态时显示为闭合的文件夹 处于展开状态时显示为打开的文件夹 因此我们对 TreeView 控件的 ImageUrl 和 ExpandedImageUrl 属性进行了设置

设置完这些新属性后 图 的外观增色很多 在新的 TreeView 外观中 TreeNote 旁边都显示有图像 如图 所示

图 带图像的 TreeNote

TreeNote 也可以关联 URL 当单击关联有 URL 的 TreeNote 时 会自动将用户快速链接到指定的 URL TreeNote 的 NavigateUrl 属性用于指示当单击 TreeNote 时将用户链接到的 URL 该功能对于包含两个窗框的 ASP NET Web 页非常有用 左侧窗框中包含一个 TreeView 控件 当用户单击某个 TreeNote 时 该节点的详细信息将显示在右侧窗框中 这与在 Windows 资源管理器中单击左侧窗格中的某个系统文件夹 该文件夹的文件将显示在右侧窗格中的情形类似

要关联 URL 只需要将每个 TreeNote 的 NavigateUrl 设置为相应的 URL 要将 TreeNote 的关联 URL 加载到其他浏览器窗框中 请将 TreeNote 的 Target 属性设置为相应的窗框名称 这些步骤都可以通过 TreeNodeEditor(TreeNote 编辑器)来完成 要查看此类应用程序的示例 请参阅 Steve Sharrock 关于使用 TreeView 创建资源管理器风格的 ASP NET Web 应用程序的文章 TreeView Programming an Explorer style Site View

TreeView 的其他高级功能

虽然使用 Visual Studio NET 将静态 TreeNote 添加到 TreeView 的过程非常简单 但通常需要将内容动态地添加到 TreeView 中 例如 您将家族树信息存储到了数据库中 或是正在设计一个资源管理器风格的 Web 应用程序(在此应用程序中 用户可以浏览 Web 服务器的文件系统) 这时您可能需要根据服务器的文件夹和文件来动态填充 TreeNote

在内含代码的类中 可以通过编程方式将 TreeNote 添加到 TreeView 中 要将新的 TreeNote 添加到现有的 TreeNote 中 只需要使用 Nodes 属性的 Add() 方法 例如 以下 C# 代码将创建两个 TreeNote 并将第二个 TreeNote 添加为第一个 TreeNote 的子节点 然后 将第一个子节点添加到 TreeView 的根节点中

// 创建第一个 TreeNoteTreeNode tvFirst = new TreeNode();tvFirst Text = First Tree Node ;

// 创建第二个 TreeNoteTreeNode tvSecond = new TreeNode();tvSecond Text = Second Tree Node ;

// 将第二个 TreeNote 添加为第一个 TreeNote 的子节点tvFirst Nodes Add(tvSecond);

// 将第一个 TreeNote 添加到 TreeView 的根节点中 tvFamilyTree Nodes Add(tvFirst);

遗憾的是 将数据库数据绑定到 TreeView 可不像将数据绑定到某个标准 ASP NET Web 控件那么简单 因为 TreeView 本身用于显示分层数据 所以不太适合显示简单 SQL 查询的结果 因此 TreeView 不是用来显示简单 SQL 查询的内容的 而是用来显示 XML 文件的内容 所以 为了便于在 TreeView 中显示数据库信息 必须首先将其转换为 XML

而且 虽然可以在 TreeView 控件中显示静态或动态 XML 文件 但是 TreeView 要求 XML 数据具有特定的格式 因此 要在 TreeView 中显示 XML 文件 必须提供 XSLT 样式表 以将 XML 从当前格式转换到 TreeView 要求的格式 有关如何完成此任务的详细信息 请参阅我的文章 Displaying XML Data in the Internet Explorer TreeView Control

此外 TreeView 的 TreeNote 除了支持图像和超链接之外 其旁边还可以包含复选框 而且 当用户展开或折叠 TreeNote 选择 TreeNote 或者选中或取消选中带有复选框的 TreeNote 时 都会引发相应的事件 可以为这些事件创建事件处理程序 以自定义这些事件引发的相应操作

小结

在本文中 我们简要地介绍了 IE Web 控件以及如何获得和安装这些控件 并详细讨论了如何使用 TreeView IE Web 控件 TreeView 控件的显示方式类似于标准的 Windows TreeView(可通过在 Windows 资源管理器中进行操作来体验) TreeView 用来显示分层数据 可以由任意多个 TreeNote 组成 每个 TreeNote 又可以包含任何多个子 TreeNote

可以用多种不同的方式自定义 TreeNote 的外观 例如 可以为处于折叠 展开和选中状态的 TreeNote 分别指定不同的图像 当单击 TreeNote 时 TreeNote 可以作为超链接将访问者重定向到其他 URL TreeNote 还可以包含复选框

lishixinzhi/Article/program/net/201311/15691

由于每个 TreeNode 都可以包含其他 TreeNode 对象的集合,您可能会在循环访问集合时觉得很难确定自己在树结构中的位置。您可以使用 PathSeparator 字符串值来分析 TreeNode.FullPath 字符串,以确定 TreeNode 标签的起始和终止位置。

可以在树节点旁显示图像,方法是将一个 ImageList 分配给 ImageList 属性,然后通过引用 Image 在 ImageList 中的索引值来分配该 Image。使用下面的属性分配图像:

将 ImageIndex 属性设置为当树节点未选定时所显示的 Image 的索引值。

将 SelectedImageIndex 属性设置为当树节点被选定时要显示的 Image 的索引值。

ImageIndex 和 SelectedImageIndex 属性值所引用的图像是所有分配给 Nodes 集合的树节点显示的默认图像。每个树节点都可以通过设置 TreeNode.ImageIndex 和 TreeNode.SelectedImageIndex 属性来取代默认的图像。

树节点可以展开,以显示下一级子树节点。用户可以在 TreeNode 旁显示加号 (+) 按钮时通过单击加号 (+) 按钮来展开 TreeNode,或者可以通过调用 TreeNode.Expand 方法来展开 TreeNode。若要展开 Nodes 集合中的所有子树节点级别,请调用 ExpandAll 方法。若要折叠子 TreeNode 级别,可以调用 TreeNode.Collapse 方法,也可以在 TreeNode 旁显示减号 (-) 按钮时按减号 (-) 按钮。还可以通过调用 TreeNode.Toggle 方法在展开和折叠状态之间切换。

树节点可以选择性地显示复选框。若要显示复选框,请将 TreeView 的 CheckBoxes 属性设置为 true。对于处于选中状态的树节点,Checked 属性设置为 true。

注意

从 BeforeCheck 或 AfterCheck 事件内设置 TreeNode.Checked 属性将导致该事件被多次引发并可能产生意外行为。例如,您可以在递归更新子节点时在事件处理程序中设置 Checked 属性,以便用户不必逐个展开并选中每个节点。如果未将 TreeViewEventArgs 的 Action 属性设置为 TreeViewAction.Unknown,则若要防止该事件被多次引发,需为仅执行递归代码的事件处理程序添加逻辑。有关如何进行此操作的示例,请参见 AfterCheck 或 BeforeCheck 事件的示例部分。

通过设置 TreeView 控件的一些显示和样式属性,可以更改此控件的外观。如果将 ShowPlusMinus 设置为 true,则会分别在每个可展开或折叠的 TreeNode 旁显示加号或减号按钮。如果将 ShowRootLines 属性设置为 true,TreeView 则会显示联接所有根树节点之间的连线。通过将 ShowLines 属性设置为 true,可以显示子树节点与其根节点之间的连线。如果将 HotTracking 属性设置为 true,那么当鼠标指针移过树节点标签时,树节点标签的外观将发生变化。如果启用热跟踪,树节点标签将具有超链接的外观。也可以完全自定义 TreeView 控件的外观。若要执行此操作,请将 DrawMode 属性设置为 TreeViewDrawMode.Normal 以外的值并处理 DrawNode 事件。

注意

在运行时设置 CheckBoxes、Scrollable、ImageIndex 和 SelectedImageIndex 属性时,将重新创建 TreeView 句柄(请参见 Control.RecreateHandle)以更新控件的外观。这将折叠除选定的 TreeNode 之外的所有树节点。

下面的代码示例阐释了如何使用 TreeView 控件。

Private Sub InitializeTreeView()

treeView1.BeginUpdate()

treeView1.Nodes.Add("Parent")

treeView1.Nodes(0).Nodes.Add("Child 1")

treeView1.Nodes(0).Nodes.Add("Child 2")

treeView1.Nodes(0).Nodes(1).Nodes.Add("Grandchild")

treeView1.Nodes(0).Nodes(1).Nodes(0).Nodes.Add("Great Grandchild")

treeView1.EndUpdate()

End Sub

From MSDN

最简单的学习方法,手动添加treeview,并添加ITEM,然后看生成的代码

Treeview是tkinter.ttk的控件,这个控件主要是提供多栏的显示功能,我们可以称其为

树状表格数据(Treeview)。在设计时也可以在左边栏设计成树状结构或是称层次结构,用户

可以显示或隐藏任何部分,这个最左边的栏称为图标栏。

设计Treeview控件的基本思想是,使用Treeview构造方法建立Treeview对象。

它的语法如下。

Treeview(父对象,options,···)

Treeview()方法的第一个参数是父对象,表示这个Treeview将建立在哪一个父对象内。

下列是Treeview()方法内其他常用的options参数。

(1)columns:栏位的字符串,其中,第一个栏位是图标栏默认的,不在此设置范围内,

如果设置columns=("Name","Age"),则控件有三栏,首先是最左栏的图标栏,可以进行展开

(expand)或是隐藏(collapse)操作,另外两栏是Name和Age。

(2)cursor:可以设置光标在此控件上的外观。

(3)displaycolumns:可以设置栏位显示顺序。

1.如果参数是"#all"表示显示所有栏,同时依建立顺序显示。

2.如果设置columns=("Name","Age","Date"),使用insert()插入元素时需要依次插入元素。

同样状况如果使用columns(2,0),(2,0)是指实体索引,则图标栏在最前面,紧跟着是Date栏,

然后是Name栏。这种状况也可以写成columns("Date","Name")

(4)height:控件每行的高度。

(5)padding:可以使用1~4个参数设置内容与控件框的间距。

(6)selectmode:用户可以使用鼠标选择项目的方式。

1.selectmode=BROWSE,一次选择一项,这是默认。

2.selectmode=EXTENDED,一次可以选择多项。

3.selectmode=NONE,无法用鼠标执行选择。

(7)show:默认是设置显示图标栏的标签show="tree",如果省略则是显示图标栏,如果设为

show="headings",则不显示图标栏。

(8)takefocus:默认是True,如果不想被访问可以设为False。

实例:简单建立Treeview控件的应用。

运行结果:

讲解:tree=Treeview(root,columns=("cities"))建立Treeview控件,此控件

有一个栏位,域名是cities。

tree.heading("#0",text="State")和tree.heading("#1",text="City")使用heading()方法,

在这个方法内建立了栏标题,其中,第一个参数"#0"是指最左栏图标栏位,"#1"是指第一个

栏位,所以这两行分别建立了两个栏标题。

tree.insert("",index=END,text="伊利诺",value="芝加哥")使用inert()方法插入Treeview控件

内容,在这个方法中的第一个参数"",代表父id,因为图标栏未来可以有树状结构,所以有这

一个栏位设计。当所建的栏是是最顶层时,可以用""空字符串处理。第二个参数index=END代表

将资料插入Treeview末端,它的思想与Text控件的END相同。第三个参数text是设置图标栏的

内容。第4个参数的values是设置City的内容。

样例2:在建立Treeview控件时,增加show="heading"参数,将不显示图标栏。

运行结果:

insert()方法第4个参数values是设置所插入的内容。如果有多栏时,须使用

values=(value1,value2,···),如果所设置的内容数太少时其他栏僵尸空白,如果所设置

的内容数太多时多出来的内容将被抛弃。

样例3:增加population人口数栏位,其中,人口数的单位是万人。

运行结果:

也可以将Python的列表应用于建立栏位内容。

Treeview控件的column()方法主要用于格式化特定栏位的内容,它的语法格式如下。

column(id,options)

其中,id是指出特定栏位,可以用字符串表达,或是用"#index"索引方式。下列是options

的可能参数。

(1)anchor:可以设置栏内容参考位置。

(2)minwidth:最小栏宽,默认是20像素。

(3)stretch:默认是1,当控件大小改变时栏宽将随着改变。

(4)width:默认栏宽是200像素。

如果使用此方法不含参数,如下所示:

ret=column(id)

将以字典方式传回特定栏所有参数的内容。

样例:格式化,将第1、2栏宽度改为150,同时居中对齐,图标栏则不改变。

建立Treeview控件内容时,常常会需要在不同行之间用不同底色作区分,以方便使用者查看,

若是想设计这方面的程序,可以使用Tet控件的标签。Treeview控件有tag_configure()方法,

可以使用这个方法建立标签,然后定义此标签的格式,可参考下列指令。

tag_configure("tagName",options,···)

上述第一个参数tagName是标签名称,可以用此名称将此标签导入栏位数据。

options的可能参数如下。

(1)background:标签背景颜色。

(2)font:字形设置。

(3)foreground:标签前景颜色。

(4)image:图像与列表同时显示。

要将标签导入栏位使用的是insert()方法,这时需在此方法内增加tags参数设置,如下所示。

insert(···,tags="tagName")

样例:将偶数行使用蓝色底显示。

层级式(Hierarchy),只要在图标栏先建立top-level的项目id,然后将相关子项目放在所属的

top-level项目d即可。

样例:建立层级式的Treeview控件内容。

在insert()方法内若是增加image参数可以添加图像,在添加图像时需要考虑的是可能row的

高度不足,所以必须增加高度。这时可以用下列Style()方法处理。

Style().conigure("TreeView","rowheight=xx") #xx是高度设置

样例:设计一个含有图像的Treeview。

Treeview控件中可以有三种选择模式,分别是BROWSE(默认)、EXTENDED、NONE,这是

使用selectmode参数设置的,当有新选择项目发生时会产生虚拟事件<>,

其实我们可以针对此特性设计相关功能。

样例:

在Treeview控件中可以使用delete()方法删除所选的项目,实例:

样例:删除所选的项目,这个程序在建立Treeview控件时设置selectmode=EXTENDED,相当于一次

可以选择多项,第二个选项在单击鼠标时可以同时按Ctrl键,可以选择不连续的选项。如果

第二个选项在单击鼠标时同时按Shift键,可以选择连续的选项。这个程序下方有Remove按钮,

单击此按钮可以删除所选项目。

在使用Treeview控件时,另一个常用功能是插入项目。插入的方式与建立控件的插入方法insert()

是一样的。至于所插入的内容则可以使用tkinter的Entry控件。

样例:增加设计插入功能,由于这个Treeview控件包含图标栏下共有两个栏位,所以若是想要

插入必须建立两个Entry控件。由于我们必须标出所插入的控件,所以必须在Entry旁加上两个

标签。另外,在执行插入时必须使用一个按钮表示出执行插入操作,所以必须另外创建一个按钮。

讲解:rowconfigure()方法的第一个参数是1,代表row=1,相当于让row=1的Treeview

控件随着窗口缩放,缩放比由第二个参数weight=1得知是1:1缩放。columnconfigure()方法

的第一个参数是1,代表column=1,相当于让column=1的stateEntry控件随着窗口缩放,缩放

比由第二个参数weight=1得知是1:1缩放。columnconfigure()方法内的第一个参数是3,代表

column=3,相当于让column=3的cityEntry控件随着窗口缩放,缩放比由第二个参数weight=1

得知是1:1缩放。如果没有上述设置,当缩放窗口时,所有组件大小将不会更改。

在使用Treeview控件时,常常需要执行双击操作,最常见的是打开文档。在Treeview控件中

当发生双击时,会产生事件,我们可以利用这个功能建立一个双击的事件处理程序。

样例:当双击Treeview控件中的某个项目时,会出现对话框,列出所选的项目。

讲解:identify("xxx",event.x,event.y)

第一个参数xxx可以是item、column、row,分别使用双击时的坐标,取得双击时的

item、column或row的信息,此例是使用item,所以我们可以由此获得是哪一个项目被

双击。

在创建Treeview控件后,由一个很常见的功能是将栏目信息做排序,通常可以单击栏位标题就

可以执行排序。

样例:排序Treeview控件State栏的数据,在这个程序中为了简化程序,省略了图标栏。

所以Treeview控件只有一个State栏,当单击栏标题时可以正常排序,如果再单击时可以

反向排序,排序方式将如此切换。

讲解:heading()方法,当用鼠标单击标题栏时会执行command所指定的方法,这是

Lambda表达式,将"states"设置给变量c,然后将c当作参数传递给treeview_sortColumn()方法。

get_children([item])

它会传回item的一个tuple的iid值,如果省略则是得到一个tuple,此tuple是top-level的iid值。

move()方法:

move(iid,parent,index)

将iid所指项目移至parent层次的index位置,此程序用""代表parent层次

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息