Forum: PC-Programmierung Welche Windows GUI Oberfläche verwenden?


von Martin (Gast)


Lesenswert?

Ich möcht gerne für mich ein GUI Programm schreiben.
Zahlreiche Softwarehersteller haben bei ihren eigenen Programmen dieses 
typische, neue Windows Design, wie Windows in Word, Excel und Co., also 
mit dieser großen Menüleiste, großen Buttons usw.

Es gibt dafür also sicher ein Framework.
Kann mir jemand ein Stichwort dazu geben, wie ich eine GUI in diesem 
Style programmieren kann?

von nicht"Gast" (Gast)


Lesenswert?

Moin,

die Dinger nennt man Ribbons.

Auch wenn die Frage ein wenig seltsam anmutet würde ich dir C# 
empfehlen. Für QT gibts aber auch entsprechende Sachen, also such dir 
was raus ^^

von Christian M. (Gast)


Lesenswert?

Martin schrieb:
> neue Windows Design, wie Windows in Word, Excel und Co., also
> mit dieser großen Menüleiste, großen Buttons usw.

Martin schrieb:
> wie ich eine GUI in diesem
> Style programmieren kann?

Und warum um Himmels Willen will man das?

Gruss Chregu

von Nicht so wichtig (Gast)


Lesenswert?

>Für QT gibts aber auch entsprechende Sachen

Als Linux Benutzer stimme ich natürlich für ein portables Framework. Für 
Windows findet man sowieso schon genug gute Programme.

von Volker Volkersson (Gast)


Lesenswert?

Wenn du wenig Ahnung hast und es trotzdem in kurzer Zeit zu einem 
ansehnlichen Ergebnis bringen möchtest, führt wohl kein Weg an MS Visual 
Studio.NET vorbei. Die kostenlose Community Version reicht sicher.

Wenn c# noch zu schwierig ist, gibts immer noch das guta alte VB.net ;)

https://visualstudio.microsoft.com/de/

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mit der MFC lässt sich das auch erledigen, allerdings sind dann noch 
Zusatzwerkzeuge wie z.B. BCGControlBar zu kaufen. Ohne diese bleibt die 
GUI im ältlichen Windows-7-Stil, auch wenn die Programme unter neueren 
Windows-Versionen eingesetzt werden.

Eine Unterstützung für die Kachel-GUI bietet die MFC ebenfalls nicht an, 
o.g. BCGControlBar-Paket aber unterstützt das.

Wenn man zwar C++, aber nicht die MFC verwenden möchte, lohnt ein Blick 
zu wxWidgets oder dem bereits erwähnten Qt.

Beides hat den Vorteil der Portabilität, d.h. damit lassen sich auch 
Programme für macOS und Linux erzeugen.

Wenn man eher Basic mag, wäre Xojo einen Blick wert, das hieß früher 
"RealBasic" und ist ebenfalls ein plattformübergreifendes Werkzeug.

von Horst (Gast)


Lesenswert?

Volker Volkersson schrieb:
> Wenn du wenig Ahnung hast und es trotzdem in kurzer Zeit zu einem
> ansehnlichen Ergebnis bringen möchtest, führt wohl kein Weg an MS Visual
> Studio.NET vorbei.

Oder anders gesagt:
Wenn du keine Ahnung hast, aber in kurzer Zeit einen schlechten 
unsicheren Codehaufen produzieren willst, führt wohl kein Weg an MS 
Visual Studio.NET vorbei.

Ansonsten benutz was gutes wie C++ und QT.

von Jan (Gast)


Lesenswert?

>>Wenn du keine Ahnung hast, aber in kurzer Zeit einen schlechten
>>unsicheren Codehaufen produzieren willst, führt wohl kein Weg an MS
>>Visual Studio.NET vorbei.

>>Ansonsten benutz was gutes wie C++ und QT.

C++ ist deutlich komplexer und schwieriger als C#.

Mit MS Visual Studio.NET und C# wird man als Einsteiger sicherlich 
schneller zum Ergebnis kommen. Als Ergebnis meine ich ein 
funktionierendes und stabil laufendes GUI Programm.

von Nachdenklicher (Gast)


Lesenswert?

Christian M. schrieb:
> Und warum um Himmels Willen will man das?

Die Frage habe ich mir auch gestellt. Seit der Abschaffung von Menüs und 
der Umstellung auf diese unsäglichen Ribbons ist Microsoft Office für 
mich quasi unbenutzbar geworden. Ich frage mich, wie man auf so eine 
schräge Idee erst mal kommt, und wie sie sich dann auch noch durchsetzen 
kann.

Rufus Τ. F. schrieb:
> Ohne diese bleibt die
> GUI im ältlichen Windows-7-Stil, auch wenn die Programme unter neueren
> Windows-Versionen eingesetzt werden.

Mal ganz ehrlich, mir persönlich sagt der freundliche frische Win7-Look 
wesentlich mehr zu, als dieses Design von Windows 10, das aussieht, als 
hätte man versucht, die Grafik so weit zu vereinfachen, daß selbst die 
alte S3 Virge mit nem halben MB Speicher sie wieder flüssig darstellen 
kann. Alles unkoordiniert duster, Bedienelemente werden teilweise erst 
hervorgehoben, wenn man mit der Maus drüber geht (Ich will eine 
Benutzeroberfläche, kein Wimmelbildspiel!).. näh. Ich merke den 
Produktivitätsunterschied bei der Arbeit. Da, wo Windows 7 drauf ist, 
brauche ich für vieles halb so viel Zeit wie da, wo Windows 10 drauf 
ist, weil ich immer nach dem passenden Button suche.

von Meier (Gast)


Lesenswert?

Mein Fall sind die Ribbons auch nicht, aber unsere Roadmap sieht eine 
Implementierung in dieser Richtung vor. Da wir im .NET unterwegs sind, 
haben wir unter anderem Fluent.Ribbon evaluiert. Mir persönlich gefällt 
es gut. Was hier und da nicht passt, kann man selbst im Code anpassen. 
Das ist für mich der grösste Vorteil.

So sieht es aus: 
https://github.com/fluentribbon/Fluent.Ribbon/blob/develop/Images/Showcase.gif

Beitrag #5854094 wurde von einem Moderator gelöscht.
von Wolfi (Gast)


Lesenswert?

Tutorial für Windows, ios und Android Apps mit Oberfläche

https://docs.microsoft.com/de-de/visualstudio/get-started/csharp/?view=vs-2019

von Bernd K. (prof7bit)


Lesenswert?

Unter allen obigen Voraussetzungen würde ich ebenfalls C++/Qt nehmen. 
Ich würde auf jeden Fall auch an die Zeit nach Windows denken und mich 
bei stetig steigendem Wasserstand nicht für alle Zeit auf einer kleinen 
Insel festketten lassen wollen.

von Freiberufler (Gast)


Lesenswert?

Wenn sich das GUI-Programm als Web-App schreiben lässt, z.B. mit asp.net 
core, dann würde ich das in Erwägung ziehen.
Selbst als reine lokale Anwendung ist asp.net möglich und sinnvoll mit 
verwendung des localhost-servers (IIS).

Vorteil: man kann die SW leicht online stellen und Dienste als SAAS 
anbieten, wenn man möchte.

von marais (Gast)


Lesenswert?

Ich musste mir die Frage Ende letzten Jahres stellen, als es um die 
Modernisierung einer legacy-Anwendung in MFC/C++ ging. Ich hatte nach 
der Einführung von Office 2007 auch grosse Probleme mit den ribbons und 
habe eine ganze Weile gebraucht, mich damit anzufreunden, und war 
deswegen zuerst skeptisch. Inzwischen mag ich sie.

Die Dokumentation des ribbon-Frameworks der MFC ist sehr gut, und mit 
dem Ribbon-Designer, der den XML-Code erstellt, kann man sogar die 
Anwender in das Design mit einbinden. Wichtig ist, sich mit der 
Philosophie der Ribbons auseinanderzusetzen: Oft benötigte Funktionen 
sind direkt zugänglich und nicht erst über ein Dialogbox (die es 
zusätzlich geben kann), und der Einfluss mancher Optionen auf das 
Ergebnis ist als Vorschau direkt und interaktiv sichtbar. Ich empfehle, 
sich vorher ein paar Gedanken über Struktur und ggf. Workflow zu machen, 
damit die Optionen in den Panels landen, wo sie intuitiv erwartet 
werden.


Der neue Ribbon, wie er im aktuellen Office zu sehen ist, wurde von 
Microsoft extern entwickeln lassen und dazugekauft. Mit Visual Studio 
wird lediglich das Framework von 2007 geliefert, ich bin jedoch der 
Meinung, dass dies in den meisten Fällen völlig ausreichend ist. Eine 
nachträgliche Migration zum weiter oben erwähnten BCGControlBar scheint 
mir einfach und jederzeit machbar (hab's noch nicht gemacht, nur etwas 
Doku gelesen).

von W. (Gast)


Lesenswert?

Zumindest ich komme bei diesem Stil (Ribbons) durcheinander: man sucht 
dort nach einem Befehl, findet ihn nicht, und realisiert irgendwann, 
dass man im falschen Ribbon ist.

Eine statische Leiste mit oft benötigten Funktionen finde ich besser.
Selten gebrauchte Funktionen kann man in Untermenüs verpacken.

von Mach (Gast)


Lesenswert?

Das Ribbon-Konzept sehe ich als echten Fortschritt in der 
Benutzerfreundlichkeit. Allerdings passt es nicht zu jedem Programm.

Die Vorteile sind klar: Symbol und Text sind kombiniert, das ermöglicht 
ein intuitives Erlernen. Anfänglich ist man auf den Text angewiesen, mit 
Routine führen die Symbole zu mehr Übersicht und schnellerem Arbeiten. 
Der Ribbon ist entweder kontextbezogen oder kategorisiert. Dadurch ist 
erst genug Platz im Menü für die Text-/Symbolkombination.

Natürlich muss das Ribbon-Menü gut durchdacht sein. Das mag etwas 
schwieriger sein wie beim klassischen Menü, welches man aber auch 
vermurksen kann.

von Arc N. (arc)


Lesenswert?

Wer sich ganz ans Windows-System binden will, kann ab W10 1903 auch 
XAML-Islands in klassischen W32-Anwendungen verwenden...
https://docs.microsoft.com/de-de/windows/apps/desktop/modernize/xaml-islands
und dann bspw. so etwas
https://blogs.msdn.microsoft.com/juanmejia/2017/10/office-ribbon-styling-the-pivot-control/
machen.

FreePascal/Lazarus + BGRAControls wäre auch noch eine Möglichkeit. 
Ebenso geht's mit Avalonia UI (XAML-basiert wie WPF/UWP, aber auch auf 
Linux, MacOS, iOS und Android zu Hause) oder man nimmt/hostet ein 
WebBrowser-Control und entsprechende JavaScript-Libraries (gibt's/gab's 
von MS https://github.com/OfficeDev/office-ui-fabric-react) oder nutzt 
gleich "Frameworks" wie Electron...

Wie sinnvoll diese Optionen hier wären, ist eine andere Frage...

: Bearbeitet durch User
von Max M. (raa)


Lesenswert?

Bernd K. schrieb:
> Ich würde auf jeden Fall auch an die Zeit nach Windows denken

Ob wir die noch erleben? :-)

von Torben (Gast)


Lesenswert?

C# mit WPF, wenn es eine reine Windows Applikation wird, ansonsten Qt 
mit Qml, daran stört mich nur das der Java Interpreter kein uint64 
versteht und es etwas umständlich ist solche Datentypen über C++ Backend 
reinzuholen

von Julia D. (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> lohnt ein Blick
> zu wxWidgets oder dem bereits erwähnten Qt.

Wie weit wird wxWidgets noch weiter entwickelt? Ich habe den Eindruck, 
dass das kaum noch voran kommt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das letzte Release ist vom Dezember 2018, es wird also offensichtlich 
weiterentwickelt.

Oder erwartest Du "agile" Releasezyklen?

von Naughtius Maximus (Gast)


Lesenswert?

Nachdenklicher schrieb:
> Christian M. schrieb:
>> Und warum um Himmels Willen will man das?
>
> Die Frage habe ich mir auch gestellt. Seit der Abschaffung von Menüs und
> der Umstellung auf diese unsäglichen Ribbons ist Microsoft Office für
> mich quasi unbenutzbar geworden. Ich frage mich, wie man auf so eine
> schräge Idee erst mal kommt, und wie sie sich dann auch noch durchsetzen
> kann.

Wie man auf die Idee kommt, nach dem Umstieg von 4:3 Monitoren auf 16:9, 
auch noch den in der Höhe kleiner gewordenen Platz mit mehr Fläche für 
Buttons zu verschwenden, geht mir auch nicht auf.

von Rolf M. (rmagnus)


Lesenswert?

Max M. schrieb:
> Bernd K. schrieb:
>> Ich würde auf jeden Fall auch an die Zeit nach Windows denken
>
> Ob wir die noch erleben? :-)

Das kann ja jeder für sich entscheiden. Man muss ja nicht der letzte 
sein, der dann die Tür - äh - das Fenster zumacht. ;-)

von Freiberufler (Gast)


Lesenswert?

Der Trend ist aber:

https://saasmag.com/the-evolution-of-saas-4-trends-to-watch-in-2019/

Die Zeit ist einfach (fast) vorbei, wo Programme auf einen lokalem 
Rechner installiert werden.

von Le X. (lex_91)


Lesenswert?

Freiberufler schrieb:
> https://saasmag.com/the-evolution-of-saas-4-trends-to-watch-in-2019/
>
> Die Zeit ist einfach (fast) vorbei, wo Programme auf einen lokalem
> Rechner installiert werden.

Gut dass die Überschrift "Incorporation of Artificial Intelligence (AI)" 
so groß und fett und schon von Weitem lesbar ist.
Da konnte ich direkt wieder das Lesen aufhören.

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

Freiberufler schrieb:
> Die Zeit ist einfach (fast) vorbei, wo Programme auf einen lokalem
> Rechner installiert werden.

Der Trend ist mal so und mal so, alle Extreme sind schon dagewesen und 
kommen immer wieder. Erst hatten wir Mainframes und dumme Terminals, 
dann kamen irgendwann die "personal computer" in Mode und alle Apps 
liefen lokal und der Mainframe war tot, dann kam das www und es hieß es 
lokale Anwendungen sind unpraktisch, nur noch Web-Anwendungen sind der 
heilige Gral (180-Grad-Wende). Dann kamen die Smartphones auf und da ist 
es wieder absolut schick daß als Ersatz für jede popelige bereits 
existierende Webanwendung plötzlich wieder auf jedem Gerät eine eigene 
lokale App installiert werden muß.

von Freiberufler (Gast)


Lesenswert?

> Erst hatten wir Mainframes und dumme Terminals,

Da hatten wir aber noch kein breit verfügbares Internet.

Jetzt ist aber so, dass quasi schon jedes Smartphone und PC sowieso am 
Inet permanent angeschlossen ist.
Dass sich dieser Trend (Vernetzung) jemals umkehrt, ist 
unwahrscheinlich.
Zensuren werden schon zunehmen, aber zurück zu den Offline-PCs ist 
unmöglich.
Damit steht SaaS jederzeit zur Verfügung, und die Vorteile ggü 
fest-installierter SW überwiegen.

von steckersammler (Gast)


Lesenswert?

Freiberufler schrieb:
> Damit steht SaaS jederzeit zur Verfügung, und die Vorteile ggü
> fest-installierter SW überwiegen.

Klar, vor allem für den Anbieter, der dann monatlich abkassieren kann.

Wo kämen wir denn hin, wenn jeder seine vor 10 Jahren gekaufte Software 
einfach weiternutzt, anstatt jedes Update zu kaufen...

Freiberufler schrieb:
> Da hatten wir aber noch kein breit verfügbares Internet.
>
> Jetzt ist aber so, dass quasi schon jedes Smartphone und PC sowieso am
> Inet permanent angeschlossen ist.

Genau, und was passiert wenn die Internetverbindung mal gestört ist?
Dann sitzen die Mitarbeiter sinnlos in der Firma rum, bis die tolle SaaS 
wieder verfügbar ist.
Für Privatpersonen mag Warten vielleicht noch zumutbar sein, aber einer 
Firma kostet das eine Stange Geld.

von Freiberufler (Gast)


Lesenswert?

>  wenn jeder seine vor 10 Jahren gekaufte Software einfach weiternutzt,

Genau das ist der Haupt-Punkt.
Wenn jemand 10 Jahre lang ein Software-Produkt intensiv benutzt, und ein 
anderer das gleiche Produkt nur sporadisch,
dann bezahlen beide bei der Festinstallation den gleichen Preis(!!!)

- SaaS ermöglicht eine gerechte Bezahlung,
- jeder Installations-Aufwand entfällt,
- bei Wechsel des Rechners entfällt die Neuinstallation,
- ...

Das gestörte Netz ist ein Problem.
Aber seien wir ehrlich, wie oft passiert das?

von steckersammler (Gast)


Lesenswert?

Das mit den "gerechteren" Kosten mag theoretisch stimmen, aber praktisch 
gesehen zahlt man meistens drauf, vor allem wenn man nicht jedes Update 
kauft.

Aber für den einen oder anderen Fall mag das ganz praktisch sein, wenn 
man eine bestimmte Software nur ein mal bzw. über einen kurzen Zeitraum 
benötigt, zugegeben.

Und gekaufte lokale Software hat noch einen weiteren unschlagbaren 
Vorteil: Wenn der Anbieter einer SaaS Lösung pleite geht oder den 
Service einstellt, hat man schlicht und einfach die A-Karte gezogen, das 
Ding ist dann einfach endgültig weg.
Gekaufte lokal installierte Software kann ich einfach weiternutzen, egal 
was mit dem Anbieter passiert.

von Freiberufler (Gast)


Lesenswert?

Kennt jemand SaaS - Software-Produkte für Firmen und Privatanwender ?

Office 365 wird meistens genannt, z.B.
https://www.cmswire.com/cms/information-management/cloud-service-models-iaas-saas-paas-how-microsoft-office-365-azure-fit-in-021672.php

Compiler wäre praktisch und sinnvoll als SaaS, habe ich aber noch nicht 
gehabt, meistens hat man einen Lizenz-Dongle, den man im Schreibtischen 
von Kollegen erst suchen muss.

von DPA (Gast)


Lesenswert?

steckersammler schrieb:
> Gekaufte lokal installierte Software kann ich einfach weiternutzen, egal
> was mit dem Anbieter passiert.

Die werden doch mittlerweile alle online Aktiviert, damit hat man das 
gleiche Problem. Im schlimmsten Fall gibt es sogar Always Online DRM, wo 
eine Anwendung einige Funktionen grundlos auf den Server packt und 
konstant prüft, ob man verbunden ist, um zu garantieren, das man das 
ohne Internet oder wenn Server offline genommen werden die Anwendung 
garantiert nicht mehr nutzen kann.

Eigentlich schon komisch, wie Firmen ihre Kunden mittlerweile enteignen 
dürfen, oder es denen eventuell mittlerweile egal ist.

Bei freier Software hat man das zum glück eigentlich nie. Sowas käme bei 
respektablen Distributionen wie z.B. Debian nie in main rein, höchstens 
nach contrib oder non-free. In Zweifelsfall sollte man aber selbst dort 
selbst nochmal nachkontrollieren.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Nachdenklicher schrieb:
> Seit der Abschaffung von Menüs und
> der Umstellung auf diese unsäglichen Ribbons ist Microsoft Office für
> mich quasi unbenutzbar geworden.

geht mir auch so. dagegen hilft

https://www.officeclassicmenu.com/de/download.php
oder
http://www.ubit.ch/software/ubitmenuoffice2007/

: Bearbeitet durch User
von Bernd K. (prof7bit)


Lesenswert?

DPA schrieb:
> Eigentlich schon komisch, wie Firmen ihre Kunden mittlerweile enteignen
> dürfen, oder es denen eventuell mittlerweile egal ist.

Der überwiegenden Zahl der Anwender ist es egal weil sie das Problem 
einfach nicht erkennen (können) oder es erfolgreich verdrängt haben, 
deshalb bekommst Du niemals eine Mehrheit mobilisiert gegen diese 
unerfreuliche Praxis.

> Bei freier Software hat man das zum glück eigentlich nie.

Anwender freier Software haben im Schnitt ein erheblich höheres 
Bildungsniveau und einen höheren IQ, deshalb kannst Du denen sowas nicht 
ohne weiteres verkaufen.

: Bearbeitet durch User
Beitrag #5871642 wurde von einem Moderator gelöscht.
von Mel N. (Firma: Mobilunity) (melnell)


Lesenswert?

Ich stimme einigen vorherigen Antworten voll und ganz zu!

Sollte sich das GUI-Programm als Web-App schreiben lassen, kann man das 
in Betracht ziehen. Auch eine reine lokale Anwendung ist asp.net möglich 
und macht unter Verwendung des localhost-servers (IIS) Sinn.

Der Vorteil ist, dass man die SW einfach online stellen kann und dabei 
die Dienste als SAAS anbieten kann.

Gruß,
MelNell
https://mobilunity.ch/blog/nearshoring-rumanien-wie-gunstig-und-sinnvoll-ist-es-entwickler-in-rumanien-einzustellen/

von Martin S. (sirnails)


Lesenswert?

Rufus Τ. F. schrieb:
> Mit der MFC lässt sich das auch erledigen

Ist das jetzt ein Ratschlag der Kategorie "Wie reitet man ein totes 
Pferd"?

Wenn er etwas neues lernt, weil er Neuland betritt, dann doch bitte 
nicht diesen uralten, total verhunzten MFC Schrott, sondern etwas, das 
aktuell entwickelt und eingesetzt wird, wie .NET oder andere aktuelle 
Sprachen mit aktuellen Frameworks.

Also kein MFC, kein WPF, Flash, irgendwelches altgedientes Java Zeugs.

von Vn N. (wefwef_s)


Lesenswert?

Martin S. schrieb:
> wie .NET oder andere aktuelle
> Sprachen mit aktuellen Frameworks.
>
> Also kein MFC, kein WPF

Ist WPF nicht Teil von .NET?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.