crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 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 Текстовая версия Сейчас: 12.11.2019, 19:31