Sunday 15 October 2017

Qmetaobject Connecttslotsbyname Sem Sinal Correspondente Forex


Define um menu QT, que é automaticamente conectado com a função de ação onactionOpentriggered (). Mais tarde, eu quero passar uma string de nome de arquivo para esta função para chamar esta função manualmente em uma condição especial. Então eu mudei a assinatura da função para o onactionOpentriggered (const char filenamein). Após esta mudança, o programa está funcionando bem, mas há uma queixa no terminal, QMetaObject :: connectSlotsByName: Nenhum sinal correspondente para onactionOpentriggered (const char). Estou me perguntando o que aconteceu e como posso adicionar argumentos para essas funções de ação de menu. O mecanismo de autoconfiguração Qt não consegue encontrar um sinal adequado para o seu slot. Para o item do menu não há sinal que corresponda ao seu slot com um argumento, e o sinal não deve ter menos argumentos do que o slot. Você pode alterar o nome do slots para que ele não tente encontrar um sinal correspondente e use QObject :: connect diretamente em vez de QMetaObject :: connectSlotsByName. Além disso, você terá que atribuir valor padrão ao argumento do seu argumento se desejar se conecte para funcionar com o sinal disparado. Respondeu 22 de junho às 20: 09 Esta pergunta já tem uma resposta aqui: percebo que esta pergunta foi feita antes, embora minhas circunstâncias sejam ligeiramente diferentes e não encontrei nenhuma das outras respostas úteis, sou novo no QTreator. Estou tentando construir um projeto com o QTCreator, que funciona bem no OSX, mas quando o crio com o Ubuntu recebo esse erro: o projeto ainda é construído e funciona parcialmente, mas não irá gravar em um dispositivo externo (o ponto do programa). Alguém pode dar um passo a passo sobre o que eu preciso fazer, as respostas anteriores disseram sobre a conexão explícita de coisas, mas não entrou em detalhes sobre como fazer isso. Todas as dicas sobre como procurar o projeto para descobrir onde fazer essa correção (não escrevi o programa original). Qualquer ajuda é apreciada Tom perguntou 24 de junho às 10:07 marcado como duplicado por Jan Dvorak. Rene. Hyde. 4dgaurav. Xan 24 de junho 14 às 13:06 Esta pergunta foi feita antes e já tem uma resposta. Se essas respostas não respondem totalmente a sua pergunta, faça uma nova pergunta. Só porque é o mesmo erro, não significa que seja a mesma causa e, portanto, não devem ser agrupados. No seu link, eles adicionaram um parâmetro, então, claro, eles não podiam combinar. Mas tudo o que eu fiz é trocar plataformas (sem alteração no código do projeto), então obv alguma coisa está errada aqui. Ndash holmeswatson 24 jun 14 às 10:27 Se esta trabalhar filho de uma plataforma, mas não em outra, então uma possível razão é que você não possui uma compilação limpa em uma das plataformas. Para ter uma compilação limpa, primeiro limpe todos os arquivos extra do diretório de origem (por exemplo, usando ferramentas de controle de versão para remover todos os arquivos não-versionados). Isso é importante, porque o compilador procurará alguns arquivos preferencialmente no diretório de origem e, se houver arquivos originais gerados (moc .. ui. h. etc), eles serão usados ​​em vez dos direitos no diretório de compilação. Em seguida, certifique-se de ter construções de som ativadas no Qt Creator para o projeto e a compilação, e faça uma compilação limpa. Ou apenas obtenha um novo checkoutclone do controle de versão para um diretório limpo. Outro motivo possível é o uso de ifdef resultando em resultados de compilação diferentes em diferentes plataformas. Ou o arquivo. pro de projetos também pode ter seções condicionais, resultando em diferentes arquivos sendo construídos em plataformas diferentes ou comandos de compilação diferentes sendo usados. Respondeu 24 de junho às 12:15 2017 Stack Exchange, Inc

No comments:

Post a Comment