亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PyQT5 信號連接方法未實際綁定方法

PyQT5 信號連接方法未實際綁定方法

jeck貓 2022-09-13 19:52:40
我正在創建一個python應用程序。鏈接到 ui.py 和 app.py: https://gist.github.com/tbhaxor/f68387d49bc59b2bdd025512c17a2534app.pyfrom PyQt5 import QtWidgets, QtCorefrom ui import Ui_MainWindowfrom selenium.webdriver.chrome.webdriver import WebDriverfrom selenium.webdriver.chrome.options import Optionsimport osimport tracebackimport pickle as pklfrom pathlib import Pathfrom typing import List, Dict, Unionclass Application(Ui_MainWindow):    def __init__(self,                 window: QtWidgets.QMainWindow,                 driver: WebDriver = None):        self.parent = window        self.driver = driver        self.setupUi(window)        self.retranslateUi(window)        qtRectangle = window.frameGeometry()        centerPoint = QtWidgets.QDesktopWidget().availableGeometry().center()        qtRectangle.moveCenter(centerPoint)        window.move(qtRectangle.topLeft())        self.__makeHandlers()        self.file = os.path.join(Path.home(), "_linkedin.db")        self.db: Dict[str, str] = {            "api": "",            "email": "",            "password": "",            "sent": [],            "delay": 10,            "template": ""        }        self.search_limit.valueChanged.connect(print)        pass    def __makeHandlers(self):        self.search_limit.valueChanged.connect(print)        pass    def handle_fetch(self):        pass    def __login(self):        driver.get("https://www.linkedin.com/login")        # /html/body/div[1]/main/div/form/div[1]/input        # /html/body/div[1]/main/div/form/div[2]/input        # /html/body/div[1]/main/div/form/div[4]/button        pass    passif __name__ == "__main__":    import sys    try:        opts = Options()        opts.headless = os.environ.get("PYDBG", "0") != "1"        driver: WebDriver = WebDriver(options=opts)        app = QtWidgets.QApplication(sys.argv)
查看完整描述

1 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

問題很簡單:通過執行 setupUi 方法,您正在創建內部小部件,如果第二次運行 setupUi 會發生什么情況?好吧,舊的小部件被刪除并創建了新的小部件。在你的情況下,你首先在應用程序的構造函數中調用了 setupUi,并且在 之后再次調用它,在第一次調用時,你建立了連接,然后將其刪除,因此連接已斷開。解決方案:只需調用安裝程序Ui一次。也沒有必要調用重譯Ui,因為安裝Ui已經這樣做了。ui = Application(MainWindow)


class Application(Ui_MainWindow):

    def __init__(self,

                 window: QtWidgets.QMainWindow,

                 driver: WebDriver = None):

        self.parent = window

        self.driver = driver

        self.setupUi(window)

        # self.retranslateUi(window) # remove this line


        qtRectangle = window.frameGeometry()

        # ...



if __name__ == "__main__":

    import sys


    try:

        opts = Options()

        opts.headless = os.environ.get("PYDBG", "0") != "1"

        driver: WebDriver = WebDriver(options=opts)

        app = QtWidgets.QApplication(sys.argv)


        MainWindow = QtWidgets.QMainWindow()

        ui = Application(MainWindow)

        # ui.setupUi(MainWindow) # remove this line

        MainWindow.show()

        app.exec_()

    except Exception:

        print(traceback.format_exc())

    finally:

        driver.quit()


查看完整回答
反對 回復 2022-09-13
  • 1 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號