XML GUI

Anfängerfragen zum Programmieren mit PureBasic.
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: XML GUI

Beitrag von Micha122 »

Das ist relativ einfach zu beantworten: Ein mit der Dialog-Lib erstellte GUI ist interpretiert, somit langsamer. Aufwendigere GUIs erstellt
man besser herkömmlich.
Ok, das ist natürlich ein Argument dagegen. Habe bis jetzt ja auch nur kleine Spielereien zum testen gemacht. Da fiel das mit der langsameren Ausführung nicht auf.
Außerdem sind nicht alle GUI-Elemente verfügbar.
Auf den ersten Blick fehlen:
MDIGadget
OpenGLGadget
ShortcutGadget

Hmm, auf OpenGL kann ich verzichten, aber Shortcut und MDI benutze ich schon hin und wieder. :cry:
PS: Ich nutze meist gar keinen visuellen Designer, weil die meist meine Anforderungen nicht erfüllen/erfüllen können.
Das stimmt schon, obwohl der aktuelle Form- Designer nicht schlecht ist. Relativ Bug- frei (gefühlt) scheint er unterdessen auch zu sein.
Barcodes for PureBasic - http://micha122.bplaced.net/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: XML GUI

Beitrag von ts-soft »

Micha122 hat geschrieben:Auf den ersten Blick fehlen:
MDIGadget
OpenGLGadget
ShortcutGadget
An die hab ich gar nicht gedacht :mrgreen:
MDIGadget ist aber uninteressant, für Crossplattform, hierfür werden heutzutage eher Tabs genommen.

Ich dachte eigentlich an so wichtige Dinge wie Menü, Toolbar und Statusleiste, die fast jedes größere Programm benötigt.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: XML GUI

Beitrag von Micha122 »

Ich dachte eigentlich an so wichtige Dinge wie Menü, Toolbar und Statusleiste, die fast jedes größere Programm benötigt.
Dachte eigentlich könnte alles außerhalb der xml definiert werden.

Hab jetzt nur mal aus der Hilfe was zusammen kopiert......mein Ausflug zur Dialog- Lib scheint beendet. :bluescreen:

Nur mal Toolbar gemeinsam mit Dialog- GUI:

Code: Alles auswählen

#XmlEncoding = #PB_UTF8

  #Dialog = 0
  #Xml = 0
  
  XML$ = "<window id='#PB_Any' name='test' text='test' minwidth='auto' minheight='auto' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget'>" +
         "  <panel>" +
         "    <tab text='First tab'>" +
         "      <vbox expand='item:2'>" +
         "        <hbox>" +
         "          <button text='button 1'/>" +
         "          <checkbox text='checkbox 1'/>" +
         "          <button text='button 2'/>" +
         "        </hbox>" +
         "        <editor text='content' height='150'/>" +
         "      </vbox>" +
         "    </tab>" +
         "    <tab text='Second tab'>" +
         "    </tab>" +
         "  </panel>" +
         "</window>"
  
  If CatchXML(#Xml, @XML$, StringByteLength(XML$), 0, #XmlEncoding) And XMLStatus(#Xml) = #PB_XML_Success
    
    If CreateDialog(#Dialog) And OpenXMLDialog(#Dialog, #Xml, "test")
      wn = DialogWindow(#Dialog)
      If CreateToolBar(0, WindowID(wn))
        ToolBarStandardButton(0, #PB_ToolBarIcon_New)
        ToolBarStandardButton(1, #PB_ToolBarIcon_Open)
        ToolBarStandardButton(2, #PB_ToolBarIcon_Save)
      EndIf
      Repeat
        Event = WaitWindowEvent()
      Until Event = #PB_Event_CloseWindow 
      
    Else  
      Debug "Dialog error: " + DialogError(#Dialog)
    EndIf
  Else
    Debug "XML error: " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + ")"
  EndIf
Klare Nullrunde :oops: :( :cry:
Barcodes for PureBasic - http://micha122.bplaced.net/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: XML GUI

Beitrag von ts-soft »

ts-soft hat geschrieben:Jetzt noch der traditionelle Unterschied zwischen einer GUI (Standard-Window) und einem Dialog:
Eine GUI beinhaltet das komplette Aussehen u.a. mit Toolbars, Statusleisten usw., während ein Dialog meist dem
Abfragen/Einstellen/Informieren dient. Kleinere Anwendungen können durchaus nur aus einem oder mehreren Dialogen bestehen,
das ist aber nicht der Regelfall. Besonders nützlich sind Dialoge auch in Hinblick auf Crossplattform.
D.H. man sollte beides bzw. jedes für seinen Zweck nutzen :)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: XML GUI

Beitrag von Micha122 »

D.H. man sollte beides bzw. jedes für seinen Zweck nutzen :)
Du hast Recht :!:

Bislang habe ich Dialoge immer mit normalen PB- Fenstern realisiert.
Da normale PB- GUI die unter Windows erstellt wurde auf Linux nicht unbedingt schön aussieht, habe ich meist zwei GUI- Versionen gepflegt.
Natürlich viel Arbeitsaufwand, von den vielen "CompilerIf #PB_Compiler_OS = #........" im Code mal ganz abgesehen.

Eine mit der Dialog Lib erstellte GUI sieht auf Linux wirklich genau so gut aus wie unter Windows. :D

Werde künftig tatsächliche GUI und Dialoge trennen, erspart mir viel Arbeit. :allright:

Danke für deine Geduld und Hilfe!
Barcodes for PureBasic - http://micha122.bplaced.net/
Antworten