0

我准备了这个例子:

import sys
from PyQt5.QtWidgets    import (QApplication, QMainWindow)
from PyQt5              import uic
from PyQt5.QAxContainer import QAxWidget



class MainForm(QMainWindow):
    def __init__(self, parent=None):
        super(MainForm, self).__init__(parent)
    
        uic.loadUi(r"scroll_bar_test.ui", self)

        self.axWidget = QAxWidget('Microsoft Web Browser')

         path = 'C:/Users/Egon/Documents/FotoViewer/scroll_bar_test.docx'
    
         self.axWidget.setControl(path)
         self.setCentralWidget(self.axWidget)
    
def main():
    app = QApplication(sys.argv)
    form = MainForm()
    form.show()
    app.exec_()

if __name__ == '__main__':
    main()

如果您启动程序,它将显示一个 word 文档,但左侧是隐藏的: 在此处输入图像描述

如果我使用右侧的箭头键,我会看到整个文档: 在此处输入图像描述

从那里开始,它居中很好。我的问题是如何在开头居中显示 word 文档?

在此处输入图像描述 使用 QTimer.singleShot(2000, self.axWidget.updateGeometry) 后

同时我发现这些行以文档为中心:

        self.setCentralWidget(self.axWidget)
        QTimer.singleShot(5, lambda: self.axWidget.setControl(path))
        QTimer.singleShot(5, self.axWidget.updateGeometry)

Qtimer 的时间在两个镜头中必须相同。两者都必须用计时器完成,否则它不起作用。不幸的是,用户首先看到的是一个非常窄的文档,例如最后一张照片,然后是一个闪光灯,然后是正确呈现的文档。另外这不会发生在其他计算机上。我和其他 3 人一起尝试过,他们没有这个问题。

4

0 回答 0