User:Catarino

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Qt for Windows

Dicas (Grupo Qt Brasil)

Qual a diferença do Instalador Oficial entre o online/offline?

R = Obviamente o on necessita de internet durante a instalação do início ao fim. E o off necessita de um teste de conexão durante a tela de login do instalador, mas a instalação em si é offline.



Qual a diferença entre o compilador do VS2015(v140) e VS2017(v141)? E porquê tem os dois?

R = Além do v141 ser mais atualizado como, por exemplo, o uso do C++17. O que difere na prática é que o v141 lhe permite usar a API WinRT, ou seja, você pode desenvolver aplicações no Qt ao estilo UWP (x86/x64) usado no Windows 8/8.1/10 e também o clássico estilo Win32 (x64 only) {não me refiro a plataforma x86 nesse caso, mas sim a outra API do Windows NT }, porém o v140 somente no estilo WinNT (x86/x64). Se você estiver usando esta opção não esqueça de instalar o WinSDK, no caso do Windows 10 instale duplamente a versão build inicial v10.240 e a versão atual do mesmo. Pois o inicial tem o depurador “cdb.exe” quanto os mais recentes não o acrescentam e consequentemente o Qt Creator não detecta.



E o MinGW [Minimal GNU for Windows]?

R = O instalador oficial lhe permite baixar usando uma versão obsoleta e no qual não lhe impede de aprender, mas também não te ajuda em relação as libraries (*.dll, *.a). Já que a Microsoft foca qualquer desenvolvimento de aplicação no Windows seja usado o MSVC , no caso posso citar aqui o package manager (vcpkg) que baixa o código fonte e compila usando MSVC. Mas para MinGW temos como alternativa mais moderna o Msys2 , no qual você na maioria das vezes não precisa compilar nada, pois já vem compilado e ele lembra muito a distro ArchLinux usando o pacman. Então se no caso mais comum de projeto, ex.:

  • Criar uma aplicação de Banco de Dados usando Mysql, Sqlite, Postgresql e Firebird.

Você pode baixar o Qt(x86/x64) usando o terminal do Msys2 e poderá também baixar de forma opcional as libraries adicionais no caso do plugin pgsql e fbsql.

Depend. opcionais    : mingw-w64-(i686 ou x86_64)-libmariadbclient
                       mingw-w64-(i686 ou x86_64)-firebird2
                       mingw-w64-(i686 ou x86_64)-postgresql

PS: compile seu projeto no modo release para funcionar com estas dependências!!!

PS: Existem duas builds para baixar que são static e tradicionalmente dynamic. Porém se quiser fazer uma aplicação como do exemplo acima na build static , terá problemas para compilar, ou terá de fazê-lo manualmente recompilando a build com a source do plugin necessário.

Para mais informações sobre MSYS2 for Qt WinDev



Como fazer deploy no Windows?

R = Simples, quando você instala o Qt pelo instalador oficial MinGW/MSVC ele mostra junto aos ícones {QtCreator, Designer, Assistant} um console tendo como parâmetro o diretório do Qt no qual pode procurar a pasta do seu projeto usando o cmd. Já no Msys2 você terá que abrir o terminal dele usando como parâmetro o tipo plataforma que deseja utilizar (MinGW32/64), ou simplesmente acrescentar no próprio projeto desta forma, Ex.:

  • Abra o arquivo.pro e coloque:
isEmpty(TARGET_EXT) {
    win32 {
        TARGET_CUSTOM_EXT = .exe
} else {
    TARGET_CUSTOM_EXT = $${TARGET_EXT}
}

win32 {
    DEPLOY_COMMAND = windeployqt
}

CONFIG( debug, debug|release ) {
    # debug
    DEPLOY_TARGET = $$shell_quote($$shell_path($${OUT_PWD}/debug/$${TARGET}$${TARGET_CUSTOM_EXT}))
} else {
    # release
    DEPLOY_TARGET = $$shell_quote($$shell_path($${OUT_PWD}/release/$${TARGET}$${TARGET_CUSTOM_EXT}))
}

# Use += ao invés do = se for usar multiplos QMAKE_POST_LINKs
QMAKE_POST_LINK = $${DEPLOY_COMMAND} $${DEPLOY_TARGET}

PS: Quando se trata de library externo como libSql, entre outros. Você colocará manualmente na pasta do seu Executável(Modo: Release) e não do Projeto source. Se você for usar MSVC não esqueçam de acrescentar na pasta do Executável o vcredist(da mesma plataforma da build), então se for usar um instalador (InnoSetup, NSIS, Advanced Installer, Qt Installer Framework) terá todas as dependências necessárias inclusas.