Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/35: Рейтинг темы: голосов - 35, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 45

QTreeWidget какой элемент выбран?

15.05.2017, 12:03. Показов 6856. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
QTreeWidget древовидный список:
Python
1
2
3
4
5
первый уровень
|_
    Второй подуровень
    |_
        Третий подуровень
Подскажите как узнать какой элемент выбран или по какому элементу был произведен клик??
В зависимости по какому меню был клик, будут вызываться разные функции.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
item = QtWidgets.QTreeWidgetItem(["первый уровень"], 1)
        self.treeWidget.addTopLevelItem(item)
 
        item2 = QtWidgets.QTreeWidgetItem(["второй уровень"], 2)
        item.addChild(item2)
 
        item3 = QtWidgets.QTreeWidgetItem(["третий уровень"], 3)
        item2.addChild(item3)
 
        self.treeWidget.itemSelectionChanged.connect(self.select_item)
 
    def select_item(self):
        // Как тут узнать от кого пришел сигнал или какой пункт меню выбран в данный момент
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.05.2017, 12:03
Ответы с готовыми решениями:

Как определить какой круг выбран?
Доброго дня, подскажите пожалуйста) Есть программа которая открывает картинку и размещает ее в QPixmap на QGraphicsScene. Есть функция...

Какой элемент на UserForm выбран?
Добрый вечер! На UserForm есть много элементов, например, CommandButton. Как определить, какой элемент выбран, а затем с ним проделать...

выводитяс сообщение, что не выбран элемент списка, когда элемент выбран
Здравствуйте, уважаемые специалисты. В моей БД на Аксесс 2013-й версии есть таблица "Документы" с полями:Код(счетчик, ключевое),...

11
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
15.05.2017, 12:36
Видимо, .currentItem().
В более общем случае надо использовать .selectionModel().
0
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 45
15.05.2017, 16:01  [ТС]
Можно пример? У меня какуе-то чушь возвращает currentItem()
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
15.05.2017, 16:46
Зачем вам пример, если у вас там всё равно какая-то чушь?
0
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 45
15.05.2017, 16:52  [ТС]
Не правильно использую currentItem(). Думал по вашему примеру разобраться как правильно.
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
15.05.2017, 17:24
Напишите, что у вас в currentItem().
Кроме того, там есть иные полезные сигналы. currentItemChanged, itemClicked в первую очередь.
0
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 45
15.05.2017, 18:12  [ТС]
Вот
Python
1
2
3
    def select_item(self):
        self.sert = Search_Tov_Form()
        print(self.sert.treeWidget.currentItem())
None

Добавлено через 21 минуту
вот весь код
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Search_Tov_Form(QtWidgets.QDialog, Ui_search_tov_Form):
    def __init__(self, parent=None):
        super().__init__(parent, QtCore.Qt.Window)
        self.setupUi(self)
 
        item = QtWidgets.QTreeWidgetItem(["первый уровень"], 1)
        self.treeWidget.addTopLevelItem(item)
        item.setIcon(0, app.style().standardIcon(QtWidgets.QStyle.SP_DirIcon))
 
        item2 = QtWidgets.QTreeWidgetItem(["второй уровень"], 2)
        item.addChild(item2)
 
        item3 = QtWidgets.QTreeWidgetItem(["третий уровень"], 3)
        item2.addChild(item3)
 
        self.treeWidget.currentItemChanged.connect(self.select_item)
 
    def select_item(self):
       //Тут нужно узнать по какому элементу кликнули
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
16.05.2017, 09:43
lepus007, так может, просто ничего не выбрано?
0
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 45
16.05.2017, 10:28  [ТС]
Правильно или нет. Заработало вот так.
Python
1
2
item = self.treeWidget.currentItem()
        print(item.text(0))
.text(0), Зачем ноль в скобках??
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
16.05.2017, 11:31
Понятия не имею, но если бы у вас item был None, то item.text вывалилось бы с ошибкой.
text, как нетрудно догадаться, возвращает надпись на итеме.
0
0 / 0 / 0
Регистрация: 05.09.2015
Сообщений: 45
16.05.2017, 17:24  [ТС]
Как можно получить весь список. Название всех итемов которые в QTreeWidget есть ??
0
Эксперт Python
 Аватар для dondublon
4652 / 2072 / 366
Регистрация: 17.03.2012
Сообщений: 10,182
Записей в блоге: 6
16.05.2017, 17:29
Не помню уж, смотреть надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2017, 17:29
Помогаю со студенческими работами здесь

Проверить, какой элемент radio выбран
Не могу понять, как проверить какой элемент radio выбран. Точнее как вызвать функцию проверки. Нужно, чтобы на экране вывелось сообщение,...

Как узнать какой элемент выбран?
У меня есть JPanel в ней ещё несколько JPanel, в каждой из которых 1 JLabel и 1 JList, я хочу чтобы по двойному нажатию на JList его рамка...

RadioGroup: проверить, какой элемент выбран
Нужна помощь. у меня на форме компонент RadioGroup с 4 Items. как мне проверить какой item был выбран? например в RadioButton это выглядело...

ListView: проверить выбран ли какой-либо элемент
Собственно, мне нужен индекс выбранного элемента. Узнаю его так: lw.SelectedIndices Но если ничего не выбрано, появляется ошибка. Как...

Узнать какой текущей элемент выбран в дереве TreeView
как узнать какой текущей элемент выбран в дереве treeview, при условии что деревьев не известное количество и элементов в этих деревьях...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru