Que GTK widgets combinação de uso para a coluna de rolagem de widgets?
Pergunta
Eu estou trabalhando com PyGTK, tentando chegar a uma combinação de widgets que irá fazer o seguinte:
- Deixe-me acrescentar um número infinito de widgets em uma coluna
- Fornecer uma barra de rolagem vertical para chegar a esses que funcionam fora do fundo
- Faça os widgets' largura ajustar para preencher o espaço horizontal disponível quando a janela é redimensionada
Graças -. Eu sou novo para GTK
Solução
- Um número infinito de widgets em uma coluna:. Soa como uma GtkVBox barra de rolagem
- Vertical:. Coloque o seu VBox em um GtkScrolledWindow
- Horizontal alongamento: Isto requer definindo as propriedades adequadas para o VBox, ScrolledWindow, e seus outros widgets. Pelo menos em Glade os padrões parecem lidar principalmente este (Você provavelmente vai querer mudar a política de rolagem do ScrolledWindow).
Agora, para o truque. Se você acabou de fazer o que eu listei acima, o conteúdo do VBox vai tentar redimensionar verticalmente como horizontalmente, e você não vai ter a sua barra de rolagem. A solução é colocar o seu VBox em um GtkViewport.
Assim, a hierarquia final é ScrolledWindow (Viewport (VBox (widgets))).
Outras dicas
O que Steve disse em código:
vbox = gtk.VBox()
vbox.pack_start(widget1, 1, 1) ## fill and expand
vbox.pack_start(widget2, 1, 1) ## fill and expand
vbox.pack_start(widget3, 1, 1) ## fill and expand
swin = gtk.ScrolledWindow()
swin.add_with_viewport(vbox)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow