小编Emp*_*ale的帖子

FramelessWindowHint 和 WindowStaysOnTopHint 不起作用

我希望我的 PyQt5 程序是无框架的并且始终位于屏幕顶部。当我使用 WindowStayOnTopHint 时,它工作正常,但是当我将它与 FramelessWindowHint 一起使用时,它会变成无框架,但不会停留在屏幕顶部。经过一些研究后,我发现了这个,它说尝试使用 setMask,但我无法让它工作。

这是我的代码:

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont
from PyQt5.QtWidgets import QApplication, QLabel


class Invisible(QLabel):
 def __init__(self, **kwargs):
    super().__init__(**kwargs)
    self.__press_pos = None
    self.initUI()

 def initUI(self):
    self.setWindowFlags(Qt.WindowStaysOnTopHint)
    self.setMask() #This is where I use the setMask function, but it raises an error

    self.setAttribute(Qt.WA_TranslucentBackground)
    self.setText("Drag me...")
    self.setFont(QFont("Times", 50, QFont.Bold))
    self.adjustSize()  
    self.move(QApplication.instance().desktop().screen().rect().center()
              - self.rect().center())

 def mousePressEvent(self, event):
    if event.button() == Qt.LeftButton:
        self.__press_pos = event.pos()  

 def mouseReleaseEvent(self, event):
    if event.button() == Qt.LeftButton: …
Run Code Online (Sandbox Code Playgroud)

python pyqt python-3.x pyqt5

5
推荐指数
1
解决办法
1万
查看次数

将 QWebEngine 连接到代理

我创建了自己的代理来拦截 127.0.0.1:6666 上的数据包,我想要它以便从 QWebEngine 发送的所有数据包都发送到代理。我查了一下,发现一些网站说要使用 QNetworkProxy,但它从未显示如何使其正常工作。

这是我在网上找到的一个普通 QWebEngine 程序的代码示例(它工作正常)

from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
  def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(800, 600)
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
    self.gridLayout.setObjectName("gridLayout")
    self.webView = QtWebEngineWidgets.QWebEngineView(self.centralwidget)
    self.webView.setUrl(QtCore.QUrl("http://www.google.com/"))
    self.webView.setObjectName("webView")
    self.gridLayout.addWidget(self.webView, 0, 0, 1, 1)
    MainWindow.setCentralWidget(self.centralwidget)
    self.statusbar = QtWidgets.QStatusBar(MainWindow)
    self.statusbar.setObjectName("statusbar")
    MainWindow.setStatusBar(self.statusbar)
    self.retranslateUi(MainWindow)
    QtCore.QMetaObject.connectSlotsByName(MainWindow)
   def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

from PyQt5 import QtWebEngineWidgets

if __name__ == "__main__":
   import sys
   app = QtWidgets.QApplication(sys.argv)
   MainWindow = QtWidgets.QMainWindow()
   ui = Ui_MainWindow()
   ui.setupUi(MainWindow)
   MainWindow.show()
   sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

现在如何设置代理设置或其他任何内容以转到 …

python proxy pyqt pyqt5 qwebengineview

3
推荐指数
1
解决办法
1461
查看次数

标签 统计

pyqt ×2

pyqt5 ×2

python ×2

proxy ×1

python-3.x ×1

qwebengineview ×1