1 回答

TA贡献1982条经验 获得超2个赞
似乎 Qt 试图尊重操作系统在其文件管理器中打开文件和文件夹的方式,即使在使用本机对话框时也是如此。这取决于SH_ItemView_ActivateItemOnSingleClick
样式提示,绕过它的唯一方法是应用代理样式。
虽然您可以在其内部将样式应用于 QFileDialog 的视图__init__
(只要您使用本机对话框),但您使用的是静态方法,因此您只能通过将样式设置为整个 QApplication 来实现。
请注意,与样式表、调色板和字体不同,样式不会传播到子部件,它们始终使用 QApplication 样式(或为它们手动设置的样式)。
class SingleClickWorkaroundProxy(QProxyStyle):
def styleHint(self, hint, option, widget, data):
if hint == self.SH_ItemView_ActivateItemOnSingleClick:
return False
return super().styleHint(hint, option, widget, data)
# ...
app = QApplication(sys.argv)
app.setStyle(SingleClickWorkaroundProxy())
window = Main()
window.show()
app.exec_()
添加回答
举报