如何将QComboBox放入QColumnView中



场景:我需要在qcolumnview的第4列内放置一个组合框,以便用户可以选择ON或OFF。

描述:将来这将另存为 XML 文件,因此用户可以选择参数并生成自定义 XML 文件。有人可以告诉我该怎么做吗?

import sys
from PyQt4 import QtGui, QtCore

class xml_creator(QtGui.QMainWindow):
    def __init__(self):
        super(xml_creator, self).__init__()
        self.initUI()
    def initUI(self):
        column_view = QtGui.QColumnView(self)
        self.setCentralWidget(column_view)
        m_model = QtGui.QStandardItemModel()
        column_view.setModel(m_model)
        column_view.setAlternatingRowColors(True)
        self.test_variables = {}
        self.test_variables['OPTION_1'] = ['OFF', 'ON']
        self.test_variables['OPTION_2'] = ['OFF', 'ON']
        self.iq_xml = {}
        self.iq_xml['TEST_1'] = {}
        self.iq_xml['TEST_1']['Test_case_1'] = self.test_variables
        for x in self.iq_xml:
            if not self.iq_xml[x]:
                continue
            parent = QtGui.QStandardItem(x)
            parent.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable)
            for y in self.iq_xml[x]:
                if not self.iq_xml[x][y]:
                    continue
                child0 = QtGui.QStandardItem(y)
                child0.setFlags(QtCore.Qt.ItemIsEnabled)
                parent.appendRow(child0)

                for z in self.iq_xml[x][y]:
                    if not self.iq_xml[x][y][z]:
                        continue
                    grand_child = QtGui.QStandardItem(z)
                    grand_child.setFlags(QtCore.Qt.ItemIsEnabled)
                    child0.appendRow(grand_child)
                    value = self.iq_xml[x][y][z]
                    grand_grand_child = QtGui.QStandardItem(str(value))
                    grand_grand_child.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsEditable)
                    grand_child.appendRow(grand_grand_child)
            column_view.model().appendRow(parent)
        column_view.setColumnWidths([200, 200, 200, 100])
        self.setGeometry(300, 300, 1000, 300)
        self.setWindowTitle('IQ XML Creator')
        self.show()
def main():
    app = QtGui.QApplication(sys.argv)
    ex = xml_creator()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

我找不到解决方案,但我找到了解决方法,所以我发帖希望帮助与我有相同问题的人。

一旦我无法在尝试时将组合框放入 QColumnView 中,我的解决方法是创建一个充满我想要的组合框的表格,然后将此 QTable 设置为QColumnView 中的预览小部件。

相关内容

  • 没有找到相关文章

最新更新