Pergunta

Eu quero colocar um Canvas com uma imagem na minha janela, e então eu quero pacote widgets em cima dele, então a tela funciona como um fundo.

É possível ter dois estados para o gerente pack: um para um conjunto de widgets e outro para outro conjunto

Foi útil?

Solução

A resposta à sua pergunta específica não é. Você não pode ter dois estados ou usar embalar duas maneiras diferentes no mesmo pai.

No entanto, o que eu acho que você quer alcançar é simples. Usar os recursos built-in da tela para criar um item de imagem que faz parte da tela, em seguida, embalar as coisas na tela como se fosse um quadro.

Você pode fazer uma coisa semelhante através da criação de um widget etiqueta com uma imagem, em seguida, embalar seus outros widgets no rótulo.

Uma vantagem de usar uma tela é que você pode facilmente telha uma imagem para preencher toda a tela uma imagem de fundo repetindo com assim como a janela cresce a imagem continuará a preencher a janela (é claro que você pode apenas usar um suficientemente grande originais a imagem ...)

Outras dicas

Eu acredito que a resposta de Bryan é provavelmente a melhor solução geral. No entanto, você também pode querer olhar para o lugar gerenciador de geometria . O local gerenciador de geometria permite especificar o tamanho exato ea posição do widget ... que pode ser entediante rapidamente, mas vai fazer o trabalho.

... acabou por ser inviável, porque eu queria acrescentar etiquetas e mais telas para isso, mas não consigo encontrar alguma maneira de fazer seus planos de fundo transparente

Se for aceitável para carregar uma extensão adicional, dê uma olhada Tkzinc . A partir do web site,

Tkzinc (historicamente chamado de zinco) widget é muito semelhante à lona Tk em que ambos apoio estruturado gráficos. Como a tela, Tkzinc implementos itens usado para exibir entidades gráficas. Esses itens podem ser manipulados e ligações podem ser associados com eles para implementar comportamentos de interação. Mas, diferentemente dos Canvas, Tkzinc pode estruturar os itens em uma hierarquia, tem suporte para escala e rotação, recorte pode ser definido para sub-árvores da hierarquia de itens, suportes curvas muti-contorno. Ele também fornece renderização avançada com a ajuda de OpenGL, como o gradiente de cor, suavização, transparências e um item de triângulos.

Atualmente estou usando-o em um projeto TCL e estou bastante satisfeito com os resultados. Extensões para TCL, Perl e Python estão disponíveis.

Não sem trocar árvores de widgets dentro e para fora, que eu não acho que pode ser feito de forma limpa com Tk. Outros toolkits pode fazer isso um pouco mais elegante.

  • COM / VB / MFC pode fazer isso com um controle ActiveX - você pode ocultar / mostrar vários controles ActiveX na mesma região. Qualquer um dos recipientes vai deixar você fazer isso alterando a criança ao redor. Se você estiver fazendo um programa específico-janelas que você pode ser capaz de realizá-lo desta forma.
  • QT também irá permitir que você faça isso de uma forma similar.
  • GTK é um pouco mais difícil.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top