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()
添加回答
舉報