首页 > 解决方案 > 如何在高屏幕的左上角和右上半部分设置框架?

问题描述

我想像这样在高屏幕的左上角和右上半部分设置框架。

在此处输入图像描述

我尝试在此代码中进行设置。

web1 = QWebEngineView()
x=web1.width()*0.5
y=web1.height()*0.5
web1.setFixedSize(x,y)
web1.setGeometry(0,0, x, y)
web1.setWindowFlag(Qt.FramelessWindowHint)
web1.load(QUrl("https://www.google.com"))
web1.show()

web2 = QWebEngineView()
x=web2.width()
y=web2.height()
web2.setFixedSize(x,y)
web2.setGeometry(0,0, x, y)
web2.setWindowFlag(Qt.FramelessWindowHint)
web2.load(QUrl("https://www.facebook.com"))
web2.show()

它仍然显示在左上角。如何解决?

标签: pythonpyqtpyqt5qtwebengine

解决方案


如果您想相对于另一个(屏幕)放置一个元素(QWebEngineView),那么您必须将两个几何图形作为参考,但您只使用第一个,这就是问题的原因。

解决方案是:

from PyQt5 import QtCore, QtGui, QtWidgets, QtWebEngineWidgets


if __name__ == "__main__":
    import sys

    app = QtWidgets.QApplication(sys.argv)

    rect_screen = app.primaryScreen().availableGeometry()

    web1 = QtWebEngineWidgets.QWebEngineView()
    web1.setFixedSize(0.5 * rect_screen.size())
    web1.setWindowFlag(QtCore.Qt.FramelessWindowHint)
    web1.setGeometry(
        QtWidgets.QStyle.alignedRect(
            QtCore.Qt.LeftToRight,
            QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop,
            web1.size(),
            rect_screen,
        )
    )
    web1.load(QtCore.QUrl("https://www.google.com"))
    web1.show()

    web2 = QtWebEngineWidgets.QWebEngineView()
    web2.setFixedSize(0.5 * rect_screen.size())
    web2.setWindowFlag(QtCore.Qt.FramelessWindowHint)
    web2.setGeometry(
        QtWidgets.QStyle.alignedRect(
            QtCore.Qt.LeftToRight,
            QtCore.Qt.AlignRight | QtCore.Qt.AlignTop,
            web2.size(),
            rect_screen,
        )
    )
    web2.load(QtCore.QUrl("https://www.facebook.com"))
    web2.show()

    sys.exit(app.exec_())

推荐阅读