GTK# edytor GUI oraz przemieszczanie wielu elementów naraz.

0

Zrobiłem aplikację w GTK# zawierającą bardzo dużo entry fieldów (jedno po drugim).
Okazało się że w środku pomiędzy nimi muszę coś dodać. Moje pytanie brzmi:
Czy mogę grupowo zaznaczyć i przesunąć wiele elementów w dół o ileś pikseli czy muszę zaznaczać każdy entry box ręcznie i przesuwać go w dół?

0

Nie znam się na GTK#, ale spróbuj pozaznaczać kolejno trzymając CTRL - ew. Shift.

0

Tak swoją droga, w czym najlepiej tworzyć GUI dla wieloplatformowej apliakcji w C#?

0

Multiplatformowe implementacje C# są tworzone 'z drugiej ręki'. ;)

0

tzn korzystając z Mono sprawa załatwiona jednak chyba jedyne libki do GUI do GTK#.

Mam takie techniczne pytanie:

GUI które muszę stworzyć ma przedstawiać dane zawarte w pewnych klasach, oto ich opis:

  • mamy nad klasę która stanowi kontener klas.
  • każda pod klasa ma swoje własne pola, int, string, bool. Na przykład ID.
  • każda pod klasa może zawierać kontener zawierający kilak obiektów typu enum, np o numerach 2,3,4 z puli od 1 do 10.
  • w każdej pod klasie może być kontener zawierający kolejne pod klasy innego typu, te podklasy także mogą zawierać, pola lub kontenery z podklasami określonego typu
  • oczywiście pod klasy można dodawać i usuwać z kontenerów, stanowią one atrybuty opisujące nad klasę.

W chwili obecnej zrobiłem to na zasadzie wrzucenia masy entry boxów do intów i stringów, combboxów gdy wybieram jeden element z kontenera bądź jakiś dodaję.
Niestety rozwiązanie takie jest raczej mało estetyczny, wygląda nie profesjonalnie do tego jakakolwiek próba edycji tego co już mam pochłania masę pracy.

Stąd pytanie, jak to przedstawić, tzn jaki element typowy dla GUI był by optymalny do takiego zadania? Nie mówię tu bezpośrednio o GTK# bo czy to gtk czy swing, tak czy siak posiadają odpowiadające sobie komponenty.

0

@Xender, nadklasy i podklasy sugerują dziedziczenie, z kolei "kontener" sugeruje agregację, i wydaje mi się, że Tobie chodzi właśnie o zawieranie się kolekcji obiektów klasy B w klasie A.

Jeśli chodzi o reprezentację takiej struktury w GUI, to musisz użyć UserControl albo czegoś w tym stylu. Każda Twoja klasa do przechowywania danych musi mieć odpowiadającą jej kontrolkę GUI z metodą np. Render, która przyjmuje odpowiedni obiekt. Metoda ta w przypadku klas-agregatów musi tworzyć kolekcję kontrolek dla obiektów z kolekcji (przy użyciu ich metod o tej nazwie). Jest to właściwie wariacja na temat wzorca projektowego Kompozyt.
Mam nadzieję, że wyjaśniłem jasno.

1 użytkowników online, w tym zalogowanych: 0, gości: 1