科學計算三維可視化---TraitsUI(控件)

一:文本編輯器

 

from traits.api import HasTraits,Int,Str,Password
from traitsui.api import View,Item,Group,ModalButtons
#View描述了界面的視圖類,Item模塊描述了界面中的控件類

class TextEdit(HasTraits):
    #定義文本編輯器的變量
    string_trait = Str("sample string")
    password = Password
    #定義佈局
    text_str_group = Group(
        Item("string_trait",style="simple",label="Simple"),  #value,style,label
        Item("_"),  #分割線
        Item("string_trait", style="custom", label="Custom"),
        Item("_"),
        Item("password", style="simple", label="password"),
    )

    #定義視圖
    traits_view = View(
        text_str_group,
        title = "TextEditor",
        buttons = ['OK']
    )

text = TextEdit()
text.configure_traits()

 

二:按鈕控件

from traits.api import HasTraits,Int,Button
from traitsui.api import View
#View描述了界面的視圖類,Item模塊描述了界面中的控件類


class ButtonEditor(HasTraits):
    my_button = Button(u"點擊我")
    counter = Int

    def _my_button_fired(self):
        self.counter += 1

    traits_view = View(
        'my_button',
        'counter',
        title = "ButtonEditor",
        buttons = ['ok'],
        resizable = True
    )

button = ButtonEditor()
button.configure_traits()

 

三:滑動條

 

from traits.api import HasTraits,Range,Property,property_depends_on,Int
from traitsui.api import View,Item,RangeEditor
#View描述了界面的視圖類,Item模塊描述了界面中的控件類

class RangeDemo(HasTraits):
    a = Range(1,10)
    b = Range(1,10)
    c = Property(Int)

    view = View(
        Item('a'),
        Item('b'),
        Item("_"),
        Item("c",editor=RangeEditor(low=1,high=20,mode="slider")),  #將c聲明爲一個滾動條
        Item("c"),
        width = 0.3
    )

    @property_depends_on(['a','b'],settable=HasTraits)  
    def _get_c(self):  #兩個c都會修改
        return self.a + self.b

ran = RangeDemo()
ran.configure_traits()

 

 四:菜單和工具欄

其餘控件列表:

相關文章
相關標籤/搜索