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

Foi útil?

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
scroll top