![]() |
|
![]() ![]() ![]() |
|
Enchance |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.10.2009 Репутация: нет Всего: нет |
Здравствуйте.
У меня есть код:
Нужно, чтобы при нажатии на кнопку "cmd1" выводилось изображение pix1, а при нажатии на кнопку "cmd2" выводилось изображение pix2. Как реализовать? У меня что бы я не делал, как бы я не изворачивался, изображение не меняется. Про сигналы в общих чертах знаю, но не знаю, как их здесь применить. |
|||
|
||||
loneybibi |
|
|||
![]() Любитель ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.5.2010 Где: Донецк (Украина) Репутация: 3 Всего: 3 |
connect(<кнопка>,SIGNAL(clicked()),<указатель на родительский класс>,SLOT(<функция которая загружает рисунок>));
что то типа этого .. -------------------- Red Hat Fedora 17 Qt 4.8.1 (x64), GCC 4.4.3, G++ 4.4.3, QtCreator 2.4.1 |
|||
|
||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
loneybibi, connect - функция класса QObject. Она, конечно, статическая, и можно вызывать без создания экземпляра класса ( QObject::connect... ), но в данном случае это не подходит.
Enchance, для того, чтобы принимать сигналы, тебе необходимо создать свой класс, который наследовать как минимум от QObject (в данном случае лучше от QWidjet), описать в нём слоты, и коннектить сигналы от елементов интерфейса на эти слоты. Типа такого: h-файл
cpp-файл
а в main будет просто
Это сообщение отредактировал(а) borisbn - 8.3.2011, 09:59 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
Enchance |
|
||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.10.2009 Репутация: нет Всего: нет |
h-файл выдает кучу ошибок. Например, на строку
компилятор говорит
а там дальше пошло-поехало. Шлее читаю, гугл тоже курю, но пока плохо все получается... |
||||
|
|||||
borisbn |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
для того, чтобы наследоваться от какого-либо класса, необходимо включить описание этого класса в h-ник.
Просто напиши перед
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||
|
|||||
Enchance |
|
||||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 20.10.2009 Репутация: нет Всего: нет |
Ок, но это не все еще.
Строка
говорит
На QPushButton компилятор говорит так же. На xxl, cmd1, cmd2, verticalLayout в cpp-файле он говорит, что они не обьявлены. |
||||
|
|||||
Modul |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 17.2.2006 Репутация: нет Всего: нет |
Кошмариус просто !
![]() В хедере (*.h) напишите:
Но правильно эти виджеты подключать. --------------------
I'll be back ! |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
Enchance, в Qt предоставляются замечательные примеры. Возьми пару-тройку из них и досконально разбери. Каждую строчку. А вообще, я б тебе посоветовал подучить Си++ перед тем, как браться за Qt.
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
Sality123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 121 Регистрация: 10.3.2011 Репутация: нет Всего: нет |
Енчансе, я смотрю на твою проблему с низу, как и ты, не то что эти специ =) Я сам только 3 мес изучаю С++ и Qt
Вобщем, чтоб компилятор не ругался перед тем как использовать класс какой то (QPushButton или QLabel) или другие их нужно подключить, это лучше всего делать в .h файле с самого верха например в твоем случае это: #include <QPushButton> #include < QLabel> #include < QWidget> #include < QPixmap> и обязательно нужно подключить свой класс если ты используешь его функции например #include "myclass.h" |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
если используешь указатель на этот класс, то лучше подключать эти инклюды не в h-файле, а в cpp, а в h-файле делать только объявление типа
Это не будет заставлять того, кто использует твой класс, т.е. подключает твой h-ник, компилировать кучу других h-ников. Это сообщение отредактировал(а) borisbn - 11.3.2011, 23:36 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
popeye |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 26.3.2011 Репутация: нет Всего: нет |
можно не подключать
class QLabel; class QPushButton; просто подключи #include <QtGui> т.к. эти классы производные от него а вообще советую читать документацию по Qt Это сообщение отредактировал(а) popeye - 26.3.2011, 01:33 |
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
это - не подключение, а объявление. Modul уже это советовал от кого ? в Си++ нет производных. есть только наследование popeye, перед тем, как советовать, советую самому подучить мат.часть единственный дельный совет Это сообщение отредактировал(а) borisbn - 26.3.2011, 13:25 -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |