def openContextMenu(self, point): contextMenu= QTextBrowser(self).createStandardContextMenu() if namespace.no_email_link and namespace.no_url_link: contextMenu.actions()[1].setVisible(False) elif len(self.selectedText()): contextMenu.actions()[0].setEnabled(True) contextMenu.actions()[0].triggered.connect(partial(app.clipboard().setText, self.selectedText().replace("−", "-"))) elif self.anchorAt(point): contextMenu.actions()[1].setEnabled(True) contextMenu.actions()[1].triggered.connect(partial(app.clipboard().setText, self.anchorAt(point))) contextMenu.addSeparator() contextMenu.addAction(QAction(ManPagesGUI.randomPage, self, triggered= partial(self.openPage, None, 1))) contextMenu.exec_(self.mapToGlobal(point))
def install(): def done(): show_label.setText('<p>安装完成</p>') exit_button.setDisabled(False) message.append('安装完成。') dialog = QDialog() dialog.resize(600, 600) dialog.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint) dialog.setWindowTitle('TkPy3安装') layout = QVBoxLayout() title_label = QLabel() show_label = QLabel() message = QTextBrowser() exit_button = QPushButton() load_processbar = LoadWidget() title_label.setText('<h1>TkPy3安装</h1>') exit_button.setText('退出') exit_button.setDisabled(True) layout.addWidget(title_label, 0) layout.addWidget(show_label) layout.addWidget(message) layout.addWidget(exit_button) message.addAction(QAction(load_processbar)) dialog.setLayout(layout) install_packages = [] for i in range(self.view_list.count()): install_packages.append(self.view_list.item(i).text()) self.close() self.install_process.start() message.append('开始安装。') exit_button.clicked.connect(dialog.close) self.install_process.falsed.connect( lambda p: message.append(f'Package {p} 安装失败。')) self.install_process.ok.connect( lambda p: message.append(f'Package {p} 安装成功。')) self.install_process.package_name.connect(lambda text: ( show_label.setText(f'<h3>正在安装中... ...</h3><p>正在安装: {text}</p>' ), message.append(f'安装 {text}'))) self.install_process.done.connect(done) dialog.exec_()