PyQt5 QTableView: как отключить взаимодействие с пользователем / выбор при сохранении стиля / цветов по умолчанию? - PullRequest
0 голосов
/ 13 апреля 2019

Мне нужно иметь возможность программно выбирать некоторые строки в TableView, следовательно, показывать выбранные строки пользователю. Конечно, пользователь не должен иметь возможность изменять выбранные строки, щелкая здесь и там.

В настоящее время я нашел единственный способ отключить взаимодействие с пользователем с помощью:

self.table_view.setEnabled(False)

Хотя это решает проблему выбора пользователя, оно также меняет аспект таблицы, делая все это серым:

enter image description here

Как восстановить первоначальный стиль, когда выделенные строки отображаются синим цветом? enter image description here

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

Если я правильно понимаю ваш вопрос, вы должны поиграть со свойствами:

  • setSelectionMode ()
  • setSelectionBehavior ()

    table_view.setSelectionMode(QtWidgets.QAbstractItemView.NoSelection)
    table_view.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
    
0 голосов
/ 13 апреля 2019

Откройте QDesigner и загрузите ваш .ui файл.Нажмите на свой QTableView и в Редакторе свойств (правая панель) прокрутите вниз до фиолетовой области.Там вы увидите editTriggers, разверните это.Отметьте первый, который говорит NoEditTriggers.

Это отключит пользователя от редактирования ячеек в таблице.Дайте мне знать, если мои инструкции были недостаточно четкими, и я смогу предоставить фотографии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...