Python pptx Click action examples












0















i'm trying to recreate a simple PP_Action.
The code below built without errors however the click action will not run in the slides.



'shape.click_action.action' returns with NONE(0) after action is being assigned.
Is there anything wrong with the code? Couldn't find a base example on this.
Please help.



from pptx import Presentation
from pptx.enum.shapes import MSO_SHAPE
from pptx.util import Cm
from pptx.enum.action import PP_ACTION

prs = Presentation('C:/Template.pptx')
slide = prs.slides.add_slide(prs.slide_layouts[0])

shape = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, Cm(-0.05),Cm(0.86),Cm(34),Cm(19))
shape.click_action.action == PP_ACTION.LAST_SLIDE
print(shape.click_action.action)

slide = prs.slides.add_slide(prs.slide_layouts[0])
slide = prs.slides.add_slide(prs.slide_layouts[0])
prs.save('C:/example.pptx')









share|improve this question



























    0















    i'm trying to recreate a simple PP_Action.
    The code below built without errors however the click action will not run in the slides.



    'shape.click_action.action' returns with NONE(0) after action is being assigned.
    Is there anything wrong with the code? Couldn't find a base example on this.
    Please help.



    from pptx import Presentation
    from pptx.enum.shapes import MSO_SHAPE
    from pptx.util import Cm
    from pptx.enum.action import PP_ACTION

    prs = Presentation('C:/Template.pptx')
    slide = prs.slides.add_slide(prs.slide_layouts[0])

    shape = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, Cm(-0.05),Cm(0.86),Cm(34),Cm(19))
    shape.click_action.action == PP_ACTION.LAST_SLIDE
    print(shape.click_action.action)

    slide = prs.slides.add_slide(prs.slide_layouts[0])
    slide = prs.slides.add_slide(prs.slide_layouts[0])
    prs.save('C:/example.pptx')









    share|improve this question

























      0












      0








      0








      i'm trying to recreate a simple PP_Action.
      The code below built without errors however the click action will not run in the slides.



      'shape.click_action.action' returns with NONE(0) after action is being assigned.
      Is there anything wrong with the code? Couldn't find a base example on this.
      Please help.



      from pptx import Presentation
      from pptx.enum.shapes import MSO_SHAPE
      from pptx.util import Cm
      from pptx.enum.action import PP_ACTION

      prs = Presentation('C:/Template.pptx')
      slide = prs.slides.add_slide(prs.slide_layouts[0])

      shape = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, Cm(-0.05),Cm(0.86),Cm(34),Cm(19))
      shape.click_action.action == PP_ACTION.LAST_SLIDE
      print(shape.click_action.action)

      slide = prs.slides.add_slide(prs.slide_layouts[0])
      slide = prs.slides.add_slide(prs.slide_layouts[0])
      prs.save('C:/example.pptx')









      share|improve this question














      i'm trying to recreate a simple PP_Action.
      The code below built without errors however the click action will not run in the slides.



      'shape.click_action.action' returns with NONE(0) after action is being assigned.
      Is there anything wrong with the code? Couldn't find a base example on this.
      Please help.



      from pptx import Presentation
      from pptx.enum.shapes import MSO_SHAPE
      from pptx.util import Cm
      from pptx.enum.action import PP_ACTION

      prs = Presentation('C:/Template.pptx')
      slide = prs.slides.add_slide(prs.slide_layouts[0])

      shape = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, Cm(-0.05),Cm(0.86),Cm(34),Cm(19))
      shape.click_action.action == PP_ACTION.LAST_SLIDE
      print(shape.click_action.action)

      slide = prs.slides.add_slide(prs.slide_layouts[0])
      slide = prs.slides.add_slide(prs.slide_layouts[0])
      prs.save('C:/example.pptx')






      python-pptx






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 '18 at 1:39









      Joel HiouJoel Hiou

      11




      11
























          1 Answer
          1






          active

          oldest

          votes


















          0














          click_action.action is read-only, so assigning to it would raise an error. In your case, you used the == comparison operator which does nothing noticeable.



          It's not actual LAST_SLIDE behavior, because that is dynamic, like you can add and delete slides and it still works, but this is a step closer to what you're after:



          shape.click_action.target_slide = prs.slides[-1]





          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%2f53422752%2fpython-pptx-click-action-examples%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









            0














            click_action.action is read-only, so assigning to it would raise an error. In your case, you used the == comparison operator which does nothing noticeable.



            It's not actual LAST_SLIDE behavior, because that is dynamic, like you can add and delete slides and it still works, but this is a step closer to what you're after:



            shape.click_action.target_slide = prs.slides[-1]





            share|improve this answer




























              0














              click_action.action is read-only, so assigning to it would raise an error. In your case, you used the == comparison operator which does nothing noticeable.



              It's not actual LAST_SLIDE behavior, because that is dynamic, like you can add and delete slides and it still works, but this is a step closer to what you're after:



              shape.click_action.target_slide = prs.slides[-1]





              share|improve this answer


























                0












                0








                0







                click_action.action is read-only, so assigning to it would raise an error. In your case, you used the == comparison operator which does nothing noticeable.



                It's not actual LAST_SLIDE behavior, because that is dynamic, like you can add and delete slides and it still works, but this is a step closer to what you're after:



                shape.click_action.target_slide = prs.slides[-1]





                share|improve this answer













                click_action.action is read-only, so assigning to it would raise an error. In your case, you used the == comparison operator which does nothing noticeable.



                It's not actual LAST_SLIDE behavior, because that is dynamic, like you can add and delete slides and it still works, but this is a step closer to what you're after:



                shape.click_action.target_slide = prs.slides[-1]






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 10 at 22:59









                scannyscanny

                10.5k12245




                10.5k12245
































                    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%2f53422752%2fpython-pptx-click-action-examples%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

                    Biblatex bibliography style without URLs when DOI exists (in Overleaf with Zotero bibliography)

                    ComboBox Display Member on multiple fields

                    Is it possible to collect Nectar points via Trainline?