Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. For loop problem!
Servers for Qt installer are currently down

For loop problem!

Scheduled Pinned Locked Moved Solved Qt for Python
15 Posts 2 Posters 2.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • monamourM monamour

    @jsulm Sorry,I modified the question.

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by jsulm
    #4

    @monamour If the first if is true you do return
    Also both if conditions are identical - what's the point?

    https://forum.qt.io/topic/113070/qt-code-of-conduct

    monamourM 1 Reply Last reply
    0
    • jsulmJ jsulm

      @monamour If the first if is true you do return
      Also both if conditions are identical - what's the point?

      monamourM Offline
      monamourM Offline
      monamour
      wrote on last edited by
      #5

      @jsulm "The first if" should execute when the LINEDIT is blank. " The second if" will execute when the LINEDIT is NOT blank.

      jsulmJ 1 Reply Last reply
      0
      • monamourM monamour

        @jsulm "The first if" should execute when the LINEDIT is blank. " The second if" will execute when the LINEDIT is NOT blank.

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by jsulm
        #6

        @monamour Looks like you edited the code, because before both if were identical.
        Actually you can do it like this:

        if proc.name() not in x:
                        QMessageBox.information(self,"Error",'Blank!')
                        return
        
        else:
                        proc.kill()
                        QMessageBox.information(self, "Success", x2 +"has been terminated"
                        return
        

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        monamourM 1 Reply Last reply
        0
        • jsulmJ jsulm

          @monamour Looks like you edited the code, because before both if were identical.
          Actually you can do it like this:

          if proc.name() not in x:
                          QMessageBox.information(self,"Error",'Blank!')
                          return
          
          else:
                          proc.kill()
                          QMessageBox.information(self, "Success", x2 +"has been terminated"
                          return
          
          monamourM Offline
          monamourM Offline
          monamour
          wrote on last edited by monamour
          #7

          @jsulm Yes, I edited the code. It is same, not solved.

          jsulmJ 1 Reply Last reply
          0
          • monamourM monamour

            @jsulm Yes, I edited the code. It is same, not solved.

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #8

            @monamour Did you check what x is and what proc.name is? Just print out both and see.

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            monamourM 1 Reply Last reply
            0
            • jsulmJ jsulm

              @monamour Did you check what x is and what proc.name is? Just print out both and see.

              monamourM Offline
              monamourM Offline
              monamour
              wrote on last edited by
              #9

              @jsulm

              1- proc.name after "IF CONDITIONS"

              input

              print(x)
              print(proc.name())

              Output

              notepad.exe
              notepad.exe

              2-The full proc.name after "FOR LOOP"

              input

              print(proc.name())

              output

              System Idle Process
              System
              svchost.exe
              smss.exe
              csrss.exe
              MOM.exe
              wininit.exe
              csrss.exe
              services.exe
              lsass.exe
              lsm.exe
              python.exe
              explorer.exe
              svchost.exe
              svchost.exe
              chrome.exe
              WSHelper.exe
              cbInterface.exe
              taskhost.exe
              notepad.exe
              PresentationFontCache.exe
              SearchFilterHost.exe
              chrome.exe
              chrome.exe
              designer.exe
              thunderbird.exe
              fsnotifier64.exe
              conhost.exe
              chrome.exe
              svchost.exe
              notepad++.exe
              VSSVC.exe
              pycharm64.exe
              chrome.exe
              chrome.exe
              SearchProtocolHost.exe
              conhost.exe
              chrome.exe

              Process finished with exit code 0

              jsulmJ 1 Reply Last reply
              0
              • monamourM monamour

                @jsulm

                1- proc.name after "IF CONDITIONS"

                input

                print(x)
                print(proc.name())

                Output

                notepad.exe
                notepad.exe

                2-The full proc.name after "FOR LOOP"

                input

                print(proc.name())

                output

                System Idle Process
                System
                svchost.exe
                smss.exe
                csrss.exe
                MOM.exe
                wininit.exe
                csrss.exe
                services.exe
                lsass.exe
                lsm.exe
                python.exe
                explorer.exe
                svchost.exe
                svchost.exe
                chrome.exe
                WSHelper.exe
                cbInterface.exe
                taskhost.exe
                notepad.exe
                PresentationFontCache.exe
                SearchFilterHost.exe
                chrome.exe
                chrome.exe
                designer.exe
                thunderbird.exe
                fsnotifier64.exe
                conhost.exe
                chrome.exe
                svchost.exe
                notepad++.exe
                VSSVC.exe
                pycharm64.exe
                chrome.exe
                chrome.exe
                SearchProtocolHost.exe
                conhost.exe
                chrome.exe

                Process finished with exit code 0

                jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #10

                @monamour Maybe both strings use different encodings?

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                monamourM 2 Replies Last reply
                0
                • jsulmJ jsulm

                  @monamour Maybe both strings use different encodings?

                  monamourM Offline
                  monamourM Offline
                  monamour
                  wrote on last edited by
                  #11

                  @jsulm Means? because both of them are strings.

                  jsulmJ 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    @monamour Maybe both strings use different encodings?

                    monamourM Offline
                    monamourM Offline
                    monamour
                    wrote on last edited by
                    #12

                    @jsulm If I make two for loops, it will work. What is the common sense in this ?

                    1 Reply Last reply
                    0
                    • monamourM monamour

                      @jsulm Means? because both of them are strings.

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by jsulm
                      #13

                      @monamour said in For loop problem!:

                      Means? because both of them are strings

                      I mean different string encodings like Latin1, UTF-8, ...
                      Can you try to print out type(x) and type(proc.name())?
                      "If I make two for loops, it will work. What is the common sense in this ?" - I don't know what you mean.

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      monamourM 2 Replies Last reply
                      0
                      • jsulmJ jsulm

                        @monamour said in For loop problem!:

                        Means? because both of them are strings

                        I mean different string encodings like Latin1, UTF-8, ...
                        Can you try to print out type(x) and type(proc.name())?
                        "If I make two for loops, it will work. What is the common sense in this ?" - I don't know what you mean.

                        monamourM Offline
                        monamourM Offline
                        monamour
                        wrote on last edited by monamour
                        #14
                        This post is deleted!
                        1 Reply Last reply
                        0
                        • jsulmJ jsulm

                          @monamour said in For loop problem!:

                          Means? because both of them are strings

                          I mean different string encodings like Latin1, UTF-8, ...
                          Can you try to print out type(x) and type(proc.name())?
                          "If I make two for loops, it will work. What is the common sense in this ?" - I don't know what you mean.

                          monamourM Offline
                          monamourM Offline
                          monamour
                          wrote on last edited by monamour
                          #15

                          @jsulm

                          for proc in psutil.process_iter():
                                      if proc.name()==x:
                                          proc.kill()
                                          QMessageBox.information(self, "Success", x2 +"has been terminated")
                                          return
                          
                           for proc in psutil.process_iter():
                                       if proc.name()!=x:
                                           QMessageBox.information(self, "Error","The process " +x2 + " is not found")
                                           return
                          
                          1 Reply Last reply
                          0

                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved