内容正文:

同学们,我们接着上节课来讲,我们上节课讲到了这个entry输入框。我们现在来讲这个TST的一个文本输入框,这个是叫文本编辑框。准确来讲的话是用于显示和处理多行文本。那么该总结的目的就是显示多行文本,它常常用于简单的一个文本编辑器或者网页浏览器等等。我们要创建一个TSC的组件,里面是没有内容的。为了给你们插入内容,我们就要使用到insert这里面的这个方法。首先我们来看一下如何创建这个TST的一个文本编辑框。首先通过这个来去创建我们的控件。这里面有啊宽和高这些属性,然后这下面的这些都是我罗列出来你必须要掌握的。第一个就是我们的insert,这第一个参数是insert,并不是我们前面理解的说在索引为零的位置去插入。即便是我们的第二种方法,它也是0.0。那么就是insert文本在光标的位置插入。什么叫做光标的位置?就是说在我们鼠标,比如说这个光标在闪的位置去插入,待会儿我给大家去进行一个演示。然后还有一个就是我们的insert是在0.0到文本,那也就是说在起始的位置进行插入。Insert是end文本,但是在末尾的位置插入,那么这个delete是0.0的,and是表示删除我们文本框里面的所有的内容。然后get 0.0到and是获取全部内容,我们来依次给大家去进行一个讲解。我们首先创建一个主窗口,我们把这代码拿过来。中间这个代码我们就不要了,我们这边的话看一下,比如说这个entry控件就是改一下,这应该是TSD的空间了。TSD. 空间。好,我们来看一下创建一个我们的TST test括号route,然后我们给它布局一下。这里面大家可以看到,其实它这个已经创建好了,只不过是很大。那我们就可以设置一个宽高来去限制一下。比如说宽是十,括号是2,我们来看看行不行,这个还是有点小,那我们可以设置成30,这个给一个五的宽高度。好,那这样的话就创建好了这样的一个TST的一个文本编辑框了。我们来依次去给大家去讲一下证明的函,这个函数方法就是对应的这个方法。我们首先创建按钮8成1下,第一个就是我们的插入文本,然后我们给它布局一下。好,我们来先看看这个界面。这个我们要做的是点击叉文本。比如说我在这儿显示hello word,然后我把光标放这儿,那么点击插入文本就把123插到这个对应的光标的后面。就比如说我把光标放在这儿,就在这儿把123插到这儿后面去了,就这么一个需求。我们来看一下。好,那我们这里面就是TST点IN insert,这里面是单词,大家也要会记住。就比如说我插入这个一二三这个insert表示在光标的位置插入,我们绑定一下。我们这个先是在里面先写入一个文本。好比如说我把光标放在R的后面,放在R的后面来点击。看到了吧?比如说我放在R的后面,它是不是就是在光标的位置开始插入,对吧?那我们也可以设置成什么呢?就是把它改成0.0。这样的话,它就跟官标就没有关系了,它始终在初始位置开始插入文本。好比如说我把光标放在R的后面,它是不是还是在这儿放在R的后面,还是在前面插入,是不是?这就是我们的这个inside和000的区别。好,那我们再来一个就是我们的获取。这个获取的话,我们待会儿也给大家演示一下我们的获取所有的文本。还有就是还有一个就是删除,我们来看一下。对,还有一个就是end,在末尾插入,我再给大家试一下。比如说我们在是hello word,我把光标放在O的后面,你看始终是不是都在这个末尾插入。好,那么这个就是我们前面的这个insert三个参数大家要了解。再看我们的这个获取获取。TXT点get一下0.0到我们的这个and。我们再创建一个按钮。获取文本这个钣金的函数要改改好,这样的话我们来运行一下看看我比如说我在这写hello,随便写,点击获取,这样的话内容是被获取到了。一般我们都是获取全部的内容。再看我们的删除,删除的话我们再写一个,删除是TST点delay一下0.0到我们的这个end,注意是字符的年龄,这里面的参数都是字符的,千万不要写成什么整形的。我们再来一个。删除文本,这里面改成我们的删除。比如说我在里面写一些内容,我点击删除,这内容是不是就全删掉了。以上就是我们要掌握的这个TSG的这个五个方法,其中最常见的就是get和我们的delete,以及我们的这个insert这几种方法。好,我们来看一下这个练习题,就是将我们这个题目什么意思?将TST的文本框的内容与单行文本框的内容进行一个交换。就是说把TST的文本框的内容和我们这下面的单行文本框的内容进行一个交换。那么窗口大小是300 200,文本编辑框的宽度是32。它都给你了,那这一题就变得好做了。我们来看做一下,我们先给大家把它把这个题目给它复制过来。好。我们再把这个图放大一点,我们就以这个图来去写我们的这个需求。我们的前面的这个主框架代码我就不写了,直接复制过来。好,这里面的话这个左上角的标题不用改,窗口大小的话是300 200也不用改。接下来就是我们的文本编辑框创建一个。它的宽是我们的什么宽。好,我们看这个,宽是三十高是五。那我们就是宽是三十高是我们的五好。接下来就是我们给它布局好,它这个明显就是一个什么pack布局。好,这是我们下面的一个单行文本输入框,我们就是entry e等于一个entry。然后再是我们1点PACK布局一下就行了。好,我们来看一下。这样的话我们其实就做好了。你也可以下面还有一个交换按钮,你也可以给这个也可以给一个上下的一个间距,那我们给一个,就是PADY30差不多,他没告诉我们,就自己差不多写一个就行了。然后再是我们的BTN button一下root test t这个是我们的什么交换机,然后把我们的这个进行一个布局就OK了。我们现在来写下这个函数。大家想想,我们要如果交换这个内容的话,首先是不是要拿到这个TSD的内容以及我们的E的内容。那我们可以分别用两个变量去进行个保存。首先就是我们的这个A也就是说代表的是TSC的内容,就是TST点盖了一个0.0到我们的这个end。再是我们的这个B这个内容就是一点get就行了。这样的话我们AB的内容获取到了,最后我们再把AB进行一个交换就可以了。这个就是相当于把我们的AB进行交换。接下来要做的是不是就把交换后的这个AB的内容再分别插入到这里面去。那我们就需要将我们的这个TST进行一个清空,再往里面插入。那我们就是。0.0. 到我们的这个and同时我们这个就是一点delete一下,也要把它清空掉,是零到我们N的。好,清完清空,清空完之后我们就可以往里面依次插入了。首先是TST点inset一下,这里面随便,你要是关闭位置插入或者所以为零的位置插入都行。这是我们的这个,就是一点insert下零逗号一下我们的这个B的内容就行了。好,我们来看一下效果,我在这输入123,我在这输入456,我交换一下。我这我这儿还没有绑定我们的这个回调函数,同学们不要忘了,交换我们绑定一下就行了。这是一二三,这是456,点击交换再点击交换。这样的话两个内容就进行一个交换了。好,那么这个题目里面我们就考察到了它的一个删除以及我们的插入,对吧?所以大家只还是来掌握我们前面讲的这几个方法就可以了,其实就够用了。我们其实根据以往的考试的话,其实这个方法就完全够用了。接下来就是我们的这个list box列表框。首先我们来看列表花长什么样,比如说这里面有很多个选项,你可以在里面进行一个单选,你可以多选都可以。列表框就是包含一组文本选项,可供用户选择。列表框中呈现出一个矩形的区域,其中包含一些选项,每个选项占用一行,那么可以从中选一项或者多项,它默认是单项,默认是只能选一个。它是通过list box进行一个创建的这里面有两有这么一个list variable,它是可以绑定一个动态变量的。你也可以把这个内容先写到那个动态变量里面去,然后再绑定。当然这个动态变量的话,我们后面会一直讲,我们一般不会是使用这种方法去进行一个绑定。我们是直接是把要插入的这个选项放到列表里面去,通过循环,然后再说颜色的方法插入就可以了。我们待会儿给大家演示select mode,就是我们的什么选择模式,它这里面总共有四个,我们默认是浏览的,就是单选,也是单选,就是滑动单选题。Singer是单选,它只能是单机去选择。Multiple是简单的多选,而extent是拓展多选,也就是说它可以通过鼠标滑动一次选好几个,其实这些方法的话,只有我们的默认的bonus和我们的marker用的最多,其他的基本上用不到基本上用不到,除非他这边明确告诉你要使用single和extend。那我们也要去接下来就要学我们的list box的一些常见的方法。首先第一个就是insert,就是用于在列表框中指定的位置添加一个选项。首先index就表示索引它是从零开始的。其实这个东西就有一点类似于往我们列表里面插入元素一样的。你想我们的列表中的元素也是从零开始的。好,那么我们这里面还有一个就是索引值,用active表示。当咱们这个list box在里面是默认是单选的时候,我们就可以使用active这个东西表示用户当前的选择。这个我们后面再删除用户选择的时候,就可以用一行代码写,就用这个active。那么最后一个选项用and表示,也可以用小写的,就是加上引号的那个and这个也是一样,用小写的也可以,就是我们在这加一下。就是我们的ACTIVE。好,这个的话我们也可以用小写表示,用小写表示这个就是我们的and END来表示就可以了。好,size就是用于返回列表框中包含的选项数目。好,get的方法是用于返回指定范围的一个选项。也就是说比如说我们要返回索引一到索引三里面的所有的选项,我们就可以使用get的方法。这里面是包含index二位置的选项。Current selection是用于返回当前用户选择的索引,返回这个元组。注意它只返回用户选择的索引,并不返回用户选择的选项的内容,这个是大家要明白的。然后再返回元组的类型,然后delayed就是删除,它是删除指定范围内选项,既包含头部也包含尾部,是左臂右臂的。好,那接下来我们做一个题目,就是什么题目呢?就是这个题目我们要做的是这个题目简单。我们这样,我们就根据这四这五个方法来给大家去演示一下,我们来演示一下。首先我们创建一个主窗,主窗口我们在这儿随便拿一点代码过来,把这个中间的这个代码去掉就行了。好,这样的话我们就快速搭建好了一个咱们的这样的一个窗口,这里面的话就给个list box控件演示。这里面的话我们就是300 500给大一点。好,那我们首先创建一个我们的这个list box,就是用我们的这个构造函数来去创建就行了,就是我们的list。Box括号root好,这里面的话我们串联完之后,把赋给一个变量保存,我们就使用还是使用pack布局做演示。好,大家可以看一下,它会是一个空白的这个列表框,我们现在要往里面添加一些内容,我们比如说要把添加的内容放到我们这里,比如说语文、数学。英语。这是我们的pencil。信息技术。好,就这些。然后接下来我们遍历这个列表。ASB点insert一下,这里面同学们大家要注意的一点就是有的人insert直接写0,再是我们的把我们的I插进去,这个可以,但是会出现什么问题?就是咱们列表中的顺序跟你最终差的位置是反的。因为你每一次比如说我把这个原语文在索引零的位置插入,又把数学在索引为零的插入。也就是说最后一个插入的肯定是在最前面的。我们来给大家看一下,这样的话其实是不符合我们的这个逻辑的那我们该怎么做呢?我们每一个插入的话都是在end的位置,就是说我们每个都往末尾插入。这样的话我们列表中的顺序就跟我们最终插入顺序是一致的这一点大家稍微要了解一下。我们把这些元素插进之后,我们接下来给大家演示的这些方法。第一个方法,比如说我们想要获取到它的一个我们的当前的这个选项的数目,我们就使用get方法。这里面的话就是零到N的,我们看获取到的总就是多少个来。这里面大家看到了是不是获取到了是一个元组的形式。当然了我们也可以绑定一个按钮,点击一下获取,这样的话更好一点。然后再是我们的这个LB点size,就获取到当前的这个选项的数目。看看是五个,我们看看12345是不是五个,对吧?好,然后再是cover selection,我们这个就要配合我们的这个函数来实现试一下,别说写个函数。获取用户选择。给它布局一下,我们接下来写的是我们的一个函数,就是获取证明。这里面的话我们先给大家打印一下,就是我们的AB点CURSELECTION selection。我们刚才讲了它返回的是任务选择的索引,并且返回的是个元组。我们来看一下是不是这样的,这样慢慢的获取一下。比如说我选择语文一数就是数学,比如说我选择pencil,你看它返回的是不是这个pens on的这个索引,它是0123对不对?其实这样的话,我们肯定还是要获取它对应的这个选项的内容。那我们就需要有一个方法,就是LB点get一下,把我们这个用户的选择放上去就行。比如说我选择pencil,你看是不是选择了pencil?比如说我选择信息技术,是不是就选择信息技术了?好,那么我们还有一种方法,就是人家分装好的方法怎么做呢?比我们这个上面的要更加简约一点。说白了就是把这个方法人家用了一个叫active ACTIVE来表示,就表示用户当前的选择。我们来看一下,比如说我选择pencil点击一下,是不是就pencil了。英语是不是这个只适用于单选,如果是多选的话是不能用的这里面也可以用这个小写STIVE就可以了。好,其实我刚才在讲这个insert的时候也讲过,这个active和我们的这个end。End是表示最后一个的意思,这个active表示用户当前的选择,它只剩馀单选题。好,那我们就讲完了我们的这个get方法。假设我们增加一点难度,就是我想要用户选择多项的话,那我们是把这改一下,把这个选择模式改一下,就是我们的select mood改成我们的MURTIPRE。好,那我为什么不用大写要用小写呢?因为小写的话我说了它跟这个前面的导播方式是没有关系的那如果考试的时候用的是这种导航方式,那我们就得注意了,就不能再像直接写大写的那样是错的。好,那我们这里面就是多选。多选的话,这里面我们先打印一下我们的这个用户的选择LB点covert action。比如说我选择语文英语文英语,这里面martial看一下,我们这边就是再刷新一下。稍等一下,看哪里出了问题。这个LB list select mood,我选择的就是多选。这个应该单词写的没有什么问题。我们来看一下,就是MULMULT,MUL。T marty MURTIPRE, 这个单词这块出了问题。好,我们再试一下语文。这样的话是不是多选了?我点击一下,大家可以看到它给我返回的并不是什么这个选项的内容,而是对应的选项的索引。那我们如何获取到它的这个对应的值呢?有两种方法。第一种方法就是你直接从这个列表里面去拿到对应的索引,也能拿到这个内容。但是如果说这个列表是就是咱们列表框是变化的话,那你这种方法就显然行不通了。那我们教大家一种方法,因为我们知道这个LLB点current selection是一个元组,我们就可以编辑它了。遍历它的时候,我们可以直接调用我们的LB点get的方法。因为编辑出来这个I是一个个的索引,正好可以通过get的方法能拿到当前对应的列表框里面的内容了。比如说语文、英语penser点击一下,你看这个内容是不是就拿到了。那我们还可以把它装到我们列表里面去做一些后续的处理都可以。比如说我要装到列表里面去。我们的这个LST点p pint把我们的内容放进去,然后我们再做一个打印。那这样的话,我们就可以做一些后续的处理了。好,我们来打印一下。选择这些点击一下,你看这个内容是不是就是我获取的对,就是我选择的。好,这个就是我们讲到了这个cover selection的方法。那么delayed就是删除,删除的话这个比较简单,那我们来写一下。比如说我们要这个删除,所以1到3位置的这个选项好在这里面。的话就是LB. 点delete 1下1逗号3,我们来看一下。我们先在删之前看一下它会删哪些选项,就是123。那么这个delete它是包含index一和index 2位置的索引,所以应该是把语文、数学、英语全都删掉了。是不是把这个它是不是稍等一下,我再重新运行一下。他把索引1到3位置的元素是不是数学、英语、pens on这三个删掉了是不是?好,这几个就是我刚才给大家举例子的这些方法。我们只需要掌握了这些方法之后,后续做一些题目就相对来说简单了。我们来看它的这个练习题。就是主窗口300 200初始化界面。那么选择课程之后,单击提交会在下面的标签显示我们的一个课程。这个题目其实就是什么呢?我们可以用一个列表把我们的这个内容装到,把用户选择的这个选项装到列表里面去。然后把列表里面的这些选项做一个拼接在就可以了。我们来做一下这个题目。我们把这个上面的代码注释掉,把这个控件的主窗口代码拿过来。好,它这里面要求的是宽三百高300,那我们就300乘300。大家可以看一下这个,我们就按照这个来写。好,我们先把这些列表的选项放到我们的把所要插入的选项放到列表里面。信息技术,然后它是网络基础。然后再是pencil。再是语数英。好,我们把上面的这个拿过来就行了。好,接下来我们就是创建我们的这个列表框。创建完列表框之后,我们把它这个选项依次插入到列表框里面去,那就是LB点insert一下我们的这个and逗号一下我们的这个I这里面我也讲过,为什么是N的而不是那个零,因为我们每一个元素都要往末尾插,这样的话能保证插入之后的这个顺序跟我们列表的顺序是一致的。我们来看一下。这里面我这边LB没有布局,大家看一下,我这边少了一个布局,所以没有布局的话,它这个空间是不会显示的。好,接下来我们要做的是创建一个这样的按钮,它也是一个pack布局,BTN button一下road TST提交,然后再是BTN点PICK布局一下。好,布局完之后我们再来看一下这个效果。我们要点击提交,就是比如说我选择信息技术,python然后数学点击提交之后,在下面显示我们的这个提交的内容。那我们是不是还差一个空间,就是我们的这个label一般他没有明确告诉你,你就可以使用这个单行文本标签,就是label就行了。一开始是没有文字的,LB点PICK布局一下就行了。我们接下来就是串接一个我们的这个函数就是TJ,我们使用的是缩写。那我们还有一个就是我们这个列表看它是多选,所以我们把它改一下,set mode改成MULMULTIPRE的单词,刚才我写错了,少了一个L好像是的,所以大家这单词还是要下点功夫记一记。然后我们的这个提交里面的话,我们首先创建一个列表用于存放用户的选项。我们在便利我们的LB点CURSELECTIN这个单词比较长,大家多加练习。再是我们LST点APU point一下。但是LB点get下,把我们的这个索引放到我们的get里面去,拿到它对应的选项,再放入到我们的列表里面去。我们先不急着去写到我们的label里面去,我们来给大家看一下pencil数学英语点击一下,点击提交,这应该是没有绑定函数。三慢慢地提交板机下我们的这个函数,pencil数学英语点击提交这里面label hello,这应该是大家可以看到这里面label对象没有被分配这个current selection,那应该是我写错了。是啊,这个对象我应该这写的LSB。因为你上面就是a label,这下面又是个LB那就被覆盖了。那我们这里面就是LSB点count selection,ISB点get就行了。还有我们上面的也改一下。好,我们来试一下,就是pencil数学语数学英语点击提交。看到了吧?这就把我们用户的选项放入到列表里面。接下来我们就可以把这个拼接好之后,直接放到我们的label里面去。那我们就label点configure,看到了吧?这个就是我们之前讲到的这个任何控件的属性都可以通过这个config进行一个设置。我们这里面设置的这个文字的内容就是。我们点join这个函数,把我们列表里面的元素拼接起来就行。我们来看一下,比如说信息技术tensor数学点击提交,这样的话这些内容就显示在这个下面的标签里面了,那这个题目我们就做完了,我们来看看,首先我们要知道他如果是多选,我们就要加一个multiple,这个单词要会写。其次是我们要通过这个列表去把我们的这个选项插入到我们的列表框里面,注意是N的而不是这个零。再者就是我们绑定的这个函数,一般我们是把它放在列表里面去。比如说SB的comment是获取到用户的这个选项,通过get的方法能拿到它选项里面的内容,再放到我们列表里面去。最后我们再把这个用户的选择的内容进行了拼接,显示在我们的这个label标签的里面就可以了。我们这个list box今天就讲到这里,我们下节课讲的是我们的这个动态变量。这个对于咱们学习后面的单选框,就是单选按钮和多选按钮会有一个很大的帮助。它主要是用于动态去追踪一些变量的值,我们下节课再讲。
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。