1 回答

TA貢獻(xiàn)1982條經(jīng)驗 獲得超2個贊
似乎 Qt 試圖尊重操作系統(tǒng)在其文件管理器中打開文件和文件夾的方式,即使在使用本機(jī)對話框時也是如此。這取決于SH_ItemView_ActivateItemOnSingleClick
?樣式提示,繞過它的唯一方法是應(yīng)用代理樣式。
雖然您可以在其內(nèi)部將樣式應(yīng)用于 QFileDialog 的視圖__init__
(只要您使用本機(jī)對話框),但您使用的是靜態(tài)方法,因此您只能通過將樣式設(shè)置為整個 QApplication 來實現(xiàn)。
請注意,與樣式表、調(diào)色板和字體不同,樣式不會傳播到子部件,它們始終使用 QApplication 樣式(或為它們手動設(shè)置的樣式)。
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_()
添加回答
舉報