MCPcopy Create free account
hub / github.com/PyQt5/PyQt / AxWidget

Class AxWidget

QAxWidget/ViewOffice.py:18–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

16
17
18class AxWidget(QWidget):
19
20 def __init__(self, *args, **kwargs):
21 super(AxWidget, self).__init__(*args, **kwargs)
22 self.resize(800, 600)
23 layout = QVBoxLayout(self)
24 self.axWidget = QAxWidget(self)
25 layout.addWidget(self.axWidget)
26 layout.addWidget(QPushButton('选择excel,word,pdf文件',
27 self, clicked=self.onOpenFile))
28
29 def onOpenFile(self):
30 path, _ = QFileDialog.getOpenFileName(
31 self, '请选择文件', '', 'excel(*.xlsx *.xls);;word(*.docx *.doc);;pdf(*.pdf)')
32 if not path:
33 return
34 if _.find('*.doc'):
35 return self.openOffice(path, 'Word.Application')
36 if _.find('*.xls'):
37 return self.openOffice(path, 'Excel.Application')
38 if _.find('*.pdf'):
39 return self.openPdf(path)
40
41 def openOffice(self, path, app):
42 self.axWidget.clear()
43 if not self.axWidget.setControl(app):
44 return QMessageBox.critical(self, '错误', '没有安装 %s' % app)
45 self.axWidget.dynamicCall(
46 'SetVisible (bool Visible)', 'false') # 不显示窗体
47 self.axWidget.setProperty('DisplayAlerts', False)
48 self.axWidget.setControl(path)
49
50 def openPdf(self, path):
51 self.axWidget.clear()
52 if not self.axWidget.setControl('Adobe PDF Reader'):
53 return QMessageBox.critical(self, '错误', '没有安装 Adobe PDF Reader')
54 self.axWidget.dynamicCall('LoadFile(const QString&)', path)
55
56 def closeEvent(self, event):
57 self.axWidget.close()
58 self.axWidget.clear()
59 self.layout().removeWidget(self.axWidget)
60 del self.axWidget
61 super(AxWidget, self).closeEvent(event)
62
63
64if __name__ == '__main__':

Callers 1

ViewOffice.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected