如何隐藏QFileDialog中的侧边栏?

时间:2013-03-05 11:00:19

标签: c++ qt qfiledialog

我需要隐藏/禁用QFileDialog中的侧边栏(QSidebar)。

我使用带有d-pointer的magic-woodoo和编辑Qt源代码解决了这个问题(就像this)。

有没有更简单的方法呢?

由于

2 个答案:

答案 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--我没有机会编译上面的代码:对潜在的错误和错别字表示抱歉。希望您可以在这里使用这个想法。