Russian Qt Forum
Ноябрь 26, 2024, 06:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3] 4 5   Вниз
  Печать  
Автор Тема: Вывод графики  (Прочитано 27992 раз)
thechicho
Гость
« Ответ #30 : Май 15, 2013, 22:50 »

 Веселый сделай скрин, чтобы было видно objectName таблицы в дизайнере

кстати, да Улыбающийся если в дизайнере итемы не создать (добавить что-нибудь в ячейки), то будет падать

QTableWidgetItem *item = new QTableWidgetItem("Alexu007 нубас");
ui->tableWidget->setItem(0, 0, item);

qDebug() << endl << ui->tableWidget->item(0, 0)->text();
« Последнее редактирование: Май 15, 2013, 23:05 от thechicho » Записан
Alexu007
Гость
« Ответ #31 : Май 15, 2013, 23:25 »

Код
C++ (Qt)
void MyWidget::MyEventHandler()
   {
 
   ui->tableWidget->setRowCount(3);
   ui->tableWidget->setColumnCount(3);
 
   QTableWidgetItem *item = new QTableWidgetItem("Alexu007 nubas");
   ui->tableWidget->setItem(0, 0, item);
 
   //ui->tableWidget->item(1,1)->setText("Alexu007 nubas");
   return;
   }

Вот так работает (только нубас кракозябрами пишет, я по английски переписал  Улыбающийся ), а если раскомментировать последню строку - вылетает с ошибкой.
Записан
thechicho
Гость
« Ответ #32 : Май 15, 2013, 23:49 »

добавь в main.cpp

    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);
    QTextCodec::setCodecForLocale(codec);

переведи исходники в UTF-8

сможешь пользоваться кириллицией в коде.

//ui->tableWidget->item(1,1)->setText("Alexu007 nubas");
у тебя не создан итем в ячейке (1,1), поэтому падает.
Записан
Alexu007
Гость
« Ответ #33 : Май 16, 2013, 07:33 »

//ui->tableWidget->item(1,1)->setText("Alexu007 nubas");
у тебя не создан итем в ячейке (1,1), поэтому падает.
Спасибо большое. Теперь боле мене понятно, чтобы пользоваться setText в программе, нужно заранее в цикле требуемое кол-во итемов создать. Либо добавлять по одному по мере увеличения таблицы. Я кстати где-то вроде видел что-то похожее, но не понял, почему так.
Записан
Alexu007
Гость
« Ответ #34 : Май 16, 2013, 09:13 »

Код
C++ (Qt)
   QIcon icon("C:/temp/qwe.png");
   QTableWidgetItem *icon_item = new QTableWidgetItem;
   icon_item->setIcon(icon);
   icon_item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
   ui->tableWidget->setItem(0, 1, icon_item);

Изображение в ячейку выводит, но очень маленькое. Независимо от размера исходной кртинки. Похоже, она из любой картинки маленькую иконку делает.  Как его растянуть на всю ячейку?
« Последнее редактирование: Май 16, 2013, 09:18 от Alexu007 » Записан
lighting
Гость
« Ответ #35 : Май 16, 2013, 09:21 »

Ну что тут сказать? Для работы с обычной стандартной кнопкой достаточно 3-х строчек кода:

Код
C++ (Qt)
public slots: void MyEventHandler();
 
QObject::connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(MyEventHandler()));
 
void MyWidget::MyEventHandler()   {   }
....
Я, правда, не занимался специальными изысканиями, но почему-то уверен, что приведённых в начале поста 3-х строчек кода нет ни в справке, ни у Шлея. Я их нашёл на просторах интернета, где какой-то умелец сжалился, и научил, как практически пользовать эту QpushButton.
Ну и как вам помогла жалось этого умельца если вы все равно не знаете куда эти строчки вставить?
Как я уже писал выше вы взялись не за то, QTableWidget достаточно сложен для начинающего и чтобы им пользоваться какую-никакую базу надо иметь.
Записан
Alexu007
Гость
« Ответ #36 : Май 16, 2013, 09:58 »

Ну и как вам помогла жалось этого умельца если вы все равно не знаете куда эти строчки вставить?
Помогла. Он написал, куда эти строчки вставлять, в какие файлы и в какие места. В раздел "готовые решения" загляните - я там калькулятор выложил, написанный как раз благодаря этим строчкам. Работает.


Цитировать
Как я уже писал выше вы взялись не за то, QTableWidget достаточно сложен для начинающего и чтобы им пользоваться какую-никакую базу надо иметь.
Что значит сложен? Таблица сложна для моего понимания? Она состоит из строк и столбцов и предназначена для вывода информации. Этого достаточно для новичка, а если мне нужны будут всякие углублённые возможности таблицы - я засяду за учебники.

Как бы QTableWidget ни был сложен, я уже умею туда строки текста вставлять и иконки. Только вот пока не получается вместо иконки полноценное изображение вывести.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #37 : Май 16, 2013, 10:03 »

Как его растянуть на всю ячейку?
Код
C++ (Qt)
void QAbstractItemView::setIconSize( const QSize& size );

Имхо, для твоей задачи удобнее будет использовать QListWidget в режиме IconMode.
« Последнее редактирование: Май 16, 2013, 10:05 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
Alexu007
Гость
« Ответ #38 : Май 16, 2013, 10:37 »

Код
C++ (Qt)
   QSize& size(64, 64);
 
   void QAbstractItemView::setIconSize(const QSize& size);

Ругается на вторую строчку: invalid use of qualified-name 'QAbstractItemView::setIconSize'
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #39 : Май 16, 2013, 10:42 »

Мде... Похоже у нас громадные пробелы в знаниях С++.
Записан

Qt 5.11/4.8.7 (X11/Win)
Alexu007
Гость
« Ответ #40 : Май 16, 2013, 11:06 »

Мде... Похоже у нас громадные пробелы в знаниях С++.
Тема называется "Вопросы новичков".
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #41 : Май 16, 2013, 11:08 »

Тема называется "Вопросы новичков".
Да, только вот форум Qt, а не C++.
Записан

Qt 5.11/4.8.7 (X11/Win)
Alexu007
Гость
« Ответ #42 : Май 16, 2013, 11:58 »

Ну и сам разобрался... просто затупил чё-то с этим воидом...

Код
C++ (Qt)
ui->tableWidget->setIconSize(QSize(32, 32));

А иконки всегда только квадратные? Прямоугольные картинки по размеру ячейки нарисовать никак? Меня пока квадраты более чем устраивают, но так, на будущее...
Записан
Alexu007
Гость
« Ответ #43 : Май 16, 2013, 22:25 »

Тут ещё такое дело. Иконки имеют отступ от левой линии таблицы, в результате имеем визуально несимметричные линии. Некрасиво. Как бы вывести прям за линией таблицы?
Записан
Alexu007
Гость
« Ответ #44 : Май 17, 2013, 07:22 »

Похоже, tableWidget не подходит для игр с квадратным игровым полем - типо шашки шахматы и т.п. А жаль - сетка уже готова, клик по ячейкам обрабатывается. А нельзя в эту ячейку таблицы не иконку вывести (иконки не растягиваются на всю ячейку...) а просто изображение?

Либо посоветуйте другой компонент, который для этого подойдёт - типо таблицы изображений.

Или проще с нуля рисовать всё игровое поле?
« Последнее редактирование: Май 17, 2013, 07:25 от Alexu007 » Записан
Страниц: 1 2 [3] 4 5   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.181 секунд. Запросов: 23.