2. Label
标签条在VB和Python中基本一样。可以在文本中插入\n来换行,如果启用ttk,还可以设置
wraplength属性。
3. TextBox
Python文本框有两种:Entry和Text,如果VB的TextBox的MultiLine=False,则
生成Entry,否则生成Text。
4. Frame
对应Python的LabelFrame控件,做为其他控件的容器,或做为界面元素视觉分类。
5. CommandButton
对应Python的Button,没有太多区别。
为了代码简洁,窗体的退出按钮可以设置Cancel属性为True,然后程序自动生成
对应Tkinter的destroy回调,这样就不需要再实现一个回调函数。
在VB里面字母前增加一个"&"符号可以直接绑定一个快捷键 'Alt+对应字母',
Vb6Tkinter也支持此设置,自动生成对应的事件绑定代码。
其他控件比如CheckBox等有"标题"属性的控件一样如此处理。
6. CheckBox
多选按钮对应Python的Checkbutton。
7. OptionButton
单选按钮对应Python的Radiobutton。
tkinter中Radiobutton的分组方法和VB有些不一样(分组意味着组内的单选按钮自动
互斥,用户选择一个则其他的自动取消)。
在VB中,如果使用Frame将几个OptionButton圈起来,则这几个OptionButton自动成为一组。
Vb6Tkinter也支持这样的操作,同一父控件的Radiobutton自动成为一组。
如果需要手动处理,你要将需要分成一组的Radiobutton的variable属性设置为同一个变量,
然后各个Radiobutton的value值要不一样(默认为控件名),具体是什么值你可以随便设置,
反正不一样就行,最简单的就是1/2/3等,或者一个设置为man,另一个设置为woman,
在对应的Radiobutton被选择后,variable变量自动设置为对应的value值,读取即可
知道哪个Radiobutton被选中了,反之设置variable变量会导致对应的Radiobutton
被选中。
8. ComboBox
组合框在Tkinter中没有对应的控件,比较类似的只有OptionMenu,类似ComboBox
的Style=2 (Dropdown List)时的表现,一个下拉列表,只能在列表中选择一个值,
不能直接输入。所以建议在VB的ComboBox中写下所有的下拉列表值。
如果启用了TTK主题扩展库支持,则直接对应到TTK的Combobox,外形和行为基本
一致。
9. ListBox
列表框对应Python的Listbox,行为也类似,可以在设计阶段设置初始列表。
如果需要滚动,则在适当位置创建滚动条,如果滚动条紧靠着列表框的右边或下边,
并且长度(水平滚动条)或高度(垂直滚动条)差不多,则滚动条和列表框自动绑定,
如果没有自动绑定,则可以在Addin界面选择其xscrollcommand或yscrollcommand
属性为对应滚动条的.set方法。
10. HScrollBar, VScrollBar
滚动条在Python中为Scrollbar,通过设置orient来控制水平还是垂直。
11. PictureBox
简单对应到Python中的Canvas,用做其他控件的容器或画图容器使用。
如果需要滚动,则在适当位置创建滚动条,如果滚动条紧靠着图像框的右边或下边,
并且长度(水平滚动条)或高度(垂直滚动条)差不多,则滚动条和图像框自动绑定,
如果没有自动绑定,可以在Addin界面选择其xscrollcommand和yscrollcommand
属性为对应滚动条的.set方法。