Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
jumpjet67
1 / 1 / 0
Регистрация: 03.12.2013
Сообщений: 46
1

Как порезать картинку и вывести её по частям?

09.12.2013, 16:01. Просмотров 763. Ответов 4
Метки нет (Все метки)

В общем, игра собери картинку. Вот участок кода, ответственный за присваивание изображений:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void MainWnd::setNumbers()
{
  for ( int i = 0; i < 16 ; i++ )
  {
    if (nums[ i ] > 0)
    {
      btn[ i ]->setFlat( false );
    } else
    {
      btn[ i ]->setFlat( true );
    }
    btn[ i ]->setIcon(QIcon("строка"));
    btn[ i ]->setIconSize(QSize(98,98));
  }
}
Решил пойти по простому пути, порезал картинку взаранее, назвал части 1.png ... 15.png. Решил создать массив строк и вставить туда пути к файлам:
Std::string imgs [15] = {1.png,2.png...15.png}
и затем
btn[ i ]->setIcon(QIcon(imgs[i]));

но так не получается.
Еще вариант - выводить целую картинку по кусочкам, ведь координаты кусочков известны. Как это можно сделать?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2013, 16:01
Ответы с готовыми решениями:

Как вывести картинку в формате j2k на виджет?
Всем привет! У меня вопрос, как вывести картинку в формате j2k на виджет? Нашел...

как порезать картинку на элементы сайта?
т.е. рисованный сайт. И создается 2 картинки страницы. первая - в неактивном...

Вывести картинку в picturebox по отдельным частям
как в С# можно вывести картинку в picturebox по отдельным частям?

Как порезать скорость на порту?
Добрый день. На cisco 1921 хотел порезать скорость инета до 8 мбит на одном...

Как правильнее порезать макет перед версткой?
Здравствуйте. Вот решил потренироваться поверстать на макетах Photoshop. Скачал...

4
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
09.12.2013, 17:30 2
1) Не используйте std в qt проектах. Вместо std::string есть QString. Вместо массива - QList.

Цитата Сообщение от jumpjet67 Посмотреть сообщение
но так не получается.
Что значит не получается? Опишите проблему для начала.
0
jumpjet67
1 / 1 / 0
Регистрация: 03.12.2013
Сообщений: 46
09.12.2013, 18:20  [ТС] 3
Цитата Сообщение от RazrFalcon Посмотреть сообщение
1) Не используйте std в qt проектах. Вместо std::string есть QString. Вместо массива - QList.
Простите, только учусь =)
Что значит не получается? Опишите проблему для начала.
Как уже было сказано выше, картинку попилил заранее, сложил маленькие картинки в папку с проектом, пронаименовав их от 1.png до 15.png (нужно собрать пазл из 15 картинок). Теперь в цикле нужно каджой кнопке присвоить свою картинку. Я пошел в лоб - создал массив строк, в каждой из которых указал путь к картинке, затем в самом цикле
btn[ i ]->setIcon(QIcon(imgs[i])); // imgs[] - массив с путями к картинкам
Но компилятор такой код не проглотил - выдал error: no matching function for call to 'QIcon::QIcon(std::string&)'
На самом деле эту проблему уже обошел не очень элегантным способом, но тем не менее, с одной, уже подготовленной картинкой программа работает.

Теперь было бы не плохо, если бы вы помогли мне сообразить "резалку" для программы, которая позволяла бы выбирать картинку, нарезала её и присваивала кнопкам.
0
RazrFalcon
1388 / 1245 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
09.12.2013, 18:40 4
Цитата Сообщение от jumpjet67 Посмотреть сообщение
error: no matching function for call to 'QIcon::QIcon(std::string&)'
Потому что нужно передавать QString, о чем я и написал.

Резать картинку можно несколькими способами. Думаю вам подойдет
http://qt-project.org/doc/qt-4.8/qimagereader.html
и в частности
http://qt-project.org/doc/qt-4.8/qimagereader.html#setClipRect
который позволяет выбрать нужный прямоугольник у изображения
1
jumpjet67
1 / 1 / 0
Регистрация: 03.12.2013
Сообщений: 46
09.12.2013, 18:45  [ТС] 5
Шикарно! Уже бегу за словарем по английскому!
0
09.12.2013, 18:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2013, 18:45

Как открыть CUE-файл, порезать микс в AIMP
Сосбственно как порезать трек посредством этого файла используя аимп? Куе и трк...

Как порезать текстовый файл на определенное количество текстовых файлов?
Например: есть текстовый файл с 300 строками, Мне нужно порезать на 3...

Как вывести картинку?
я хочу вывести картинку как мне это сделать???


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru