crossplatform.ru

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

5 страниц V  < 1 2 3 4 5 >  
Ответить в данную темуНачать новую тему
> Редактор шаблонов
genusatplay
  опции профиля:
сообщение 1.12.2008, 17:27
Сообщение #21


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 1.12.2008, 17:22) *
Цитата(genusatplay @ 1.12.2008, 20:17) *
а с итемами что нетак?
нормальная практика это объявление указателя, а затем динамическое (через оператор new) создание объекта и инициализация указателя. Т.е. например так:
void List::initItems()
{
...
    QListWidgetItem  *p_i1 = new QListWidgetItem(icon, "Text" , this);
    QListWidgetItem  *p_i2 = new QListWidgetItem(icon, "Table", this);    
}


если тебе переменные p_i* будут нужны в дальнейшем, то их нужно объявлять в классе, чтобы область видимости была "Весь класс". Если же в дальнейшем не нужна, то можно объявить как в пример (в теле функции), но область видимости при этом только данная функция.

мне нужно будет только узнавать какой элемент был перенесен на форму(вроде больше ненужно).. для этого мне нужны эти переменные будут?
хотя пускай будут..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.12.2008, 17:51
Сообщение #22


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

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

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




Репутация:   94  


вот этой строке:
QIcon icon = qApp->style()->standardIcon(QStyle::SP_DriveDVDIcon);

не место в классе, который где-то зарыт в программе.

Представь себе ситуацию:
ты используешь сторонний класс (разработан кем-то), а он вдруг устанавливает иконку приложения.
Такую строку надо делать в функции main либо создавать предка от QAplication и в нем устанавливать иконки, переводчики, пути к библиотекам и т.п.

Цитата(Litkevich Yuriy @ 1.12.2008, 20:28) *
вот этой строке:
QIcon icon = qApp->style()->standardIcon(QStyle::SP_DriveDVDIcon);
Language: cpp

не место в классе, который где-то зарыт в программе.

Представь себе ситуацию:
ты используешь сторонний класс (разработан кем-то), а он вдруг устанавливает иконку приложения.
Такую строку надо делать в функции main либо создавать предка от QAplication и в нем устанавливать иконки, переводчики, пути к библиотекам и т.п.
Прошу прощения, тут я чушь сморозил (думал иконка приложения устанавливается)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
genusatplay
  опции профиля:
сообщение 1.12.2008, 22:28
Сообщение #23


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

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




Репутация:   0  


подскажите плиз что мне делать?
я не представляю вообще(все из за нервов.. уже сдавать скоро)... подскажите что юзать
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
genusatplay
  опции профиля:
сообщение 2.12.2008, 0:06
Сообщение #24


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

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




Репутация:   0  


как мне сделать чтото типа записи?
хочу сделать лист записей который будет содержать прямоугольник который будет рисоваться и параметры

поясните что такое
dragEnterEvent
dragMoveEvent

dropEvent и mousePressEvent вроде понятно эвент при отпускании элемента и эвент при нажатии клавиши

или мб ктонить.. объясните как работает драг&дроп

ласт едит
void List::mousePressEvent(QMouseEvent *event)
{
    QLabel *child = static_cast<QLabel*>(childAt(event->pos()));
    if(!child)
        return;

    QPixmap pixmap = *child->pixmap();
    //QPixmap pixmap = QPixmap(":/images/house.png");
    
    QByteArray itemData;
    QDataStream dataStream(&itemData, QIODevice::WriteOnly);
    dataStream << pixmap << QPoint(event->pos() - child->pos());

    QMimeData *mimeData = new QMimeData;
    mimeData->setData("elemtext",itemData);

    QDrag *drag = new QDrag(this);
    drag->setMimeData(mimeData);
    drag->setPixmap(pixmap);
    drag->setHotSpot(event->pos() - child->pos());

    if ( drag->exec(Qt::CopyAction | Qt::MoveAction, Qt::CopyAction ) == Qt::MoveAction )
        child->close();
    else {
        child->show();
        child->setPixmap(pixmap);
    }
}

что нужно создавать вместо QLabel?
или как правильно запихивать из ListItem'а иконку в QLabel?

Сообщение отредактировал genusatplay - 2.12.2008, 1:18
Прикрепленные файлы
Прикрепленный файл  shablon.zip ( 6,35 килобайт ) Кол-во скачиваний: 116
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 2.12.2008, 2:50
Сообщение #25


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

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




Репутация:   6  


как все запущено...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.12.2008, 7:37
Сообщение #26


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

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

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




Репутация:   94  


Цитата(genusatplay @ 2.12.2008, 3:06) *
поясните что такое
dragEnterEvent
dragMoveEvent

1-событие входа в режим перетаскивания
2-событие самого перетаскивания
(Это есть в асистенте)

Цитата(genusatplay @ 2.12.2008, 3:06) *
что нужно создавать вместо QLabel?
не понял цель.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
genusatplay
  опции профиля:
сообщение 2.12.2008, 13:40
Сообщение #27


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 2.12.2008, 7:37) *
Цитата(genusatplay @ 2.12.2008, 3:06) *
что нужно создавать вместо QLabel?
не понял цель.

ну я взял этот кусок из демки "draganddrop" только там перетаскивали label'ы
я переделал впринципе под себя эту реакцию на эвент..
но с лэйблом выскакивает ошибка.. я так понял что он создает лэйбл.. такойже как и лэйбл на котором мы нажали.. но у меня то не лэйбл, а List , вот я и спрашиваю как переделать так чтоб для list'а пошло?

и как определить на каком элементе мы нажали и начали тянуть?
чтоб для разных элементов сделать разные иконки, или не иконки а чтонить другое
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 2.12.2008, 15:06
Сообщение #28


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


genusatplay,
не в обиду. по вопросам ясно что знания Qt и С++ "недостаточные". ты оцени сколько времени до сдачи и какие вопросы ты задаешь. очевидно это твой первый проект, наверное сложнова-то для первого раза.
может тебе если нужно просто сдать стоит пойти обходным путём?
а если есть желание начать посерьёзнее изучать и пользовать Qt+C++ так взять и основательно заняться этим вопросом. написать что нить по проще, поработать с ассистентом, почитать темы в ЭТОМ форуме, почитать М.Шлее в русском переводе и т.д. и т.п.
сколько у тебя времени признавайся?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 2.12.2008, 15:15
Сообщение #29


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

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

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




Репутация:   94  


genusatplay, присоеденюсь к kwisp, тема Перетаскивания (drag-n-drop) не из простых. её надо тщательно и вдумчиво изучать.

Цитата(genusatplay @ 2.12.2008, 16:40) *
и как определить на каком элементе мы нажали и начали тянуть?
можешь в коде оригинального примера, найти это место и привести здесь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
genusatplay
  опции профиля:
сообщение 2.12.2008, 20:10
Сообщение #30


Студент
*

Группа: Участник
Сообщений: 50
Регистрация: 8.11.2008
Пользователь №: 416

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




Репутация:   0  


Цитата(kwisp @ 2.12.2008, 15:06) *
genusatplay,
не в обиду. по вопросам ясно что знания Qt и С++ "недостаточные". ты оцени сколько времени до сдачи и какие вопросы ты задаешь. очевидно это твой первый проект, наверное сложнова-то для первого раза.
может тебе если нужно просто сдать стоит пойти обходным путём?
а если есть желание начать посерьёзнее изучать и пользовать Qt+C++ так взять и основательно заняться этим вопросом. написать что нить по проще, поработать с ассистентом, почитать темы в ЭТОМ форуме, почитать М.Шлее в русском переводе и т.д. и т.п.
сколько у тебя времени признавайся?

хех.. вы будете смеяться =)
это даже не лаба... ))
сдача диплома на след неделе ^.^
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 23.1.2025, 16:25