Ajuda com combinação de Layouts
-
Bem gente to precisando de umas dicas para combinar alguns layouts para conseguir deixar uma janela MDI mais ou menos como a imagem anexada.
!http://forum.qtbrasil.com/download/file.php?id=64(SubWindow)!
Como sou pinto novo em Qt ainda não tenho pleno domínio dos Layouts
Grato pessoal!
-
Aproveitando o tópico, e a imagem, queria esclarecer umas ideias relacionadas a herança visual.
Nessa app, existirão outros formulários praticamente iguais a esse, por exemplo, esse é um formulário de cadastro de clientes, o formulário de cadastro de fornecedores será muito semelhante a esse, tb terá a datagrid porém o nome das colunas é diferente, os botões salvar, excluir e novo terá em ambos os formulários, clientes e fornecedores, os label tb existiram assim como tb os lineedits, o que mudara de um para o outro é a quantidade e o tipo de Widget, em fornecedores por exemplo pode haver mais botões de adicionar ( [+] ), e tb podem existir combobox no lugar de lineedits. O título da janela e icone tb são diferentes.
Bem levando em consideração de que existem alguns pontos em comum entre os dois Forms (Clientes e Fornecedores), seria interessante criar uma classe base contendo os widgets comuns entre eles? Existem outros cadastros que terão o mesmo designer deles, que são mais ou menos uns 5, acredito que existiria muita redundância de código já que esses 5 cadastros terão um formulário parecido. Digo parecido pq como citei, existirão algumas diferenças como o título da janela, o icone, alguns terão mais lineedits que outros, alguns usaram apenas um Tab outras usarão mais de uma Tab.
Seria vantajoso criar um Form base, para evitar redundância de código? Se é que vai haver mesmo redundância, posso estar raciocinando errado.Como seria essa classe base? Receberia por parâmetro os componentes que seriam adicionados no form? Seria usada como clase basse de onde as outras derivariam?
Seria viável ter um form base, já que muita coisa seria diferente um para o outro (nome das colunas no data grid, quantidade de lineedits, o Layout consequentemente seria alterado para organizar uma quantidade diferente se componentes, etc...). Será que não daria na mesma escrever tudo do zero em cada um, já que mesmo usando uma classe base muita coisa mudaria?
-
Um QHBoxLayout, dentro dele à esqueda um QVBoxLayout (doravante chamado A), e à direita um QTabWidget (chamemos de B).
Dentro de A, um QTableView ou QTableWidget e abaixo um QHBoxLayout que conterá os 3 botoões.
Dentro de B, um QFormLayout deve ser o que você precisa.
Mas atenção: Não testei, a sugestão foi baseada "no olho".
O que pode ajudar a encontrar a combinação adequada é dar uma olhada nos "exemplos de layout":http://doc.qt.nokia.com/latest/examples-layouts.html e combinações de layouts, parte do "tutorial de widgets":http://doc.qt.nokia.com/latest/widgets-tutorial.html presentes na documentação do Qt. -
Opa, valeu anselmo, já dá pra ter uma ideia e ir ajustando...
Com relação a pergunta de "contra-peso" que fiz abaixo, pelo que andei pesquisando aqui parece que Qt não dispõe de Herança Visual, mas o que será que ocorre quando se herda de um formulário pronto? Os componentes não aparecem?
-
Por "herança visual" vc diz herdar forms feitos com o Qt Designer?
Bom, essa é uma boa pergunta pra fazer no fórum internacional, como desenvolvo mais com coisas do mundo QGraphicsView e QML, alguns assuntos de QWidget vou ficar devendo :-/ (e reconheço tenho aprendido bastante a respeito acompanhando a DevNet =)