Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 12, 2022 09:20:36

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

Нужно решение с группами в ListWidget

Привет!
Планирую открывать несколько папок и помещать файлы в QListWidget (поминаю, возможно QTreeView тут предпочтительнее)
В общем, на скорую руку накидал пример

 #-------------------------------------------------------------------------------
# Name:        test label in list
#
# Created:     11.06.2022
# Copyright:   (c) Novator 2022
#-------------------------------------------------------------------------------
import sys
from PyQt5 import QtWidgets, QtCore
class Test(QtWidgets.QWidget):
	def __init__(self, parent=None):
		super().__init__(parent)
		self.lst()
		self.lst.itemClicked.connect(self.check_item_in_books_list)
	def lst(self):
		self.setWindowTitle('Test')
		self.btn_base_1 = QtWidgets.QPushButton("Btn_1")
		self.lst = QtWidgets.QListWidget()
		tops = QtWidgets.QHBoxLayout()
		tops.addWidget(self.btn_base_1)
		main_layout = QtWidgets.QVBoxLayout()
		main_layout.addWidget(self.lst)
		main_layout.addLayout(tops)
		self.setLayout(main_layout)
	@staticmethod
	def check_item_in_books_list(item):
		if item.checkState() == QtCore.Qt.Checked:
			item.setCheckState(QtCore.Qt.Unchecked)
		else:
			item.setCheckState(QtCore.Qt.Checked)
	def fill_lst(self):
		label = QtWidgets.QLabel('TEST LABEL')
		grp = QtWidgets.QListWidgetItem()
		label.setAlignment(QtCore.Qt.AlignCenter)
		label.setEnabled(False)
		self.lst.addItem(grp)
		self.lst.setItemWidget(grp, label)
		for i in range(10):
			item = QtWidgets.QListWidgetItem()
			item.setText(str(i))
			item.setCheckState(QtCore.Qt.Unchecked)
			self.lst.addItem(item)
if __name__ == '__main__':
	app = QtWidgets.QApplication(sys.argv)
	window = Test()
	window.show()
	window.fill_lst()
	sys.exit(app.exec_())
В принципе, так бы устроило, но…
- как запретить чекбокс для надписи?
- при клике на надпись чтобы выделялись все элементы под ней (так сказать, вся группа)
- ну и если в группе нет элементов, чтобы удалилась со списка и сама группа

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version