Python 单击表格单元格时,如何在新窗口中打开QWebEngineView?
当单击QTableWidget单元格时,我试图在QWebEngineView窗口中打开Url 打开QWebEngineView的代码从“main”开始工作,但从QWidget的子类调用时,它不知何故不起作用。一个窗口在一瞬间出现,然后消失。控制台上未显示任何错误。任何建议都将不胜感激Python 单击表格单元格时,如何在新窗口中打开QWebEngineView?,python,pyqt5,qtablewidget,qwebengineview,Python,Pyqt5,Qtablewidget,Qwebengineview,当单击QTableWidget单元格时,我试图在QWebEngineView窗口中打开Url 打开QWebEngineView的代码从“main”开始工作,但从QWidget的子类调用时,它不知何故不起作用。一个窗口在一瞬间出现,然后消失。控制台上未显示任何错误。任何建议都将不胜感激 class App(QWidget): def __init__(self): super().__init__() self.layout = QVBoxLayout()
class App(QWidget):
def __init__(self):
super().__init__()
self.layout = QVBoxLayout()
self.Aplayers = [[14, 134, 13], [11, 144, 13]]
self.tableWidget = QTableWidget(len(self.Aplayers), 3)
self.setWindowTitle('Game Stats')
self.setGeometry(0, 0, 600, 400)
self.layout.addWidget(self.tableWidget)
self.setLayout(self.layout)
self.setData(self.Aplayers, self.tableWidget)
self.tableWidget.itemClicked.connect(self.updateUiCellClick)
self.show()
def setData(self, players, tbl: QTableWidget):
index = -1
for row in players:
index += 1
tbl.setItem(index, 0, QTableWidgetItem(str(row[1])))
tbl.setItem(index, 1, QTableWidgetItem(str(row[2])))
tbl.setItem(index, 2, QTableWidgetItem(str(row[0])))
def updateUiCellClick(self, row):
web = QWebEngineView()
web.load(QUrl('https://www.google.com'))
web.show()
if __name__ == '__main__':
app = None
app = QApplication(sys.argv)
mainWidget = App()
sys.exit(app.exec_())
QWebEngineView仅在该函数的本地范围内可用,因此它在函数返回后立即消失。如果改称它为self.web,它将工作,因为应用程序将保留指向web引擎视图的指针
def updateUiCellClick(self, row):
self.web = QWebEngineView()
self.web.load(QUrl('https://www.google.com'))
self.web.show()
在构造函数中创建self.webs=[],并在web.show之后添加self.webs.appendweb