Icon for linux application
-
-
@Pl45m4 Thanks!! But should it look like this?
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); icon(); } void MainWindow::icon() { QMainWindow::setWindowIcon(QIcon("qrc:/new/icons/img/information.png")); }
Because at startup the taskbar still displays the standard icon
This also works
{ ui->setupUi(this); QMainWindow::setWindowIcon(QIcon("qrc:/new/icons/img/information.png")); }
Because at startup the taskbar still displays the standard icon
If you want to have your icon as "shortcut" / desktop icon on Linux you need to follow @JonB 's solution in the topic linked by @jsulm above.
-
Hello, how could i add icon for my app? I need the icon to be displayed in the system tray when launched, I am writing the application for Ubuntu and other Linux systems, my build system is cmake, and the language is C++ (I don’t know if this is important)
-
@jsulm , i tried somthing from that, but probably did something wrong, I think I didn’t really understand where to write this and how to point to an image if it is in .qrc resources
-
@atom_352 Did you try QMainWindow::setWindowIcon(), I think this is what you need and you can use an icon embedded in a rosource file.
-
@jsulm , Yes, I tried to use exactly this, but where can I write this, and is it necessary to use the qicon class?
@atom_352 said in Icon for linux application:
but where can I write this
Anywhere ;-)
But I don't think your neighbors will like you if you paint that on their door.However, to set your MainWindow icon you need to write it in a function that is called when creating your
QMainWindow
:)is it necessary to use the qicon class
You can construct a
QIcon
from file, either QRC or directly from file string. -
@atom_352 said in Icon for linux application:
but where can I write this
Anywhere ;-)
But I don't think your neighbors will like you if you paint that on their door.However, to set your MainWindow icon you need to write it in a function that is called when creating your
QMainWindow
:)is it necessary to use the qicon class
You can construct a
QIcon
from file, either QRC or directly from file string.@Pl45m4 Thanks!! But should it look like this?
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); icon(); } void MainWindow::icon() { QMainWindow::setWindowIcon(QIcon("qrc:/new/icons/img/information.png")); }
Because at startup the taskbar still displays the standard icon
-
@Pl45m4 Thanks!! But should it look like this?
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); icon(); } void MainWindow::icon() { QMainWindow::setWindowIcon(QIcon("qrc:/new/icons/img/information.png")); }
Because at startup the taskbar still displays the standard icon
This also works
{ ui->setupUi(this); QMainWindow::setWindowIcon(QIcon("qrc:/new/icons/img/information.png")); }
Because at startup the taskbar still displays the standard icon
If you want to have your icon as "shortcut" / desktop icon on Linux you need to follow @JonB 's solution in the topic linked by @jsulm above.
-
This also works
{ ui->setupUi(this); QMainWindow::setWindowIcon(QIcon("qrc:/new/icons/img/information.png")); }
Because at startup the taskbar still displays the standard icon
If you want to have your icon as "shortcut" / desktop icon on Linux you need to follow @JonB 's solution in the topic linked by @jsulm above.
-
A atom_352 has marked this topic as solved
-
I am using AppImages (created with linuxdeploy and linuxdeployqt) to have portable applications. These rely on a .desktop file which is supposed to be portable between KDE and Gnome (and hopefully other desktop environments). The .desktop file plays together with the xdg-utils. You can install these with xdg-desktop-menu or xdg-desktop-icon. I'd expect that through this they would also immediately show the icon in the taskbar when launched this way. (You can even register file extensions with xdg-mime and than open file with the associated program with xdg-open–much like macOS's
open
command.)If I am not mistaken, this is the official link for .desktop files: https://specifications.freedesktop.org/desktop-entry-spec/latest/index.html
-
To add a system tray icon in a C++ app on Ubuntu/Linux using CMake, you can use libappindicator or Qt (if using Qt framework). Here's a short summary:
Use libappindicator for GTK-based apps:
Install: sudo apt install libappindicator3-dev
Link in CMake: target_link_libraries(your_app appindicator3-0.1)
Set icon: app_indicator_set_icon_full(indicator, "icon-name", "description");
Or use Qt:
Use QSystemTrayIcon and set icon with setIcon(QIcon(":/icon.png"));
Make sure the icon file is included in your build and accessible at runtime.