C # / C ++ sviluppo GUI senza trascinamento della selezione? [chiuso]

-2

Attualmente sto programmando Java, ho già giocato con C ++, ma non ho mai toccato la GUI perché mi sento un "imbroglione" quando uso il suo sistema di trascinamento della selezione. Mi sento a mio agio e mi piace programmare la mia GUI come faccio in Java, mi sembra molto più gratificante.

C'è un modo in cui posso programmare la GUI per C # / C ++ come in Java, senza il drag and drop system, e in tal caso qualcuno potrebbe consigliarmi un tutorial (molte esercitazioni usano il drag and drop system )?

Finora ho provato a cercare questo e davvero non riesco a trovare molte spiegazioni su come lo farei.

    
posta Harry Kitchener 02.03.2014 - 00:10
fonte

2 risposte

1

Per le winform C #, ho trovato questo piccolo tutorial: link . È mono-centrico, quindi usa la filosofia unix che i programmatori sono effettivamente in grado di scrivere codice. Dovrebbe essere sufficiente per insegnarti l'architettura di base - per cose più complesse puoi usare MSDN Documentazione di Winforms .

Come per C ++ - stai lontano da WinAPI e da MFC! Non sono come la gerarchia dei componenti ordinati che sono Winform, WPF, SWT, Swing o anche vecchi AWT! Troverai solo un disordinato scambio di componenti a basso livello ungherese, con configurazione macro, registrati manualmente, con nomi strani e scarsa documentazione. Anche se si preferisce scrivere da soli il codice della GUI, se si è costretti a utilizzare le librerie di finestre Windows native di C ++, si dovrebbe creare un'eccezione e attenersi ai builder della GUI. Questo è l'unico modo per preservare la tua sanità mentale!

Oppure: prova una libreria di terze parti ...

    
risposta data 02.03.2014 - 14:05
fonte
2

Non conosco le librerie GUI per C ++, quindi parlerò solo di C #. Lì, ci sono due librerie GUI comuni: i vecchi Windows Form (Winforms in breve) e il più recente Windows Presentation Foundation (WPF):

Winforms si basa principalmente sull'editor grafico GUI drag-and-drop. Questo editor è piuttosto goffo: ad esempio, non ero in grado di capire come posizionare un pulsante in basso al centro di una finestra (esattamente). Quindi, l'utilizzo di Winforms potrebbe andar bene se stai creando finestre non ridimensionabili e se stai bene con gli strumenti limitati disponibili o decidendo manualmente la posizione dei pixel di ogni controllo.

Ciò che questo editor effettivamente genera è un file .Designer.cs che contiene un codice come:

this.button1 = new System.Windows.Forms.Button();

this.button1.Location = new System.Drawing.Point(124, 258);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "OK";
this.button1.UseVisualStyleBackColor = true;

E puoi anche scrivere un codice come questo nei tuoi normali file .cs, ignorando l'editor grafico (anche se probabilmente userò la sintassi di inizializzazione dell'oggetto qui). Ma dal momento che non ci sarà l'anteprima IDE, ci vorrà probabilmente del tempo per farlo apparire come vuoi tu. E ancora non risolve i problemi che Winforms ha, come il ridimensionamento delle finestre.

WPF, d'altra parte, pur continuando a supportare il drag-and-drop in misura limitata, si occupa esclusivamente della scrittura di codice strutturato in XAML. Con "strutturato", intendo che i controlli sono posizionati in gruppi chiamati pannelli, che possono essere essi stessi in altri pannelli, creando una struttura della finestra. E ogni pannello decide la posizione dei controlli al suo interno, quindi unendo i pannelli, puoi ottenere praticamente qualsiasi layout, che ora è ridimensionabile.

Ad esempio, per posizionare due pulsanti nella parte inferiore centrale di una finestra, è possibile scrivere:

<DockPanel LastChildFill="False">
  <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Center">
    <Button Margin="5" Width="100">OK</Button>
    <Button Margin="5" Width="100">Cancel</Button>
  </StackPanel>
</DockPanel>

(La ripetizione di Margin e Width può essere evitata, ma richiede funzionalità più avanzate di WPF.)

E mentre stai modificando il codice XAML, l'IDE ti mostra il layout che stai creando, in modo da ottenere uno dei principali vantaggi degli editor grafici.

Puoi anche scrivere lo stesso codice in C # invece di XAML, ma c'è solo raramente una ragione per farlo.

    
risposta data 02.03.2014 - 13:57
fonte

Leggi altre domande sui tag