Я пытаюсь создать интерфейс для симулятора Modbus с использованием PyQt. Я настроил QTableView для аналоговых сигналов просто отлично, но для пользовательских входов цифрового сигнала я хотел бы иметь столбец QCheckBox. Однако, когда я пытаюсь представить это, я застреваю с нежелательными QLineEdit, от которых я не могу избавиться рядом с флажками.
Вот текущий код для построения таблицы цифровых сигналов:
def create_digital_row(self, data_list):
"""
Get data for SDI tab
"""
value = ''
address = data_list[0]
bit = data_list[1]
name = data_list[2]
group = data_list[3]
ref = str(address) + '@' + str(bit) + '#'
digital_data = [address, bit, group, name, value, ref]
row_data = []
for column in xrange(0, len(digital_data)):
item = QtGui.QStandardItem(str(digital_data[column]))
item.setData(QtCore.Qt.AlignLeft, QtCore.Qt.TextAlignmentRole)
item.setData(QtCore.Qt.AlignVCenter, QtCore.Qt.TextAlignmentRole)
if column == 4:
item.setCheckable(True)
if column != 4:
item.setEditable(False)
row_data.append(item)
return row_data
Я попытался установить value
на None
и (в настоящее время) на пустую строку. Установка его в None
возвращает строку «None» в нежелательном QLineEdit, а пустая строка просто создает пустой QLineEdit.
Я ознакомился с документацией Qt и попробовал другие методы, такие как setFlags
и т. Д., Но из-за недостатка знаний решить проблему очень сложно. Этот вопрос также, похоже, не был рассмотрен ни в SO, ни в QtCentre - ближе всего я обнаружил противоположность (нежелательные флажки), но решение не применимо к моему делу.
Я ценю, что могу просто проигнорировать это, но из-за качества моего кодирования и просто для улучшения моего понимания, я действительно хотел бы докопаться до сути.
Извиняюсь, если я неправильно понял терминологию, вся эта жаворонок для меня очень нова.
Ура!