pyqt5如何实现chrome一样的搜索框

发布于 2022-09-11 21:43:45 字数 1372 浏览 14 评论 0

import sys
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl,Qt
from PyQt5.QtWidgets import QWidget, QLabel, QApplication,QMainWindow,QVBoxLayout,QHBoxLayout,QLineEdit,QPushButton,QDialog

class MyPage(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("主窗口")
        self.showMaximized()
        self.browser = QWebEngineView()
        self.browser.load(QUrl("http://www.baidu.com"))
        # 如果这里setCentralWidget且子窗口作为父窗口的子组件显示不出来
        # 如果不作为子组件,则是两个窗口
        self.setCentralWidget(self.browser)

    def keyPressEvent(self, event):
        if(QApplication.keyboardModifiers() == Qt.ControlModifier and event.key() == Qt.Key_F):
            # self.searchBox = SearchBox(self) # 指定为子组件
            self.searchBox = SearchBox()
            self.searchBox.show()

class SearchBox(QLineEdit): # 我现在通过一个新窗口的方式去做,感觉不好
     def __init__(self):
        super().__init__()
        self.setWindowTitle("子窗口")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyPage()
    ex.show()
    sys.exit(app.exec_())

不需要样式,要怎么才能做成这样,在父窗口上的一个组件

clipboard.png

现在实际上是2个窗口

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨光如昨 2022-09-18 21:43:45

您好,您可以使用透明窗口 framelessbox组件,只要有图片即可。
另外,您必须找到对应位置

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文