Jupyter Ipywidgets - How to clear cell output before re-printing the output





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















Using Python 3.7 in a Jupyter notebook, the code below shows a text entry field that triggers the handle_submit function to print out some output.
In this example 40 repetitions of the input.



from ipywidgets import widgets
from IPython.display import display

text = widgets.Text()
display(text)

def handle_submit(sender):
print('n'.join([text.value] * 40 ))

text.on_submit(handle_submit)


Running this code displays a text box.



If you enter text in the box and press Enter, the handle_submit function is run and the "result" is printed.



This can be used multiple times, but all old output is kept. So after using the entry field a couple of times you need to scroll endlessly to get to the new result.



Is there a command to clear the cell output before printing new output from the handle_submit function? Unlike this example, the output length is not fixed, so the solution should handle differently sized outputs.










share|improve this question





























    1















    Using Python 3.7 in a Jupyter notebook, the code below shows a text entry field that triggers the handle_submit function to print out some output.
    In this example 40 repetitions of the input.



    from ipywidgets import widgets
    from IPython.display import display

    text = widgets.Text()
    display(text)

    def handle_submit(sender):
    print('n'.join([text.value] * 40 ))

    text.on_submit(handle_submit)


    Running this code displays a text box.



    If you enter text in the box and press Enter, the handle_submit function is run and the "result" is printed.



    This can be used multiple times, but all old output is kept. So after using the entry field a couple of times you need to scroll endlessly to get to the new result.



    Is there a command to clear the cell output before printing new output from the handle_submit function? Unlike this example, the output length is not fixed, so the solution should handle differently sized outputs.










    share|improve this question

























      1












      1








      1








      Using Python 3.7 in a Jupyter notebook, the code below shows a text entry field that triggers the handle_submit function to print out some output.
      In this example 40 repetitions of the input.



      from ipywidgets import widgets
      from IPython.display import display

      text = widgets.Text()
      display(text)

      def handle_submit(sender):
      print('n'.join([text.value] * 40 ))

      text.on_submit(handle_submit)


      Running this code displays a text box.



      If you enter text in the box and press Enter, the handle_submit function is run and the "result" is printed.



      This can be used multiple times, but all old output is kept. So after using the entry field a couple of times you need to scroll endlessly to get to the new result.



      Is there a command to clear the cell output before printing new output from the handle_submit function? Unlike this example, the output length is not fixed, so the solution should handle differently sized outputs.










      share|improve this question














      Using Python 3.7 in a Jupyter notebook, the code below shows a text entry field that triggers the handle_submit function to print out some output.
      In this example 40 repetitions of the input.



      from ipywidgets import widgets
      from IPython.display import display

      text = widgets.Text()
      display(text)

      def handle_submit(sender):
      print('n'.join([text.value] * 40 ))

      text.on_submit(handle_submit)


      Running this code displays a text box.



      If you enter text in the box and press Enter, the handle_submit function is run and the "result" is printed.



      This can be used multiple times, but all old output is kept. So after using the entry field a couple of times you need to scroll endlessly to get to the new result.



      Is there a command to clear the cell output before printing new output from the handle_submit function? Unlike this example, the output length is not fixed, so the solution should handle differently sized outputs.







      python python-3.x jupyter-notebook ipywidgets






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 3 at 20:59









      576i576i

      2,50011335




      2,50011335
























          1 Answer
          1






          active

          oldest

          votes


















          1














          By creating an Output widget, you can print to this widget the same way as a cell output. You also have the option to call clear_output() in a context manager to, well, clear the output.



          I've coded this up so the output is cleared every time new input is submitted, but there's no reason why you couldn't hook a button up to run clear_output() to do this manually.



          from ipywidgets import widgets
          from IPython.display import display, clear_output

          text = widgets.Text()
          display(text)
          output = widgets.Output()
          display(output)

          def handle_submit(sender):
          with output:
          clear_output()
          print('n'.join([text.value] * 40 ))

          text.on_submit(handle_submit)





          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54029719%2fjupyter-ipywidgets-how-to-clear-cell-output-before-re-printing-the-output%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            By creating an Output widget, you can print to this widget the same way as a cell output. You also have the option to call clear_output() in a context manager to, well, clear the output.



            I've coded this up so the output is cleared every time new input is submitted, but there's no reason why you couldn't hook a button up to run clear_output() to do this manually.



            from ipywidgets import widgets
            from IPython.display import display, clear_output

            text = widgets.Text()
            display(text)
            output = widgets.Output()
            display(output)

            def handle_submit(sender):
            with output:
            clear_output()
            print('n'.join([text.value] * 40 ))

            text.on_submit(handle_submit)





            share|improve this answer




























              1














              By creating an Output widget, you can print to this widget the same way as a cell output. You also have the option to call clear_output() in a context manager to, well, clear the output.



              I've coded this up so the output is cleared every time new input is submitted, but there's no reason why you couldn't hook a button up to run clear_output() to do this manually.



              from ipywidgets import widgets
              from IPython.display import display, clear_output

              text = widgets.Text()
              display(text)
              output = widgets.Output()
              display(output)

              def handle_submit(sender):
              with output:
              clear_output()
              print('n'.join([text.value] * 40 ))

              text.on_submit(handle_submit)





              share|improve this answer


























                1












                1








                1







                By creating an Output widget, you can print to this widget the same way as a cell output. You also have the option to call clear_output() in a context manager to, well, clear the output.



                I've coded this up so the output is cleared every time new input is submitted, but there's no reason why you couldn't hook a button up to run clear_output() to do this manually.



                from ipywidgets import widgets
                from IPython.display import display, clear_output

                text = widgets.Text()
                display(text)
                output = widgets.Output()
                display(output)

                def handle_submit(sender):
                with output:
                clear_output()
                print('n'.join([text.value] * 40 ))

                text.on_submit(handle_submit)





                share|improve this answer













                By creating an Output widget, you can print to this widget the same way as a cell output. You also have the option to call clear_output() in a context manager to, well, clear the output.



                I've coded this up so the output is cleared every time new input is submitted, but there's no reason why you couldn't hook a button up to run clear_output() to do this manually.



                from ipywidgets import widgets
                from IPython.display import display, clear_output

                text = widgets.Text()
                display(text)
                output = widgets.Output()
                display(output)

                def handle_submit(sender):
                with output:
                clear_output()
                print('n'.join([text.value] * 40 ))

                text.on_submit(handle_submit)






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 8 at 7:55









                ac24ac24

                705110




                705110
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54029719%2fjupyter-ipywidgets-how-to-clear-cell-output-before-re-printing-the-output%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Monofisismo

                    Angular Downloading a file using contenturl with Basic Authentication

                    Olmecas