Closed WEIFENG2333 closed 2 months ago
问题描述: 在使用 qfluentwidgets 中的 ComboBox 控件时,展开下拉菜单后,再次点击相同的地方会导致应用程序卡死无响应。
qfluentwidgets
ComboBox
版本信息:
预期结果: 点击 ComboBox 后应展开下拉菜单,第二次点击时应关闭下拉菜单,程序应保持正常响应。 实际结果为ComboBox 展开后,再次点击相同位置,应用程序卡住,无响应。
修复建议: 通过查看原方法发现好像是_onDropMenuClosed是出现问题,虽然不明白为什么要加一个这个判断, 但是经过修改直接self.dropMenu = None,问题得到解决。(注释部分为原有的代码)
def _onDropMenuClosed(self): self.dropMenu = None # if sys.platform != "win32": # self.dropMenu = None # else: # pos = self.mapFromGlobal(QCursor.pos()) # if not self.rect().contains(pos): # self.dropMenu = None
请尽快确认并修复此问题,谢谢!
复现步骤:
import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout from qfluentwidgets import ComboBox from PyQt5.QtCore import Qt class ComboBoxExample(QWidget): def __init__(self): super().__init__() self.init_ui() def init_ui(self): layout = QVBoxLayout(self) # 创建一个 ComboBox 并添加选项 self.combo_box = ComboBox(self) self.combo_box.addItems(['1', '2', '3', '4']) # 将 ComboBox 添加到布局中 layout.addWidget(self.combo_box) # 设置窗口的基本属性 self.setWindowTitle('ComboBox 示例') self.resize(400, 300) QApplication.setAttribute(Qt.AA_EnableHighDpiScaling) QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps) # 启动应用程序 app = QApplication(sys.argv) # 创建并显示窗口 window = ComboBoxExample() window.show() # 运行应用程序事件循环 sys.exit(app.exec_())
可能是我上个版本修内存泄露导致的
1.6.5 已修复此问题
What happened?
问题描述: 在使用
qfluentwidgets
中的ComboBox
控件时,展开下拉菜单后,再次点击相同的地方会导致应用程序卡死无响应。版本信息:
预期结果: 点击
ComboBox
后应展开下拉菜单,第二次点击时应关闭下拉菜单,程序应保持正常响应。 实际结果为ComboBox
展开后,再次点击相同位置,应用程序卡住,无响应。修复建议: 通过查看原方法发现好像是_onDropMenuClosed是出现问题,虽然不明白为什么要加一个这个判断, 但是经过修改直接self.dropMenu = None,问题得到解决。(注释部分为原有的代码)
请尽快确认并修复此问题,谢谢!
Minimum code
复现步骤:
ComboBox
示例(详细代码见下方)。ComboBox
展开菜单。