cmake - Qt5 linux how to set window icon image -


i have ui have designed in qt designer , have written code in c++. using catkin, cmake, build project. when program launched, application icon looks like,enter image description here .i have image specify, have been unable figure out how work.

my project directory structure looks following

package |--cmakelists.txt |--src     |--main.cpp      |--mainwindow.cpp     |--resources        |--images            |--kitty.png        |--icons.qrc |--include     |--mainwindow.hpp |--ui     |--mainwindow.ui 

my cmakelists.txt file looks like,

cmake_minimum_required(version 2.8.7) project(shared_memory_transport_sliderboard)  find_package(catkin required)  find_package(qt5widgets required) set(cmake_cxx_flags "${cmake_cxx_flags}     ${qt5widgets_executable_compile_flags}") add_definitions(${qt5widgets_definitions})  set(includes_dir ${project_source_dir}/include) set(sources_dir ${project_source_dir}/src)  catkin_package( include_dirs ${includes_dir} depends qt5widgets )  # c++11 include(checkcxxcompilerflag) check_cxx_compiler_flag("-std=c++0x" compiler_supports_cxx0x) if(compiler_supports_cxx0x)     set(cmake_cxx_flags "${cmake_cxx_flags} -std=c++0x") else()     message(fatal_error "the compiler ${cmake_cxx_compiler} has no     c++0x support. please use different c++ compiler.") endif()  include_directories( ${cmake_current_binary_dir} ${includes_dir} ${catkin_include_dirs} ${qt5widgets_include_dirs} )  set(qt_forms ui/mainwindow.ui ) set(qt_moc      ${includes_dir}/${project_name}/mainwindow.h ) set(qt_sources     src/mainwindow.cpp )  qt5_wrap_cpp(qt_moc_hpp ${qt_moc}) qt5_wrap_ui(qt_forms_hpp ${qt_forms}) qt5_add_resources(ui_resources ${project_source_dir}/resources/icons.qrc)  add_executable(smt_sliderboard src/main.cpp ${qt_sources}   ${qt_moc_hpp} ${qt_forms_hpp} ${ui_resources})  target_link_libraries(smt_sliderboard ${catkin_libraries} qt5::widgets)  install(targets smt_sliderboard   archive destination ${catkin_package_lib_destination}   library destination ${catkin_package_lib_destination}   runtime destination ${catkin_package_bin_destination} )  install(directory include/${project_name}/     destination ${catkin_package_include_destination}     files_matching pattern "*.h") 

when compiling code compiler generate qrc_icons.cpp.o object, when run executable icon doesn't show up. icons.qrc file have looks like,

<!doctype rcc> <rcc version="1.0">     <qresource prefix="/icons">         <file alias="kitty">images/kitty.jpg</file>     </qresource> </rcc> 

i have tried adding following in mainwindow.h,

qapplication myapp(argc, argv); qicon appicon; appicon.addfile(":/icons/kitty"); myapp.setwindowicon(appicon); 

and compiles fine, still no icon. feel have tried no luck, help!

from qt resource system docs:

note listed resource files must located in same directory .qrc file, or 1 of subdirectories.

so need directory structure like:

|--images     |--images        |--kitty.png     |--icons.qrc 

update:

you should consult setting application icon in qt docs make sure deal platform-specific issues.


Comments