pyside输入法无法二次弹出

from EXPANDABLE_MENU import *
from CHROMELESS_WINDOW import *
from MAPPING import *
from definition_parameter import DP
from signal_intermediary import signal_intermediary

def search_ui(self, x, y, width, height, js_def,
             font_size: int = 20,
             font_color: str = '#333333',
             border: int = 1,                   # 边框宽度
             border_radius: int = 3,            # 边框圆角大小
             padding: int = 2,                  # 文字与边框的距离
             background_color: str = 'white',   # 输入框背景色
             border_color: str = '#2196F3',     # 边框颜色
             ):
    # 1. 可见的输入框(自定义位置和大小)
    self.edit = QLineEdit(self)
    self.edit.setGeometry(x, y, width, height)
    self.edit.setPlaceholderText("请在此输入内容...")
    self.edit.setStyleSheet(f"""
            QLineEdit {{                          /* 设置 QLineEdit 的基本样式 */
                font-size: {font_size}px;                 /* 字体大小:16像素 */
                color: {font_color};                 /* 字体颜色:深灰色(HEX #333333) */
                border: {border}px solid #aaa;          /* 边框:1像素宽,浅灰色实线 */
                border-radius: {border_radius}px;              /* 边框圆角:5像素 */
                padding: {padding}px;                   /* 内边距:5像素(文字与边框的距离) */
                background-color: {background_color};        /* 背景颜色:白色 */
            }}
            QLineEdit:focus {{                   /* 当 QLineEdit 获得焦点时的样式 */
                border: 2px solid {border_color};      /* 边框:2像素宽,蓝色实线(HEX #2196F3) */
            }}
            QLineEdit:hover {{                   /* 鼠标悬停在 QLineEdit 上时的样式 */
                border: 1px solid #888888;      /* 边框:1像素宽,灰色实线(HEX #888888) */
            }}
            QLineEdit:disabled {{                /* 当 QLineEdit 被禁用时的样式 */
                color: #aaaaaa;                 /* 字体颜色:浅灰色(禁用状态文字变灰) */
                background-color: #f0f0f0;     /* 背景颜色:浅灰色(禁用状态背景变灰) */
            }}
            QLineEdit::placeholder {{            /* 设置占位文本(placeholder)的样式 */
                color: #cccccc;                 /* 占位文本颜色:更浅的灰色 */
                font-style: italic;             /* 占位文本字体样式:斜体 */
            }}
        """)

    # 3. 连接信号
    self.edit.textChanged.connect(js_def)

class B(ExpandableMenu):
    ffff = Signal(str)
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setGeometry(100, 100, 150, 150)
        self.parameters_settings(
                                window_x=(self.screenWidth - self.width()) // 2,
                                window_y=(self.screenHeight - self.height()) // 2,
                                window_width=int(self.screenWidth * 0.2),
                                text_number=10,  # 要显示文本数量
                                text_sum=10,  # 文本的总长度
                                text_size=DP.font_size,  # 字体大小
                                 text_window_start_y=self.frame_y * 2,  # 用于显示文本区域的起始x位置 非绘制文字的空白区域总高度
                                move_create_color='#CEA5DA',  # 跟随鼠标矩形的颜色
                                scrollbar_color='#444343',  # 滚动条颜色
                                scrollbar_area_color='#FAF8F8',  # 滚动条区域的颜色
                                 backcolor='#5D5C5C',  # 背景颜色
                                min_button_tf=False,  # 最小化
                                max_button_tf=False,  # 最大化
                                button_close_tf=True  # 关闭
                                )
        search_ui(self, 0, self.frame_y, self.width(), self.frame_y
                  , self.new_search)
        QApplication.instance().installEventFilter(self)
    def new_search(self, text):
        self.ffff.emit('弹出窗口')
        print('aaaaaaaaaaa', text)

    def closeEvent(self, event) -> None:
        super().closeEvent(event)
        self.ffff.emit('重新聚焦')

class A(ChromelessWindow):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool)  # 设置窗口在任务栏中不可见
        self.setGeometry(100, 100, 300, 300)
        self.BB = B(self)
        self.BB.ffff.connect(self.new_s)

    def new_s(self, text):
        if text == '弹出窗口':
            self.BB.setWindowFlags(Qt.FramelessWindowHint | Qt.Tool)
            self.BB.show()
        # else:
        #     self.BB.setFocusPolicy(Qt.StrongFocus)



if __name__ == '__main__':
    app = QApplication(sys.argv)
    a = A()
    a.show()
    sys.exit(app.exec())

以上代码为pyside6编写
ChromelessWindow和ExpandableMenu为继承自QWidge的无边框窗口且任务栏不可见
程序第一次运行时窗口B也没有显示出来,但是我点击键盘立刻就能跳出输入法new_s接收到信号后就能弹出B
窗口,但是当我关闭B窗口之后在点击键盘就不会弹出输入法了,并且new_s也收不到信号B窗口也不会弹出,所有AI给的方法都试过了
全部无效

讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!