Exemple #1
0
def test_ui_textbox(recording=False):
    filename = "test_ui_textbox"
    recording_filename = pjoin(DATA_DIR, filename + ".log.gz")
    expected_events_counts_filename = pjoin(DATA_DIR, filename + ".pkl")

    # TextBox
    textbox_test = ui.TextBox2D(height=3, width=10, text="Text")

    another_textbox_test = ui.TextBox2D(height=3, width=10, text="Enter Text")
    another_textbox_test.set_message("Enter Text")
    npt.assert_raises(NotImplementedError, setattr, another_textbox_test,
                      "center", (10, 100))

    # Assign the counter callback to every possible event.
    event_counter = EventCounter()
    event_counter.monitor(textbox_test)

    current_size = (600, 600)
    show_manager = window.ShowManager(size=current_size, title="DIPY TextBox")

    show_manager.ren.add(textbox_test)

    if recording:
        show_manager.record_events_to_file(recording_filename)
        print(list(event_counter.events_counts.items()))
        event_counter.save(expected_events_counts_filename)

    else:
        show_manager.play_events_from_file(recording_filename)
        expected = EventCounter.load(expected_events_counts_filename)
        event_counter.check_counts(expected)
Exemple #2
0
def slider(image_actor, line_actor):

    slicer_opacity = 0.6
    #image_actor.opacity(slicer_opacity)
    ren = window.Renderer()
    ren.add(image_actor)
    ren.add(line_actor)

    show_m = window.ShowManager(ren, size=(1200, 900))
    show_m.initialize()

    line_slider_z = ui.LineSlider2D(min_value=0,
                                    max_value=shape[2] - 1,
                                    initial_value=shape[2] / 2,
                                    text_template="{value:.0f}")
    opacity_slider = ui.LineSlider2D(min_value=0.0,
                                     max_value=1.0,
                                     initial_value=slicer_opacity)

    def change_slice_z(i_ren, obj, slider):
        z = int(np.round(slider.value))
        image_actor.display(None, None, z)

    def change_opacity(i_ren, obj, slider):
        slicer_opacity = slider.value
        image_actor.opacity(slicer_opacity)

    line_slider_z.add_callback(line_slider_z.slider_disk, "MouseMoveEvent",
                               change_slice_z)

    opacity_slider.add_callback(opacity_slider.slider_disk, "MouseMoveEvent",
                                change_opacity)

    line_slider_label_z = ui.TextBox2D(text="Slice", width=50, height=20)

    opacity_slider_label = ui.TextBox2D(text="Opacity", width=50, height=20)

    panel = ui.Panel2D(center=(1030, 120),
                       size=(300, 200),
                       color=(1, 1, 1),
                       opacity=0.1,
                       align="right")

    panel.add_element(line_slider_label_z, 'relative', (0.1, 0.4))
    panel.add_element(line_slider_z, 'relative', (0.5, 0.4))
    panel.add_element(opacity_slider_label, 'relative', (0.1, 0.2))
    panel.add_element(opacity_slider, 'relative', (0.5, 0.2))

    #show_m.ren.add(panel)
    ren.add(panel)
    global size
    size = ren.GetSize()

    def win_callback(obj, event):
        global size
        if size != obj.GetSize():
            size_old = size
            size = obj.GetSize()
            size_change = [size[0] - size_old[0], 0]
            panel.re_align(size_change)

    show_m.initialize()
    #window.show(ren)
    show_m.add_window_callback(win_callback)
    show_m.render()
    show_m.start()
Exemple #3
0
Panels
======

Simply create a panel and add elements to it.
"""

panel = ui.Panel2D(size=(300, 150), color=(1, 1, 1), align="right")
panel.center = (440, 90)
panel.add_element(button_example, (0.2, 0.2))
panel.add_element(second_button_example, (190, 85))
"""
TextBox
=======
"""

text = ui.TextBox2D(height=3, width=10)
"""
2D Line Slider
==============
"""


def translate_green_cube(slider):
    value = slider.value
    cube_actor_2.SetPosition(value, 0, 0)


line_slider = ui.LineSlider2D(center=(450, 300),
                              initial_value=-2,
                              min_value=-5,
                              max_value=5)
Exemple #4
0
                           change_slice_z)
line_slider_x.add_callback(line_slider_x.slider_disk,
                           "MouseMoveEvent",
                           change_slice_x)
line_slider_y.add_callback(line_slider_y.slider_disk,
                           "MouseMoveEvent",
                           change_slice_y)
opacity_slider.add_callback(opacity_slider.slider_disk,
                            "MouseMoveEvent",
                            change_opacity)

"""
We'll also create text labels to identify the sliders.
"""

line_slider_label_z = ui.TextBox2D(text="Z Slice", width=50, height=20)
line_slider_label_x = ui.TextBox2D(text="X Slice", width=50, height=20)
line_slider_label_y = ui.TextBox2D(text="Y Slice", width=50, height=20)
opacity_slider_label = ui.TextBox2D(text="Opacity", width=50, height=20)

"""
Now we will create a ``panel`` to contain the sliders and labels.
"""


panel = ui.Panel2D(center=(1030, 120),
                   size=(300, 200),
                   color=(1, 1, 1),
                   opacity=0.1,
                   align="right")