Всем привет!
Я новичок в пайтон, пишу программу, столкнулся с проблемой.
При использовании веб браузера, если свернуть и развернуть программу появляется ранее скрытая строка заголовка.
Ее видно если окно сделать прозрачным или края закруглить, а это именно мой случай)

пробовал разные подходы, мучал нейросети, ничего не выходит
если кликнуть и отпустить мышку на строку ввода то заголовок пропадает
но если програмно это событие вызвать то нет
Постарался привести скрипт к минимальному виду где проблему можно наблюдать.
Версия пайтона 3.13
Винда 10, 11
Необходимые библиотеки
Я новичок в пайтон, пишу программу, столкнулся с проблемой.
При использовании веб браузера, если свернуть и развернуть программу появляется ранее скрытая строка заголовка.
Ее видно если окно сделать прозрачным или края закруглить, а это именно мой случай)

пробовал разные подходы, мучал нейросети, ничего не выходит
если кликнуть и отпустить мышку на строку ввода то заголовок пропадает
но если програмно это событие вызвать то нет
Постарался привести скрипт к минимальному виду где проблему можно наблюдать.
Версия пайтона 3.13
Винда 10, 11
Необходимые библиотеки
pip install PyQt6 PyQt6-WebEngine
Python:
import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QPushButton, QLineEdit
from PyQt6.QtCore import Qt, QEvent, QPointF
from PyQt6.QtGui import QMouseEvent, QPainter, QColor, QPen, QBrush
from PyQt6.QtWebEngineWidgets import QWebEngineView
class WebBrowser(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("app")
self.setWindowFlags(Qt.WindowType.FramelessWindowHint)
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
self.setMinimumSize(400, 300)
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
self.browser = QWebEngineView()
self.browser.setFixedHeight(400)
self.url_bar = QLineEdit()
self.url_bar.setPlaceholderText("Enter URL here...")
self.minimize_btn = QPushButton("🗕")
self.minimize_btn.setStyleSheet("background-color: rgba(0, 100, 0, 255); margin: 10px 50px;")
self.minimize_btn.clicked.connect(self.showMinimized)
self.layout = QVBoxLayout()
self.layout.addWidget(self.url_bar)
self.layout.addWidget(self.minimize_btn)
self.layout.addWidget(self.browser)
self.central_widget.setLayout(self.layout)
self.old_pos = None
# фон и рамка
def paintEvent(self, event):
painter = QPainter(self)
painter.setRenderHint(QPainter.RenderHint.Antialiasing)
painter.setBrush(QColor(100, 100, 100, 200))
painter.setPen(Qt.PenStyle.NoPen)
painter.drawRoundedRect(self.rect().adjusted(9, 9, -9, -9), 15, 15)
painter.setPen(QPen(QColor(49, 113, 49, 150), 10))
painter.setBrush(Qt.BrushStyle.NoBrush)
painter.drawRoundedRect(self.rect().adjusted(4, 4, -4, -4), 20, 20)
# для перетаскивания
def mousePressEvent(self, event):
if event.button() == Qt.MouseButton.LeftButton and event.position().y() < 100:
self.old_pos = event.globalPosition().toPoint()
def mouseMoveEvent(self, event):
if self.old_pos is not None:
delta = event.globalPosition().toPoint() - self.old_pos
self.move(self.x() + delta.x(), self.y() + delta.y())
self.old_pos = event.globalPosition().toPoint()
def mouseReleaseEvent(self, event):
self.old_pos = None
if __name__ == '__main__':
app = QApplication(sys.argv)
window = WebBrowser()
window.show()
sys.exit(app.exec())