Como criar um subdiretório para um projeto QtCreator?

102

Eu gostaria de dividir meu projeto Qt em vários diretórios porque ele está crescendo muito. No entanto, quando clico em navegar no QtCreator, não há 'Adicionar diretório' e não existe tal coisa em 'Adicionar novo'. Isso pode ser feito de alguma forma?

gruszczy
fonte
O que há de errado em criar um subdiretório com o gerenciador de arquivos?
Ariya Hidayat
2
Posso criar dirs manualmente, mas não os vejo no navegador de projetos.
gruszczy
5
@Ariya Você deve ter pelo menos até votou esta como este é um recurso disponível na maioria dos IDEs e as pessoas serão perguntando sobre isso.
Piotr Dobrogost
49
Com todo o respeito, mas Qt-Creator é péssimo em usabilidade (em relação à interface do usuário) Como um desenvolvedor, se você vir que alguém tem que perguntar como adicionar um subdiretório a um projeto em um fórum público, então você sabe que há um problema sério com isso IDE.
Edenshaw
4
@GabrielF muito fácil ...? está consertado...? Por que não podemos simplesmente selecionar "criar diretório" (ou "adicionar diretório" para estar no espírito do Criador) como na maioria dos IDEs. É a funcionalidade básica, que até a maioria dos editores de baixa qualidade tem - você pode criar um diretório no bloco de notas! Não deveria haver um "método" para realizar uma tarefa tão simples e básica - deveria ser óbvio.
doc

Respostas:

40

Um método que você pode usar é adicionar um arquivo de inclusão de projeto para cada subdiretório.

O Qt Creator os exibe na GUI de uma forma aninhada e permite que você adicione arquivos a eles.

por exemplo

em project.pro

include(folder1/include.pri)

na pasta1 / include.pri

HEADERS += MyClass.h
SOURCES += MyClass.cpp

etc

usuario
fonte
Posso fazer esse aninhamento a partir do IDE ou tenho que definir manualmente esses arquivos e diretórios?
gruszczy
1
Dei uma olhada rápida e acho que você tem que adicionar os arquivos de inclusão manualmente, mas ao adicionar novos arquivos a um projeto, o Qt Creator permitirá que você os adicione a um arquivo de inclusão em vez do arquivo de projeto principal.
Nick
3
OK, espero que eles adicionem esse recurso na nova versão.
gruszczy
2
Considere minha resposta: stackoverflow.com/questions/24959959/…
Erowlin
24

Responda : Como criar uma pasta ou subdiretório para um projeto no QtCreator?

Antes do QT Creator 3.1.x, você pode clicar com o botão direito no seu projeto -> " adicionar novo ... " e alterar o caminho para a pasta desejada.

Qt adicionar novo ...

A pasta deve existir , o Qt não a criará para você.

Adicione uma nova classe e mude a pasta padrão Qt

Qt cuida do caminho em seu arquivo .pro.

Qt cuida do caminho em seu arquivo .pro

Qt cuida do caminho em seu arquivo .pro

É isso aí !

Erowlin
fonte
1
Deve-se notar que isso não funcionará ao usar projetos CMake no QtCreator.
Étienne
@ Étienne, você está certo. Não está funcionando. O que devemos fazer neste caso?
pushandpop
20

Acabei de ter o mesmo problema e descobri uma resposta relativamente simples.

Tudo que você precisa fazer para mover file.cpppara newFolderé renomear o arquivo (clique com o botão direito -> Renomear) para newFolder\file.cpp.

O Qt Creator irá movê-lo para a nova pasta e atualizar automaticamente o .proarquivo.

Avidan Borisov
fonte
3
não se esqueça que a pasta já deveria existir antes da substituição
Anton
2
Se o arquivo movido está sob controle do GIT, o criador do Qt também cuida das mudanças necessárias no GIT?
Silicomancer
@Silicomancer Git está lidando com arquivos movidos para você, não para o Qt Creator. Não há nada que você precise fazer a não ser mover o arquivo por meio desta solução alternativa descrita (usando "renomear") no Qt Creator. Se você estivesse movendo o arquivo apenas no sistema de arquivos, o Git reconheceria isso, mas o caminho do arquivo não seria ajustado no .PROarquivo do Qt Creator ...
R Yoda
@Silicomancer Sim. Se o qtreacor reconheceu que o projeto tem versão com git, ele duplicará todas as ações. Isso inclui, pelo menos, a criação, exclusão, renomeação e movimentação de arquivos.
Equilibrius
9

A partir da versão 1.2.90, o Qt Creator mostra as subpastas que existem na pasta do projeto como ramificações na árvore do projeto se apenas a opção Filtrar árvore não estiver configurada para Simplificar a árvore .

Piotr Dobrogost
fonte
7

Parece impossível criar subdiretórios no QT-CREATOR.

Experimente o seguinte:

  1. Crie vários subdiretórios, com um explorador de arquivos ou por linha de comando dentro da pasta do projeto (por exemplo net / , gui / , test / , data / ...)!
  2. Mova os arquivos existentes para essas novas pastas. E mude seus caminhos dentro do arquivo * .proj !
  3. Crie novos arquivos também a partir das novas pastas (Por AddNew ... )!

... QT-CREATOR exibe apenas as pastas que contêm arquivos que foram gravados com seus nomes em um arquivo * .pro ou * .pri. No nível raiz, o QT-CREATOR distingue entre HEADERS, SOURCES, FORMS e OUTROS ARQUIVOS. Dentro dessas pastas raiz, você pode encontrar subpastas do próprio projeto, repetidamente. (Não abordado neste texto, está dividido em subprojetos.)

CWIMMER
fonte
Verdade. Se um projeto Qt for visualizado dentro do Qt Creator e os priprojetos forem usados ​​apropriadamente, o IDE exibe as coisas de uma forma aninhada agradável. No entanto, no nível do sistema de arquivos, todos os arquivos (exceto ao usar subdire criar subprojetos) estão no mesmo nível de hierarquia de diretório. Isso torna as coisas um pouco complicadas quando alguém olha para o projeto em um explorador de arquivos (Windows Explorer, Thunar, Nautilus etc.). Se for necessária uma estrutura de arquivo adequada, fazer as coisas manualmente (como @CWIMMER sugere aqui) é o único caminho a percorrer.
rbaleksandar
3

Você pode criar um subdiretório contanto que tenha um arquivo que deseja criar nele. Vá para o diretório pai e "Adicionar" um arquivo a ele. "Navegue" para o local e crie uma nova pasta dentro da janela de navegação. Concordo, isso não é muito intuitivo.

michaeljt
fonte
3

Quando você cria uma nova classe em seu projeto Qt, você pode escolher o caminho neste assistente e aqui especificar novas pastas como DAL, BO, UI, ...

Miguel Rodriguez
fonte
0

Quando meu diretório 'data' tinha apenas um subdiretório 'model', ele apenas aparecia como "data / model". Depois de adicionar 'dao' como outro subdiretório, ele exibia os dados com a maneira tradicional +/- para revelar o modelo e o dao.

James Wald
fonte
0

Aqui está o que eu fiz:

  1. Na pasta do projeto (fora do IDE), crie diretórios nos quais gostaria de colocar seu código e mova seus arquivos de origem para esses diretórios.

    • Digamos que você coloque "foo.cpp" e "foo.h" no diretório "foo".
  2. Em seu arquivo "* .pro", vá para cada linha que faz referência aos arquivos de origem que você moveu e adicione o nome do diretório, seguido por '/' na frente do nome do arquivo de origem.

.pro antes da Etapa 2:

SOURCES += main.cpp \
foo.cpp

HEADERS  += \
foo.h \

.pro após a Etapa 2:

SOURCES += main.cpp \ 
foo/foo.cpp

HEADERS += \
foo/foo.h
  1. Reconstrua seu projeto para testar.
Nicholas Mathern
fonte