我怎么能用Qt获得这种下拉? (特别是PyQt4)

时间:2010-06-28 18:24:28

标签: python user-interface pyqt4

这是我想要的下拉窗口类型。它有列,每个列都有不同类型的数据。我尝试使用制表符分隔,但它看起来很草率。我怎样才能使用PyQt4获得这样的下拉/组合框元素? (忽略黑盒子,我只是想隐藏我的系统文件)。

Columned Dropdown

3 个答案:

答案 0 :(得分:2)

使用您自己的自定义项目委托。可能不容易回答一个人希望,但你将完全控制:)

请参阅http://doc.trolltech.com/4.6/model-view-delegate.html

答案 1 :(得分:1)

我没有使用PyQt,但如果它像PyGTK一样,可以使用类似the tree widget.

的东西

虽然作为替代方案,您可以简单地使用字符串格式(比制表符分隔更好):

(新格式)

'{0:20}{0:20}'.format('l','lines in current document')

如果你想确保每个最大的都足够,你可以做this之类的事情:

leftwidth = len(max(['l', 'foo', 'longitem'], key=len))
rightwidth = len(max(['Number of lines', 
                      'some other option', 
                      'yet another long option'], key=len))

'{key:{L}}{desc:{R}}'.format(key='l',desc='Number of lines',
                             L=leftwidth, R=rightwidth)

如果您将密钥/描述存储在字典中,则可以更轻松地自动化该过程。

答案 2 :(得分:0)

当然,你必须使用QColumnView,它是Listview的扩展版本或只是多个listview。如您所知,listview是Combobox的开放版本。