Add a label when a button is pressed into scroll view












0















## Python File ##



from kivy.app import App
from kivy.uix.widget import Widget
from kivy.lang import Builder

class Chat(Widget):
pass

def __init__(self):
super(Chat,self).__init__()



class ChatApp(App):
def post(self,msg):

if len(msg)>0:
msgbox=Chat()
msgbox.ids.mlab.text=msg
self.root.ids.chatbox.add_widget(msgbox) #add widget when a button is pressed
self.root.ids.text_inpt.text='' #after adding the widget clear the textinput widget's text

def build(self):
return Chat()


myapp = ChatApp()
myapp.run()



  1. I am trying to add a label whenever the button is pressed with the text from the text input.


  2. Instead it's throwing an error or showing nothing on the screen.



  3. Further, I want to add another method which makes it as a chatting screen.So,for that I need to make the input label to align right and response label to align Left.



    Thank you for your help in advance!!!






KV FILE



<Label>:
center: root.center
padding: (-10,0)
markup: True
text_size: (None, None)
valign: 'top'
size_hint: (1, None)
color: 0, 0, 0

<BoxLayout>:
padding: 10
spacing: 10

<Button>:
font_size: 30
height: 60
size_hint: (1, None)
border: (1, 1, 1, 1)

<TextInput>:
font_size: 20
multiline: True
padding: [10, 0.5 * (self.height - self.line_height)]


<Chat@Widget>:
Label:
id: mlab
padding: 10, 10
markup: True
text_size: (None, None)
text: ''
haligh: 'left'
valign: 'top'
size_hint: (1, None)
size: self.texture_size
color: 0, 0, 0
BoxLayout:

orientation: 'vertical'
size:root.size
ScrollView:

id:scrlv

canvas.before:
Color:
rgb: 1, 1, 1
Rectangle:
pos: self.pos
size: self.size

StackLayout:
id:chatbox
padding: 10, 10
orientation: 'tb-rl'


BoxLayout:
height: 60
orientation: 'horizontal'
padding: 0
size_hint: (1, None)

TextInput:
id:text_inpt

Button:
text: 'Send'
size_hint: (0.3, 1)
on_release: app.post(text_inpt.text)









share|improve this question



























    0















    ## Python File ##



    from kivy.app import App
    from kivy.uix.widget import Widget
    from kivy.lang import Builder

    class Chat(Widget):
    pass

    def __init__(self):
    super(Chat,self).__init__()



    class ChatApp(App):
    def post(self,msg):

    if len(msg)>0:
    msgbox=Chat()
    msgbox.ids.mlab.text=msg
    self.root.ids.chatbox.add_widget(msgbox) #add widget when a button is pressed
    self.root.ids.text_inpt.text='' #after adding the widget clear the textinput widget's text

    def build(self):
    return Chat()


    myapp = ChatApp()
    myapp.run()



    1. I am trying to add a label whenever the button is pressed with the text from the text input.


    2. Instead it's throwing an error or showing nothing on the screen.



    3. Further, I want to add another method which makes it as a chatting screen.So,for that I need to make the input label to align right and response label to align Left.



      Thank you for your help in advance!!!






    KV FILE



    <Label>:
    center: root.center
    padding: (-10,0)
    markup: True
    text_size: (None, None)
    valign: 'top'
    size_hint: (1, None)
    color: 0, 0, 0

    <BoxLayout>:
    padding: 10
    spacing: 10

    <Button>:
    font_size: 30
    height: 60
    size_hint: (1, None)
    border: (1, 1, 1, 1)

    <TextInput>:
    font_size: 20
    multiline: True
    padding: [10, 0.5 * (self.height - self.line_height)]


    <Chat@Widget>:
    Label:
    id: mlab
    padding: 10, 10
    markup: True
    text_size: (None, None)
    text: ''
    haligh: 'left'
    valign: 'top'
    size_hint: (1, None)
    size: self.texture_size
    color: 0, 0, 0
    BoxLayout:

    orientation: 'vertical'
    size:root.size
    ScrollView:

    id:scrlv

    canvas.before:
    Color:
    rgb: 1, 1, 1
    Rectangle:
    pos: self.pos
    size: self.size

    StackLayout:
    id:chatbox
    padding: 10, 10
    orientation: 'tb-rl'


    BoxLayout:
    height: 60
    orientation: 'horizontal'
    padding: 0
    size_hint: (1, None)

    TextInput:
    id:text_inpt

    Button:
    text: 'Send'
    size_hint: (0.3, 1)
    on_release: app.post(text_inpt.text)









    share|improve this question

























      0












      0








      0








      ## Python File ##



      from kivy.app import App
      from kivy.uix.widget import Widget
      from kivy.lang import Builder

      class Chat(Widget):
      pass

      def __init__(self):
      super(Chat,self).__init__()



      class ChatApp(App):
      def post(self,msg):

      if len(msg)>0:
      msgbox=Chat()
      msgbox.ids.mlab.text=msg
      self.root.ids.chatbox.add_widget(msgbox) #add widget when a button is pressed
      self.root.ids.text_inpt.text='' #after adding the widget clear the textinput widget's text

      def build(self):
      return Chat()


      myapp = ChatApp()
      myapp.run()



      1. I am trying to add a label whenever the button is pressed with the text from the text input.


      2. Instead it's throwing an error or showing nothing on the screen.



      3. Further, I want to add another method which makes it as a chatting screen.So,for that I need to make the input label to align right and response label to align Left.



        Thank you for your help in advance!!!






      KV FILE



      <Label>:
      center: root.center
      padding: (-10,0)
      markup: True
      text_size: (None, None)
      valign: 'top'
      size_hint: (1, None)
      color: 0, 0, 0

      <BoxLayout>:
      padding: 10
      spacing: 10

      <Button>:
      font_size: 30
      height: 60
      size_hint: (1, None)
      border: (1, 1, 1, 1)

      <TextInput>:
      font_size: 20
      multiline: True
      padding: [10, 0.5 * (self.height - self.line_height)]


      <Chat@Widget>:
      Label:
      id: mlab
      padding: 10, 10
      markup: True
      text_size: (None, None)
      text: ''
      haligh: 'left'
      valign: 'top'
      size_hint: (1, None)
      size: self.texture_size
      color: 0, 0, 0
      BoxLayout:

      orientation: 'vertical'
      size:root.size
      ScrollView:

      id:scrlv

      canvas.before:
      Color:
      rgb: 1, 1, 1
      Rectangle:
      pos: self.pos
      size: self.size

      StackLayout:
      id:chatbox
      padding: 10, 10
      orientation: 'tb-rl'


      BoxLayout:
      height: 60
      orientation: 'horizontal'
      padding: 0
      size_hint: (1, None)

      TextInput:
      id:text_inpt

      Button:
      text: 'Send'
      size_hint: (0.3, 1)
      on_release: app.post(text_inpt.text)









      share|improve this question














      ## Python File ##



      from kivy.app import App
      from kivy.uix.widget import Widget
      from kivy.lang import Builder

      class Chat(Widget):
      pass

      def __init__(self):
      super(Chat,self).__init__()



      class ChatApp(App):
      def post(self,msg):

      if len(msg)>0:
      msgbox=Chat()
      msgbox.ids.mlab.text=msg
      self.root.ids.chatbox.add_widget(msgbox) #add widget when a button is pressed
      self.root.ids.text_inpt.text='' #after adding the widget clear the textinput widget's text

      def build(self):
      return Chat()


      myapp = ChatApp()
      myapp.run()



      1. I am trying to add a label whenever the button is pressed with the text from the text input.


      2. Instead it's throwing an error or showing nothing on the screen.



      3. Further, I want to add another method which makes it as a chatting screen.So,for that I need to make the input label to align right and response label to align Left.



        Thank you for your help in advance!!!






      KV FILE



      <Label>:
      center: root.center
      padding: (-10,0)
      markup: True
      text_size: (None, None)
      valign: 'top'
      size_hint: (1, None)
      color: 0, 0, 0

      <BoxLayout>:
      padding: 10
      spacing: 10

      <Button>:
      font_size: 30
      height: 60
      size_hint: (1, None)
      border: (1, 1, 1, 1)

      <TextInput>:
      font_size: 20
      multiline: True
      padding: [10, 0.5 * (self.height - self.line_height)]


      <Chat@Widget>:
      Label:
      id: mlab
      padding: 10, 10
      markup: True
      text_size: (None, None)
      text: ''
      haligh: 'left'
      valign: 'top'
      size_hint: (1, None)
      size: self.texture_size
      color: 0, 0, 0
      BoxLayout:

      orientation: 'vertical'
      size:root.size
      ScrollView:

      id:scrlv

      canvas.before:
      Color:
      rgb: 1, 1, 1
      Rectangle:
      pos: self.pos
      size: self.size

      StackLayout:
      id:chatbox
      padding: 10, 10
      orientation: 'tb-rl'


      BoxLayout:
      height: 60
      orientation: 'horizontal'
      padding: 0
      size_hint: (1, None)

      TextInput:
      id:text_inpt

      Button:
      text: 'Send'
      size_hint: (0.3, 1)
      on_release: app.post(text_inpt.text)






      python-3.x kivy-language






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Dec 28 '18 at 19:27









      shiva prasadshiva prasad

      11




      11
























          0






          active

          oldest

          votes











          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%2f53963415%2fadd-a-label-when-a-button-is-pressed-into-scroll-view%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          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%2f53963415%2fadd-a-label-when-a-button-is-pressed-into-scroll-view%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

          Mossoró

          Error while reading .h5 file using the rhdf5 package in R

          Pushsharp Apns notification error: 'InvalidToken'