pyside6自定义下拉搜索框

自己做了个下拉搜索框满足自己需求的,给大家参考参考

点击搜索窗口外自动隐藏

from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *
from PySide6.QtPrintSupport import*
import sys

class Searchtable_ui(QWidget):
    def __init__(self, parent=None):
        super(Searchtable_ui, self).__init__(parent)
        self.setWindowFlags(Qt.Dialog|Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint)
        #设置close时释放内存
        # self.setAttribute(Qt.WA_DeleteOnClose)
        self.resize(500,300)
        verticalLayout = QVBoxLayout()
        verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.lineedit = QLineEdit()
        self.lineedit.setClearButtonEnabled(True)
        verticalLayout.addWidget(self.lineedit)
        self.searchtable_tablewidget = QTableWidget()
        self.searchtable_tablewidget.setColumnCount(5)
        self.searchtable_tablewidget.setRowCount(5)
        self.searchtable_tablewidget.setSelectionMode(QAbstractItemView.SingleSelection)
        self.searchtable_tablewidget.setEditTriggers(QTableView.NoEditTriggers)
        self.searchtable_tablewidget.setSelectionBehavior(QAbstractItemView.SelectRows)
        verticalLayout.addWidget(self.searchtable_tablewidget)
        self.setLayout(verticalLayout)

    def event(self, event):
        #重写信号使点击窗口外隐藏本窗口
        if event.type() == QEvent.ActivationChange:
            if QApplication.activeWindow() != self:
                self.hide()
        return QWidget.event(self, event)

class ui(QWidget):
    def __init__(self):
        super(ui,self).__init__()
        self.setFixedSize(300,500)

        self.searchtable = Searchtable_ui()
        layout = QHBoxLayout()
        self.linedit = QLineEdit()
        layout.addWidget(self.linedit)
        pushButton = QPushButton()
        layout.addWidget(pushButton)
        self.setLayout(layout)
        pushButton.clicked.connect(self.button_click)


    def button_click(self):
        pos = self.linedit.mapToGlobal(QPoint(0,0))
        pos.setY(pos.y()+30)
        self.searchtable.move(pos)
        self.searchtable.show()
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = ui()
    window.show()
    sys.exit(app.exec())

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值