Несколько вопросов про QTreeWidget |
Здравствуйте, гость ( Вход | Регистрация )
Несколько вопросов про QTreeWidget |
breeve |
4.1.2010, 15:27
Сообщение
#1
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Я создал иерархический список добавил в него одну позицию, и пытаюсь сделать связь.
В этом классе есть сигнал Цитата void QTreeWidget::itemClicked ( QTreeWidgetItem * item, int column ) [signal] Так вот я написал
Мне выводится ошибка: Цитата Object::connect: No such signal QTreeWidget::itemClicked(home, 0) in mainwindow.cpp:37 Программа запускается .. я нажимаю на home.. и ничего не происходит.. Что не так делаю? Сообщение отредактировал breeve - 4.1.2010, 15:29 |
|
|
DIMEDROLL |
4.1.2010, 15:37
Сообщение
#2
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
connect(twg, SIGNAL(itemClicked(home, 0)), this, SLOT(welcome())); правильно писать так:
макрос SIGNAL принимает строку const char* в качестве параметра, сигнал и слот принимают только типы параметров а не сами данные у сигнала и слота должны быть одинаковые параметры(в этом случае (QTreeWidgetItem *, int)) - это уточни в доке лучше почитай в доке по методу QObject::connect() |
|
|
breeve |
4.1.2010, 16:01
Сообщение
#3
|
Участник Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: 1 |
Че то помоему это какой-то бред))
Разве может функция принимать на параметр только тип "SIGNAL(itemClicked(QTreeWidgetItem *, int )"? Тем более в доке же ясно написано QTreeWidget::itemClicked ( QTreeWidgetItem * item, int column ) .. А item это как раз мой home.. А насчет слота.. Создавал я его сам.. и поэтому какие там могут быть параметры.. А в доке про connect так и написано.. изменил вот так: connect(twg, SIGNAL(itemClicked(QTreeWidgetItem *, int)), this, SLOT(welcome())); и все работает.. спасибо А как мне слот welcome() поменять чтобы, нажатие home одно на на что-то другое - другое?
Естественно надо параметры поставить.. а дальше то как? Я кажется понял если не правильно, то поправьте.. Сравнивать два указателя (параметр и home) и далее выводить.. Сообщение отредактировал breeve - 4.1.2010, 15:50 |
|
|
DIMEDROLL |
4.1.2010, 16:01
Сообщение
#4
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
Че то помоему это какой-то бред)) Разве может функция принимать на параметр только тип "SIGNAL(itemClicked(QTreeWidgetItem *, int )"? хех, функция не может, но ты ведь передаешь не функцию а ее имя и типы параметров которые преобразуются макросом SIGNAL в строку типа: const char* str = "itemClicked(QTreeWidgetItem *, int )" почитай еще доку по SIGNAL и SLOT, а лучше глянь их реализацию в исходном коде, так сразу и поймешь Цитата А как мне слот welcome() поменять чтобы, нажатие home одно на на что-то другое - другое? это что значит? Сообщение отредактировал DIMEDROLL - 4.1.2010, 16:04 |
|
|
Litkevich Yuriy |
4.1.2010, 16:23
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Текстовая версия | Сейчас: 15.1.2025, 12:30 |