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

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

阅读 5k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进