crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Не отображается иконка в трее, если приложении стоит в автозагрузке
RazrFalcon
  опции профиля:
сообщение 23.2.2011, 22:01
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Ubuntu 10.10 + QT 4.7 из реп
Приложение стартует вместе с системой, но иконки в трее нет. Просто пустое место по которому можно клацать и вызывать контекстное меню проги.
Если запускать вручную (даблклик =)) то все нормально.
Работает на основе примера System Tray.
Раскрывающийся текст
MainWindow::MainWindow()
{
    createLayout();

    settings = new QSettings(QSettings::IniFormat, QSettings::UserScope,
                             "wallpapers-changer", "wallchanger");

    //Timer
    switchTimer = new QTimer(this);
    connect(switchTimer, SIGNAL(timeout()), this, SLOT(set_image()));

    connect(closeButton,SIGNAL(clicked()),this,SLOT(quitButton_clicked()));
    connect(startButton,SIGNAL(clicked()),this,SLOT(start_clicked()));
    connect(clearButton,SIGNAL(clicked()),this,SLOT(clear_clicked()));
    connect(addButton,SIGNAL(clicked()),this,SLOT(add_clicked()));

    connect(onlynames_checkBox,SIGNAL(stateChanged(int)),this,
            SLOT(on_onlynames_checkBox_stateChanged(int)));
    connect(timeBox,SIGNAL(valueChanged(int)),this,SLOT(on_timeBox_valueChanged(int)));
    connect(tableWidget,SIGNAL(cellDoubleClicked(int,int)),this,
            SLOT(on_tableWidget_cellDoubleClicked(int,int)));
    connect(pos_comboBox,SIGNAL(currentIndexChanged(QString)),this,
            SLOT(on_pos_comboBox_currentIndexChanged(QString)));
    connect(order_comboBox,SIGNAL(currentIndexChanged(QString)),this,
            SLOT(order_comboBox_currentIndexChanged(QString)));

    //Tray menu
    QAction* restoreAction = new QAction(tr("&Restore"), this);
    connect(restoreAction, SIGNAL(triggered()), this, SLOT(showNormal()));
    QAction* quitAction = new QAction(tr("&Quit"), this);
    connect(quitAction, SIGNAL(triggered()), qApp, SLOT(quit()));
    QMenu* trayIconMenu = new QMenu(this);
    trayIconMenu->addAction(restoreAction);
    trayIconMenu->addAction(quitAction);
    delicon = new QIcon("/usr/share/icons/gnome/48x48/actions/edit-delete.png");

    if (settings->value("settings/show_only_names")==true)
        onlynames_checkBox->setCheckState(Qt::Checked);
    timeBox->setValue(settings->value("settings/scroll_time", 10).toInt());
    scroll_label->setText(settings->value("settings/in", "Scroll time(minutes):").toString());
    pos_comboBox->setCurrentIndex(settings->value("settings/img_position", 0).toInt());
    order_comboBox->setCurrentIndex(settings->value("settings/img_order",0).toInt());

    //Set tray icon
    trayIcon = new QSystemTrayIcon(this);
    trayIcon->setContextMenu(trayIconMenu);
    trayicon = new QIcon("../wall/icon.png");

    connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
    this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));

    setWindowTitle(tr("Wallpapers Changer [beta2]"));

    allFiles=load_and_show();
    rand_numbers=create_randlist();
    if (allFiles.count()!=0) start_clicked();

    trayIcon->setIcon(*trayicon);
    setWindowIcon(*trayicon);
    trayIcon->show();
}

Основной кусок, прога банально листает обоины.

Сообщение отредактировал RazrFalcon - 23.2.2011, 22:02
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 23.2.2011, 22:13
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


  trayicon = new QIcon("../wall/icon.png");

А почему ты думаешь, что в первом случае система будет заходить в папку с твоей программой для ее запуска? ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 23.2.2011, 22:16
Сообщение #3


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Мысль понял :)
Но не вижу решения... Если я запускаю ее из папки она ведь нормально стартует. И через консоль тоже.
А чем автостарт ее не устроил. PS с полным путем к иконке, лежащей в хоуме, тоже пробовал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 23.2.2011, 22:19
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(RazrFalcon @ 23.2.2011, 22:16) *
PS с полным путем к иконке, лежащей в хоуме, тоже пробовал.

Значит где то ты ошибся, с полным путем должно было работать.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
RazrFalcon
  опции профиля:
сообщение 23.2.2011, 22:22
Сообщение #5


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Пробовал я еще на старом коде, на этом(новом) пашет. :)
Я так понимаю, что объявление иконки должно быть в самом конце, или без разницы? У меня раньше она в самом начале прописывалась, там даже полный путь не помогал.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 23.2.2011, 22:25
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

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




Репутация:   44  


Цитата(RazrFalcon @ 23.2.2011, 22:22) *
Я так понимаю, что объявление иконки должно быть в самом конце, или без разницы? У меня раньше она в самом начале прописывалась, там даже полный путь не помогал.

Должно быть все равно где объявлять.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.2.2011, 22:40
Сообщение #7


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

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

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




Репутация:   94  


RazrFalcon, попробуй использовать внутри программы полный абсолютный путь к приложению (см. QCoreAplication), а к нему добавляй относительный, для поиска картинки.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 26.11.2024, 1:04