我需要隐藏/禁用QFileDialog中的侧边栏(QSidebar)。
我使用带有d-pointer的magic-woodoo和编辑Qt源代码解决了这个问题(就像this)。
有没有更简单的方法呢?
由于
答案 0 :(得分:0)
QFileDialog尽可能使用本机对话框。因此,如果您想以跨平台的方式使用Qt,那么简短的答案就是否定。
答案 1 :(得分:0)
老问题
我有一个python hack:
fd = QtGui.QFileDialog()
...
# search for the sidebar and hide it when found
sidebar = None
views = fd.findChildren(QListView)
for obj in views:
if obj.objectName() == "sidebar":
sidebar = obj
break
if sidebar is not None:
sidebar.hide() # hidden away!
# ...now search for the splitter handle and hide it too
splitter = None
splitters = fd.findChildren(QSplitter)
for obj in splitters:
if obj.objectName() == "splitter":
obj.setHandleWidth(0) # hidden -- sort of
break
这是一个骇人听闻的解决方案,但是由于我一直在寻找相同的问题,所以我想我会分享最终解决的代码。
ps--我没有机会编译上面的代码:对潜在的错误和错别字表示抱歉。希望您可以在这里使用这个想法。