crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V  < 1 2 3 4 5 >  
Ответить в данную темуНачать новую тему
> А какие вобще сигналы ловятся слотами?, по нажатию кнопки на Label
Litkevich Yuriy
  опции профиля:
сообщение 7.5.2008, 14:50
Сообщение #21


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


а вне студии, а в ее(!) командной строке, можешь какой-нибудь Qt'явый пример скомпилить, который использует сигналы и слоты?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 7.5.2008, 15:02
Сообщение #22


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 7.5.2008, 14:50) *
а вне студии, а в ее(!) командной строке, можешь какой-нибудь Qt'явый пример скомпилить, который использует сигналы и слоты?

А как компилить через командную строку? И что такое ее?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.5.2008, 15:24
Сообщение #23


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


просто у студии есть своя командная строка, поищи ее в кнопке пуск там где студия,

Немного о старом:
да и тебе лучше создавать сразу проект для студии вместо мэйкфайлов, где-то в форуме упоминалась проблема работы в студии ищи по ключевому слову VS 2005

вообщем тебе надо почитать
Компиляция и прочее, для начинающих
Вначале может показаться - вода - но ты всю ветку прочитай, прозапас еще ссылка
Сборка qt + vs2005
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 7.5.2008, 15:33
Сообщение #24


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Чтобы с все не обламывалось на макросе Q_OBJECT, нужно файлу *.h, в котором стоит это макрос в свойствах указать:
Ветвь "Configuration Properties / General"
строка "Tool"
Цитата
Custom Build Tool


Для Debug версии
Ветвь "Configuration Properties / Custom Build Step / General"
Строка "Command Line"
Цитата
$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"$(QTDIR)\include\ActiveQt" -I"debug" -I"." -I$(QTDIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 mainwindow.h -o debug\moc_mainwindow.cpp

Строка "Description"
Цитата
MOC mainwindow.h

Строка "Outputs"
Цитата
debug\moc_mainwindow.cpp

Строка "Additional Dependencies"
Цитата
$(QTDIR)\bin\moc.exe;mainwindow.h


Для Release версии
Строка "Command Line"
Цитата
$(QTDIR)\bin\moc.exe -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtCore" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include\QtGui" -I"$(QTDIR)\include" -I"$(QTDIR)\include\ActiveQt" -I"release" -I"." -I$(QTDIR)\mkspecs\win32-msvc2005 -D_MSC_VER=1400 -DWIN32 mainwindow.h -o release\moc_mainwindow.cpp

Строка "Description"
Цитата
MOC mainwindow.h

Строка "Outputs"
Цитата
release\moc_mainwindow.cpp

Строка "Additional Dependencies"
Цитата
$(QTDIR)\bin\moc.exe;mainwindow.h


где mainwindow.h имя твоего файла в котором находится макрос Q_OBJECT, следует заменить на твое конечно же. :)

После компиляции будут созданы файлы moc_mainwindow.h в директориях Release и Debug, в зависимости для какой версии компилишь, эти файлы следует добавить в проект, чтобы компилятор не ругался на ошибки линковки.

Вроде бы и все. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 7.5.2008, 15:48
Сообщение #25


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


А в строке "Outputs" точно debug\moc_mainwindow.cpp ?
Просто после компиляции в папке debug появляется moc_mainwindow.cpp а не moc_mainwindow.h, который нада добавить в проект как ты говорил внизу поста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 7.5.2008, 16:01
Сообщение #26


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Угу, туда он складывает всякие мета данные класса, объявления сигналов и прочее...

Цитата(ViGOur @ 7.5.2008, 16:33) *
После компиляции будут созданы файлы moc_mainwindow.h в директориях Release и Debug
Опечатался не moc_mainwindow.h, а moc_mainwindow.сpp.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 7.5.2008, 16:17
Сообщение #27


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Сделал всё как было описано, ошибки пропали. Но появилась такая
Error 1 error C2248: 'QWidget::QWidget' : cannot access private member declared in class 'QWidget'
Наверное она уже не связана с QOBJECT и слотами, но всё же может подскажите из-за чего она могла появится. Место где она появилась указывается в конце объявления класса в заголовочном файле.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 7.5.2008, 16:31
Сообщение #28


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Покажи строку, на которую так ругается
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 7.5.2008, 16:48
Сообщение #29


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 7.5.2008, 16:31) *
Покажи строку, на которую так ругается

};
:)

Ну вот вобщем весь заголовочный файл:
CODE

#ifndef LCDRANGE_H
#define LCDRANGE_H

#include <QWidget>
#include <QtGui>


class Life : public QWidget
{
Q_OBJECT
public:
Life(QWidget *parent = 0);
void smile(int x, int y);
protected:
virtual void paintEvent(QPaintEvent*);
public slots:
void ris(Life );
private:
int imatrix[10][10];
int newmatrix[10][10];
}; <======================== в этой строке показывет ошибку
#endif

весь private убирал, ошибка таже в том же месте

Сообщение отредактировал Don - 7.5.2008, 16:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 7.5.2008, 16:54
Сообщение #30


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Да нет, я думаю, что ты где-то обращаешься на прямую к imatrix или к newmatrix из вне данного класса. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

5 страниц V  < 1 2 3 4 5 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 9:17