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. Python3.7 How to get URL as string
Forum Updated to NodeBB v4.3 + New Features

Python3.7 How to get URL as string

Scheduled Pinned Locked Moved Solved Qt for Python
14 Posts 4 Posters 1.7k Views
  • 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.
  • jsulmJ jsulm

    @Junhi So, for the first one URL would be: http://LGE0010924.RRUS12-12-C7-S5B.RRUS12B8 ?
    This is actually quite simple in your case as everything is separated by ':'. So, you can split the string like str.split(":") and use the second part as value (str.split(":")[1]).

    J Offline
    J Offline
    Junhi
    wrote on last edited by
    #5

    @jsulm Thank you jsulm, but that is not my want.

    1. If I click [View Detail], anchorClicked event may occur.

    2. The event send signal to Mainwindow.show_monitor_temp

      self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp)

    3. At the Mainwindow.show_monitor_temp(), I want to know how to retrieve URL information, sent by anchorClicked signal. <-- That is my question.

    jsulmJ JonBJ 2 Replies Last reply
    0
    • J Junhi

      @jsulm Thank you jsulm, but that is not my want.

      1. If I click [View Detail], anchorClicked event may occur.

      2. The event send signal to Mainwindow.show_monitor_temp

        self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp)

      3. At the Mainwindow.show_monitor_temp(), I want to know how to retrieve URL information, sent by anchorClicked signal. <-- That is my question.

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

      @Junhi So, you want to download data from URL?
      See https://doc.qt.io/qt-5/qnetworkaccessmanager.html

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

      1 Reply Last reply
      0
      • J Junhi

        @jsulm Thank you jsulm, but that is not my want.

        1. If I click [View Detail], anchorClicked event may occur.

        2. The event send signal to Mainwindow.show_monitor_temp

          self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp)

        3. At the Mainwindow.show_monitor_temp(), I want to know how to retrieve URL information, sent by anchorClicked signal. <-- That is my question.

        JonBJ Online
        JonBJ Online
        JonB
        wrote on last edited by
        #7

        @Junhi
        Not sure if you're asking about what @jsulm has pointed you to, or if you are asking how you know what the anchor clicked was, in which case https://doc.qt.io/qt-5/qtextbrowser.html#anchorClicked shows void QTextBrowser::anchorClicked(const QUrl &link) signal passes the QUrl link to your slot?

        J 1 Reply Last reply
        0
        • JonBJ JonB

          @Junhi
          Not sure if you're asking about what @jsulm has pointed you to, or if you are asking how you know what the anchor clicked was, in which case https://doc.qt.io/qt-5/qtextbrowser.html#anchorClicked shows void QTextBrowser::anchorClicked(const QUrl &link) signal passes the QUrl link to your slot?

          J Offline
          J Offline
          Junhi
          wrote on last edited by
          #8

          @JonB Yes, I think QUrl information passes to my slot(MainWindow.show_monitor_temp).
          self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp)
          But it seems not work properly.

          JonBJ 1 Reply Last reply
          0
          • J Junhi

            @JonB Yes, I think QUrl information passes to my slot(MainWindow.show_monitor_temp).
            self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp)
            But it seems not work properly.

            JonBJ Online
            JonBJ Online
            JonB
            wrote on last edited by JonB
            #9

            @Junhi said in Python3.7 How to get URL as string:

            But it seems not work properly.

            What does that mean, how would you like us to help on that?? Do you think it would help us if you showed us your slot code?

            Meanwhile, you don't tell us whether you are using PySide2 or PyQt5. Which one is that self.dis_message.anchorClicked['QUrl'].connect() syntax for, with the ['QUrl']? I have not (so far) needed to use that syntax in either one.

            J 1 Reply Last reply
            2
            • JonBJ JonB

              @Junhi said in Python3.7 How to get URL as string:

              But it seems not work properly.

              What does that mean, how would you like us to help on that?? Do you think it would help us if you showed us your slot code?

              Meanwhile, you don't tell us whether you are using PySide2 or PyQt5. Which one is that self.dis_message.anchorClicked['QUrl'].connect() syntax for, with the ['QUrl']? I have not (so far) needed to use that syntax in either one.

              J Offline
              J Offline
              Junhi
              wrote on last edited by
              #10

              @JonB Sorry, It is my first time of python programming. There may be many mistake ..
              I use PyQt5.

              This is part of my code.

              ===== main.py ======
              import sys
              import os
              import sqlite3
              import time
              from PyQt5.QtCore import pyqtSlot, QDate,QUrl
              from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QCalendarWidget, QDialog, QCheckBox
              from PyQt5 import QtCore, QtGui, QtWidgets
              from monitor import Ui_MainWindow

              class Form(QMainWindow, Ui_MainWindow):
              def init(self, parent=None):
              super().init()
              def show_monitor_temp(self):

                  print("show_monitor_temp")
                  print(QUrl().toString())
              

              ==== monitor.py (designed by QT Designer 5.13) ====
              from PyQt5 import QtCore, QtGui, QtWidgets

              class Ui_MainWindow(object):
              def setupUi(self, MainWindow):
              self.dis_message = QtWidgets.QTextBrowser(self.splitter)
              self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp)

              JonBJ 1 Reply Last reply
              0
              • J Junhi

                @JonB Sorry, It is my first time of python programming. There may be many mistake ..
                I use PyQt5.

                This is part of my code.

                ===== main.py ======
                import sys
                import os
                import sqlite3
                import time
                from PyQt5.QtCore import pyqtSlot, QDate,QUrl
                from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QCalendarWidget, QDialog, QCheckBox
                from PyQt5 import QtCore, QtGui, QtWidgets
                from monitor import Ui_MainWindow

                class Form(QMainWindow, Ui_MainWindow):
                def init(self, parent=None):
                super().init()
                def show_monitor_temp(self):

                    print("show_monitor_temp")
                    print(QUrl().toString())
                

                ==== monitor.py (designed by QT Designer 5.13) ====
                from PyQt5 import QtCore, QtGui, QtWidgets

                class Ui_MainWindow(object):
                def setupUi(self, MainWindow):
                self.dis_message = QtWidgets.QTextBrowser(self.splitter)
                self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp)

                JonBJ Online
                JonBJ Online
                JonB
                wrote on last edited by JonB
                #11

                @Junhi
                [I think you have written which code is in which file the wrong way round.]

                Your connection should be:

                self.dis_message.anchorClicked.connect(MainWindow.show_monitor_temp)
                
                • I don't think there are any other overloads of anchorClicked(), or at least we are using the default one, so we don't need the anchorClicked['QUrl']. You can put it back in if you prefer/I am mistaken.

                Your slot should be:

                @pyqtslot(QUrl)   # you can probably omit this, for now
                                  # or, you might need @pyqtslot('QUrl')
                def show_monitor_temp(self, url):
                    print("show_monitor_temp")
                    print(url.toString())  # maybe just: print(str(url))
                
                • See how the slot gets the QUrl as a parameter, because the signal passes it.

                Reference for PyQt5 signals/slots is https://www.riverbankcomputing.com/static/Docs/PyQt5/signals_slots.html.

                Above is quite untested. Give it a go and see how you fare. The important thing is to grasp how the slot receives the QUrl clicked on from the signal as a parameter, which is what you were missing. This is the only bit you have to change, other than that your code is fine.

                1 Reply Last reply
                1
                • J Offline
                  J Offline
                  Junhi
                  wrote on last edited by
                  #12

                  @Denni-0 @JonB

                  I solved the problem by changing

                  self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp) ->
                  self.dis_message.anchorClicked.connect(MainWindow.show_monitor_temp)

                  @pyqtslot() -> @pyqtslot('QUrl')

                  Thank you for your kind help.

                  JonBJ 1 Reply Last reply
                  0
                  • J Junhi

                    @Denni-0 @JonB

                    I solved the problem by changing

                    self.dis_message.anchorClicked['QUrl'].connect(MainWindow.show_monitor_temp) ->
                    self.dis_message.anchorClicked.connect(MainWindow.show_monitor_temp)

                    @pyqtslot() -> @pyqtslot('QUrl')

                    Thank you for your kind help.

                    JonBJ Online
                    JonBJ Online
                    JonB
                    wrote on last edited by JonB
                    #13

                    @Junhi
                    And by adding url as formal parameter to your def show_monitor_temp(self, url):! Now you know how slots receive any arguments from signals.

                    J 1 Reply Last reply
                    0
                    • JonBJ JonB

                      @Junhi
                      And by adding url as formal parameter to your def show_monitor_temp(self, url):! Now you know how slots receive any arguments from signals.

                      J Offline
                      J Offline
                      Junhi
                      wrote on last edited by
                      #14

                      @JonB Yes, right

                      adding url as formal parameter to def show_monitor_temp(self, url):

                      :-)

                      1 Reply Last reply
                      1

                      • Login

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