crossplatform.ru

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


  Ответ в Пропадают иконки в таблице.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
RazrFalcon Дата 19.3.2011, 1:04
  Вот, это старый вариант, я уже переписал, что бы работало )

PS: пути к иконкам нужно изменить.
abc Дата 19.3.2011, 0:55
  блин, выложи архив проекта, я не могу с этим жить)
RazrFalcon Дата 18.3.2011, 23:51
 
QTableWidgetItem* Item = new QTableWidgetItem();
Item->setIcon(icon);

Проблема решена.
Как не пытался, любой widget пропадает из-за скрола.
abc Дата 17.3.2011, 23:49
  "не ровно половина, но где то посредине, обычно. Я бы сказал что один раз пропадает, к примеру, верхняя, то во второй пропадет нижняя, вот так по переменно. Если долго клацать - пропадают все."

я как на фильм проклятье пришёл в кино)


кстати, QTableWidgetItem можно назначить иконку... зачем там вообще кнопку лепить? кроме как затем чтоб её слот clicked() использовать

кстати, кстати, тебе не нужен QList кнопок, достаточно же просто поместить их в таблицу
RazrFalcon Дата 17.3.2011, 23:08
 
Цитата(abc @ 17.3.2011, 21:54) *
по поводу остального: боже мой

Что именно?
abc Дата 17.3.2011, 22:54
 
Цитата(RazrFalcon @ 17.3.2011, 22:50) *
Сделал QList<QLabel *>, каждому присвоил иконку. Затем их впихнул в 1-й столбец. Сделал обработчик нажатия, ака cellClicked(int,int).

а разве нельзя
QList<QToolButton *> или пушбаттон
и соединить их clicked() с твоим слотом
не надо будет проверять, какой столбец

по поводу остального: боже мой


"Тут думаю поможет декомпозиция + фикс кармы) " ыыыы)

рассуй комментрии в set_image()
и это покажи: create_randlist()

хотя я уже потерял всякую нить, где-то клацаем, что-то пропадает, что-то не пропадает... наверняка есть закономерность, найди её!

Rocky Дата 17.3.2011, 22:51
  Тут думаю поможет декомпозиция + фикс кармы)
RazrFalcon Дата 17.3.2011, 22:50
  Сам запутался и людей запутал :lol:
Решил пойти по пути наименьшего сопротивления.
Сделал QList<QLabel *>, каждому присвоил иконку. Затем их впихнул в 1-й столбец. Сделал обработчик нажатия, ака cellClicked(int,int).
Потом в самом слоте смотрим: если нажато по 1-у столбцу - удаляем строку, если не по первому - ничего не делаем.
Функции нужные выполняет.
Но теперь QLabel пропадает :blink:

>>которая половина? какая закономерность?
не ровно половина, но где то посредине, обычно. Я бы сказал что один раз пропадает, к примеру, верхняя, то во второй пропадет нижняя, вот так по переменно. Если долго клацать - пропадают все.
Главное: пропадает только когда свернуто в трей.

Так как сейчас обрабатывается нажатие на таблицу, а не кнопку, то после клика по "пустому месту", где должна быть иконка, снова появляются все иконки.

Обработчик трея.
Раскрывающийся текст
void WallWindow::iconActivated(QSystemTrayIcon::ActivationReason reason)
{
    if (reason==3 || reason==2)
        set_image();
}

int WallWindow::set_image()
{
    if (row_num!=0)
    {
        number=row_num;
        order_comboBox_currentIndexChanged("Linear");
    }
    else number=rand_numbers.first();

    if (order_comboBox->currentText()=="Linear" && row_num==0)
    {
        number=linear_list.first();
        qDebug()<<"Set image:"<<allFiles.at(number).absoluteFilePath();
        processStart("/desktop/gnome/background/picture_filename",
                     allFiles.at(number).absoluteFilePath());
        linear_list.removeFirst();
    }
    else
    {
        qDebug()<<"Set image:"<<allFiles.at(number).absoluteFilePath();
        processStart("/desktop/gnome/background/picture_filename",
                     allFiles.at(number).absoluteFilePath());
        if (row_num==0) rand_numbers.removeFirst();
    }

    tableWidget->scrollToItem(tableWidget->item(number,1),QAbstractItemView::PositionAtTop);
    tableWidget->horizontalScrollBar()->setValue(0);
    trayIcon->setToolTip("Now: "+allFiles.at(number).fileName());
    if (rand_numbers.count()==0) rand_numbers=create_randlist();
    if (linear_list.count()==0) create_randlist();

    row_num=0;
    return 0;
}
abc Дата 17.3.2011, 22:35
 
Цитата(RazrFalcon @ 17.3.2011, 22:28) *
По нажатии на иконке в трее происходит переход на следующую строку в таблице.


Цитата(RazrFalcon @ 17.3.2011, 22:28) *
Листает в перемешку, а не последовательно.


так по какому закону листает-то? рандом? код дай

Цитата(RazrFalcon @ 17.3.2011, 22:28) *
Разворачиваем из трея и видим то, что половина кнопок пропала.

которая половина? какая закономерность?

про скриншот всё равно не понял.. я же не знаю чем "обычно" отличается от "иногда".. какое поведение нормальное, а какое на скриншоте
RazrFalcon Дата 17.3.2011, 22:28
 
Цитата(abc @ 17.3.2011, 21:14) *
я не понимаю твоё описание, по пунктам опиши действия подробно

1) Программа заполняет таблицу списком изображений. Запускается свернутой в трей.
2) По нажатии на иконке в трее происходит переход на следующую строку в таблице.
3) Разворачиваем из трея и видим то, что половина кнопок пропала.

Если не сворачивать в трей и нажимать по иконке в трее - тоже будет листать таблицу, но иконки пропадать не будут. Листает в перемешку, а не последовательно.


Цитата(abc @ 17.3.2011, 21:14) *
и что значит "может быть что-то в духе"?
Имеется в виду, что то что на скриншоте показано - случается иногда, из-за того что в первой колонке кнопки.
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 5:06