Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами [RSS Feed]

#1 Апрель 6, 2021 21:30:48

Novator
Зарегистрирован: 2021-03-22
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

Привет.
Пробую еще один интерфейс для моей хотелки, опять правда многого не понимаю, но пытаюсь
Итак, интерфейс рисовал в QtDesigner 5.14.1
Ситуация такая:
- надо загружать текст построчно в ListWidget с чекбоксами (потом планируется выбор элементов со списка для обработки)

Такой метод чего то может добавлять элемент (отрезок функции с файла интерфейса):

 ............................
        self.lstFileLine = QtWidgets.QListWidget(self.tabs_2)
...............................
        self.lstFileLine.setObjectName("lstFileLine")
        item = QtWidgets.QListWidgetItem()
        item.setText("1")
        item.setCheckState(QtCore.Qt.Checked)
        self.lstFileLine.addItem(item)
...............................
Но этот способ только для предустановленных значений.
У меня функция выглядит так:
 def open_verify_list(self):
		if self.txt_Input.toPlainText():
			text = self.txt_Input.toPlainText()
			text_spl = str(text).split ('\n')
			for i in range(len(text_spl)):
				if text_spl[i].startswith('"'):
					self.lstFileLine.addItem(text_spl[i])
			self.lbl_validline.setText(str(self.lstFileLine.count()))
			self.open_sql_file()
		else:
			self.lbl_filename.setText('Сначала откройте файл')
Вот и вопрос - как к этой строке
 self.lstFileLine.addItem(text_spl[i])
дописать чекбоксы?

Офлайн

#2 Апрель 6, 2021 23:50:21

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

Novator
Вот и вопрос - как к этой строке
self.lstFileLine.addItem(text_spl)
дописать чекбоксы?

заменить ее на модифицирваный пример:

 item = QtWidgets.QListWidgetItem()
item.setText(text_spl[i])
item.setCheckState(QtCore.Qt.Checked)
self.lstFileLine.addItem(item)



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Апрель 6, 2021 23:51:12)

Офлайн

#3 Апрель 7, 2021 19:08:37

Novator
Зарегистрирован: 2021-03-22
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

PEHDOM
заменить ее на модифицирваный пример:
Да пробовал и так. Аварийное завершение работы скрипта

Офлайн

#4 Апрель 7, 2021 20:03:59

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

Novator
Да пробовал и так. Аварийное завершение работы скрипта
ну так оно ж не просто так “аварийно закрывается”, ошибку какуюто должно писать, исключение. Что пишет?



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Апрель 7, 2021 20:26:58

Novator
Зарегистрирован: 2021-03-22
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

PEHDOM
в консоли ничего, если вы об этом. Окошко с красным крестом и надпись “Аварийное завершение работы скрипта”

Офлайн

#6 Апрель 7, 2021 20:31:11

Novator
Зарегистрирован: 2021-03-22
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

Вот наглядно

Прикреплённый файлы:
attachment 2021-04-07_202821.png (36,7 KБ)

Офлайн

#7 Апрель 7, 2021 21:52:13

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

Novator
в консоли ничего, если вы об этом. Окошко с красным крестом и надпись “Аварийное завершение работы скрипта”
так нужно не из IDE запускать, если она не умеет правильно исключения обрабатывать, а из консоли.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#8 Апрель 9, 2021 22:38:18

Novator
Зарегистрирован: 2021-03-22
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

PEHDOM
Оказался не импортирован QtCore, хотя в файл дизайна он импортирован и вроде в главный его уже не надо вписывать…
Короче, флажки получил, а вот с текстом выделенных флажками элементов беда…
 self.lstFileLine.selectedItems()
какой то бред пишет…
 [<PyQt5.QtWidgets.QListWidgetItem object at 0x0424F5C8>]
или, если выделен один элемент
 []

Отредактировано Novator (Апрель 9, 2021 22:44:46)

Офлайн

#9 Апрель 10, 2021 13:45:13

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

у вас в selectedItems обьекты типа QListWidgetItem то и текст храниться внути атрибута. Текст можно получитьвызвав для каждого QListWidgetItem метод text()



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#10 Апрель 10, 2021 19:59:21

Novator
Зарегистрирован: 2021-03-22
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами

PEHDOM
QListWidgetItem метод text()
Что то все же не так…. Несмотря на количество выделенных чекбоксов, в обработке только строка, которая выделена. При таком раскладе эти чекбоксы вообще ни к чему

Офлайн

  • Начало
  • » GUI
  • » PyQt5 Динамическое добавление элементов в ListWidget с чекбоксами[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version