如果列中的1个没有任何值,则隐藏QTableWidget中的行

时间:2016-09-29 22:01:50

标签: python pyqt maya qtablewidget qcombobox

我想要一些关于我编写的代码的意见。我的用户界面由QTableWidget组成,其中有2列,其中2列中的一列填充了QComboBox

对于第一列,它将使用它在场景中找到的字符装备(完整路径)列表填充单元格,而第二列将为每个单元格创建Qcombobox并填充颜色选项来自json文件。

现在我正在尝试创建一些单选按钮,为用户提供显示所有结果的选项,或者如果该特定行的Qcombobox内没有颜色选项,它将隐藏这些行。

正如您在我的代码中看到的那样,我在每列填充数据,因此,当我尝试放入if not len(new_sub_name) == 0:而它没有放入任何Qcombobox零选项时,如何在Qcombobox中没有选项的情况下隐藏这些行?

def populate_table_data(self):
    self.sub_names, self.fullpaths = get_chars_info()

    # Output Results
    # self.sub_names : ['/character/nicholas/generic', '/character/mary/default']
    # self.fullpaths : ['|Group|character|nicholas_generic_001', '|Group|character|mary_default_001']

    # Insert fullpath into column 1
    for fullpath_index, fullpath_item in enumerate(self.fullpaths):
        new_path = QtGui.QTableWidgetItem(fullpath_item)
        self.character_table.setItem(fullpath_index, 0, new_path)
        self.character_table.resizeColumnsToContents()

    # Insert colors using itempath into column 2
    for sub_index, sub_name in enumerate(self.sub_names):
        new_sub_name = read_json(sub_name)

        if not len(new_sub_name) == 0:
            self.costume_color = QtGui.QComboBox()
            self.costume_color.addItems(list(sorted(new_sub_name)))
            self.character_table.setCellWidget(sub_index, 1, self.costume_color)

1 个答案:

答案 0 :(得分:2)

您可以使用setRowHidden隐藏行。至于代码的其余部分,我不会对你现在拥有的东西有多大的错误,但是FWIW我会写这样的东西(当然是完全未经测试的):

{{1}}