MainWindow object has no attribute 'connect'












1















I wonder if someone could help me resolve this issue regarding slot connection in PyQt5. The following code snippet will show you what my problem is.



class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
path = os.path.join(os.path.dirname(__file__), 'GUI/Main_GUI.ui')
self.gui = loadUi(path)

self.gui.button_1.clicked.connect(self.run.this)

def _connect_my_slots(self, origin):
self.connect(origin, SIGNAL('completed'), self._show_results)
self.connect(origin, SIGNAL('error'), self._show_error)

def run_this(self):
myThread = LongRunningThing()
self._connect_my_slots(self.myThread) # THIS IS THE PART THAT CAUSES ERROR


As you can see my MainWindow object is my UI file (from QtDesigner 5) and once I call _connect_my_slots function it throws an error:




AttributError: 'MainWindow' object has no attribute 'connect'











share|improve this question





























    1















    I wonder if someone could help me resolve this issue regarding slot connection in PyQt5. The following code snippet will show you what my problem is.



    class MainWindow(QMainWindow):
    def __init__(self):
    super(MainWindow, self).__init__()
    path = os.path.join(os.path.dirname(__file__), 'GUI/Main_GUI.ui')
    self.gui = loadUi(path)

    self.gui.button_1.clicked.connect(self.run.this)

    def _connect_my_slots(self, origin):
    self.connect(origin, SIGNAL('completed'), self._show_results)
    self.connect(origin, SIGNAL('error'), self._show_error)

    def run_this(self):
    myThread = LongRunningThing()
    self._connect_my_slots(self.myThread) # THIS IS THE PART THAT CAUSES ERROR


    As you can see my MainWindow object is my UI file (from QtDesigner 5) and once I call _connect_my_slots function it throws an error:




    AttributError: 'MainWindow' object has no attribute 'connect'











    share|improve this question



























      1












      1








      1








      I wonder if someone could help me resolve this issue regarding slot connection in PyQt5. The following code snippet will show you what my problem is.



      class MainWindow(QMainWindow):
      def __init__(self):
      super(MainWindow, self).__init__()
      path = os.path.join(os.path.dirname(__file__), 'GUI/Main_GUI.ui')
      self.gui = loadUi(path)

      self.gui.button_1.clicked.connect(self.run.this)

      def _connect_my_slots(self, origin):
      self.connect(origin, SIGNAL('completed'), self._show_results)
      self.connect(origin, SIGNAL('error'), self._show_error)

      def run_this(self):
      myThread = LongRunningThing()
      self._connect_my_slots(self.myThread) # THIS IS THE PART THAT CAUSES ERROR


      As you can see my MainWindow object is my UI file (from QtDesigner 5) and once I call _connect_my_slots function it throws an error:




      AttributError: 'MainWindow' object has no attribute 'connect'











      share|improve this question
















      I wonder if someone could help me resolve this issue regarding slot connection in PyQt5. The following code snippet will show you what my problem is.



      class MainWindow(QMainWindow):
      def __init__(self):
      super(MainWindow, self).__init__()
      path = os.path.join(os.path.dirname(__file__), 'GUI/Main_GUI.ui')
      self.gui = loadUi(path)

      self.gui.button_1.clicked.connect(self.run.this)

      def _connect_my_slots(self, origin):
      self.connect(origin, SIGNAL('completed'), self._show_results)
      self.connect(origin, SIGNAL('error'), self._show_error)

      def run_this(self):
      myThread = LongRunningThing()
      self._connect_my_slots(self.myThread) # THIS IS THE PART THAT CAUSES ERROR


      As you can see my MainWindow object is my UI file (from QtDesigner 5) and once I call _connect_my_slots function it throws an error:




      AttributError: 'MainWindow' object has no attribute 'connect'








      python-3.x signals-slots pyqt5






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 30 '15 at 9:12









      Mel

      3,76892430




      3,76892430










      asked Dec 30 '15 at 8:31









      Beller0ph0nBeller0ph0n

      40110




      40110
























          1 Answer
          1






          active

          oldest

          votes


















          1














          You are using the old style signal and slot, which is not longer supported in PyQt5.



          The old style:



          self.connect(origin, SIGNAL('completed'), self._show_results)


          should now be written in the new style:



          origin.completed.connect(self._show_results)


          For more details, see the documentation on New-style Signal and Slot Support.






          share|improve this answer
























          • Thanks a lot tmoreau old-style signals were the cause of problem. Just to make sure that I'm on the right track, could you please tell me if my EMIT statement is also an old style: self.emit(SIGNAL('completed'), self.result) Thanks in advance.

            – Beller0ph0n
            Dec 30 '15 at 10:20













          • Yes it's old style. "SIGNAL" is your clue. Everything you need to know on signals is on the linked documentation page (even is it's for PyQt4, it should work the same)

            – Mel
            Dec 30 '15 at 10:26











          • Thanks again tmoreau. I'm already going through that document. Your help is greatly appreciated!!

            – Beller0ph0n
            Dec 30 '15 at 10:44











          • tmoreau can you please take a look at this link. Maybe you can help me once more ;)

            – Beller0ph0n
            Dec 30 '15 at 11:47













          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%2f34525750%2fmainwindow-object-has-no-attribute-connect%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














          You are using the old style signal and slot, which is not longer supported in PyQt5.



          The old style:



          self.connect(origin, SIGNAL('completed'), self._show_results)


          should now be written in the new style:



          origin.completed.connect(self._show_results)


          For more details, see the documentation on New-style Signal and Slot Support.






          share|improve this answer
























          • Thanks a lot tmoreau old-style signals were the cause of problem. Just to make sure that I'm on the right track, could you please tell me if my EMIT statement is also an old style: self.emit(SIGNAL('completed'), self.result) Thanks in advance.

            – Beller0ph0n
            Dec 30 '15 at 10:20













          • Yes it's old style. "SIGNAL" is your clue. Everything you need to know on signals is on the linked documentation page (even is it's for PyQt4, it should work the same)

            – Mel
            Dec 30 '15 at 10:26











          • Thanks again tmoreau. I'm already going through that document. Your help is greatly appreciated!!

            – Beller0ph0n
            Dec 30 '15 at 10:44











          • tmoreau can you please take a look at this link. Maybe you can help me once more ;)

            – Beller0ph0n
            Dec 30 '15 at 11:47


















          1














          You are using the old style signal and slot, which is not longer supported in PyQt5.



          The old style:



          self.connect(origin, SIGNAL('completed'), self._show_results)


          should now be written in the new style:



          origin.completed.connect(self._show_results)


          For more details, see the documentation on New-style Signal and Slot Support.






          share|improve this answer
























          • Thanks a lot tmoreau old-style signals were the cause of problem. Just to make sure that I'm on the right track, could you please tell me if my EMIT statement is also an old style: self.emit(SIGNAL('completed'), self.result) Thanks in advance.

            – Beller0ph0n
            Dec 30 '15 at 10:20













          • Yes it's old style. "SIGNAL" is your clue. Everything you need to know on signals is on the linked documentation page (even is it's for PyQt4, it should work the same)

            – Mel
            Dec 30 '15 at 10:26











          • Thanks again tmoreau. I'm already going through that document. Your help is greatly appreciated!!

            – Beller0ph0n
            Dec 30 '15 at 10:44











          • tmoreau can you please take a look at this link. Maybe you can help me once more ;)

            – Beller0ph0n
            Dec 30 '15 at 11:47
















          1












          1








          1







          You are using the old style signal and slot, which is not longer supported in PyQt5.



          The old style:



          self.connect(origin, SIGNAL('completed'), self._show_results)


          should now be written in the new style:



          origin.completed.connect(self._show_results)


          For more details, see the documentation on New-style Signal and Slot Support.






          share|improve this answer













          You are using the old style signal and slot, which is not longer supported in PyQt5.



          The old style:



          self.connect(origin, SIGNAL('completed'), self._show_results)


          should now be written in the new style:



          origin.completed.connect(self._show_results)


          For more details, see the documentation on New-style Signal and Slot Support.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Dec 30 '15 at 9:10









          MelMel

          3,76892430




          3,76892430













          • Thanks a lot tmoreau old-style signals were the cause of problem. Just to make sure that I'm on the right track, could you please tell me if my EMIT statement is also an old style: self.emit(SIGNAL('completed'), self.result) Thanks in advance.

            – Beller0ph0n
            Dec 30 '15 at 10:20













          • Yes it's old style. "SIGNAL" is your clue. Everything you need to know on signals is on the linked documentation page (even is it's for PyQt4, it should work the same)

            – Mel
            Dec 30 '15 at 10:26











          • Thanks again tmoreau. I'm already going through that document. Your help is greatly appreciated!!

            – Beller0ph0n
            Dec 30 '15 at 10:44











          • tmoreau can you please take a look at this link. Maybe you can help me once more ;)

            – Beller0ph0n
            Dec 30 '15 at 11:47





















          • Thanks a lot tmoreau old-style signals were the cause of problem. Just to make sure that I'm on the right track, could you please tell me if my EMIT statement is also an old style: self.emit(SIGNAL('completed'), self.result) Thanks in advance.

            – Beller0ph0n
            Dec 30 '15 at 10:20













          • Yes it's old style. "SIGNAL" is your clue. Everything you need to know on signals is on the linked documentation page (even is it's for PyQt4, it should work the same)

            – Mel
            Dec 30 '15 at 10:26











          • Thanks again tmoreau. I'm already going through that document. Your help is greatly appreciated!!

            – Beller0ph0n
            Dec 30 '15 at 10:44











          • tmoreau can you please take a look at this link. Maybe you can help me once more ;)

            – Beller0ph0n
            Dec 30 '15 at 11:47



















          Thanks a lot tmoreau old-style signals were the cause of problem. Just to make sure that I'm on the right track, could you please tell me if my EMIT statement is also an old style: self.emit(SIGNAL('completed'), self.result) Thanks in advance.

          – Beller0ph0n
          Dec 30 '15 at 10:20







          Thanks a lot tmoreau old-style signals were the cause of problem. Just to make sure that I'm on the right track, could you please tell me if my EMIT statement is also an old style: self.emit(SIGNAL('completed'), self.result) Thanks in advance.

          – Beller0ph0n
          Dec 30 '15 at 10:20















          Yes it's old style. "SIGNAL" is your clue. Everything you need to know on signals is on the linked documentation page (even is it's for PyQt4, it should work the same)

          – Mel
          Dec 30 '15 at 10:26





          Yes it's old style. "SIGNAL" is your clue. Everything you need to know on signals is on the linked documentation page (even is it's for PyQt4, it should work the same)

          – Mel
          Dec 30 '15 at 10:26













          Thanks again tmoreau. I'm already going through that document. Your help is greatly appreciated!!

          – Beller0ph0n
          Dec 30 '15 at 10:44





          Thanks again tmoreau. I'm already going through that document. Your help is greatly appreciated!!

          – Beller0ph0n
          Dec 30 '15 at 10:44













          tmoreau can you please take a look at this link. Maybe you can help me once more ;)

          – Beller0ph0n
          Dec 30 '15 at 11:47







          tmoreau can you please take a look at this link. Maybe you can help me once more ;)

          – Beller0ph0n
          Dec 30 '15 at 11:47




















          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%2f34525750%2fmainwindow-object-has-no-attribute-connect%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

          Costa Masnaga

          Fotorealismo

          Sidney Franklin