grafische oberfläche unter linux
grafische oberfläche unter linux
hallo,
was brauche ich um unter linux software für x-window basierte systeme zu programmieren? muß ich da irgendwelche bilbiotheken einbinden?
was brauche ich um unter linux software für x-window basierte systeme zu programmieren? muß ich da irgendwelche bilbiotheken einbinden?
der weg ist das ziel
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Aber doch nicht für XWindow. XWindow ist meines Wissens eine Lib so wie GTK aber halt nicht standard in PB. :/ korrigiert mich wenn ich daneben liege, aber ich glaube sowas mal gehört zu haben.Thalius hat geschrieben:Hi,
meines wissens brauchst Du nur gtk+ ( imo wird glaub ich mal Version 1 unterstützt ). Da Du ja ein programm compilen willst solltest Du die "devel" pakete von gtk ebenfalls installieren.
MfG, Thalius
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
-
- Beiträge: 696
- Registriert: 26.09.2004 20:17
- Kontaktdaten:
XWindows ist die Grundlage für alles was unter Linux mit Fenstern zu tun hat. Das ganze ist praktisch schichtenmäßig aufgebaut: Erst kommt der X-Server, der Sachen bereitstellt um überhaupt mal was grafisches zu machen. Dann kommen WindowManager. Die Windowmanager sorgen dafür dass sich Fenster bewegen lassen. Die bekanntesten sind KDE und Gnome. Gnome ist zum Beispiel in GTK+ geschrieben. GTK+, Qt und das ganze Zeug sind Librarys für Fenster, Buttons, und alles was mit grafischen Oberflächen zu tun hat. Fensteranwendungen schreibt man unter Linux genauso wie unter Windows, z.B.
Das ist ein einfaches Gadgetbeispiel aus der Hilfe. Lässt sich bei mir unter Windows wie auch unter Linux ohne Probleme compilieren (Hab Fedora Core 3 Linux)
Librarys einbinden muss man nicht.
Code: Alles auswählen
#WindowWidth = 390
#WindowHeight = 350
If OpenWindow(0, 100, 200, #WindowWidth, #WindowHeight, #PB_Window_MinimizeGadget, "PureBasic - Gadget Demonstration")
If CreateGadgetList(WindowID())
Top = 10
GadgetHeight = 24
Frame3DGadget(#PB_Any, 10, Top, 370, 290, "Player...") : Top+20
StringGadget(0, 20, Top, 200, GadgetHeight, "")
ButtonGadget(1, 223, Top, 72, GadgetHeight, "Play")
ButtonGadget(2, 295, Top, 72, GadgetHeight, "Stop") : Top+35
DisableGadget(2,1)
GadgetToolTip(1,"Play the current song")
PanelGadget(3, 20, Top, #WindowWidth-50, #WindowHeight-Top-60)
AddGadgetItem(3, 0, "MP3 PlayList")
ListViewGadget(4, 6, 10, 230, 148)
For k=0 To 30
AddGadgetItem(4, -1, "Music Song n° "+Str(k))
Next
ButtonGadget(5, 250, 10, 80, GadgetHeight, "Add")
ButtonGadget(6, 250, 38, 80, GadgetHeight, "Remove")
ButtonGadget(7, 250, 66, 80, GadgetHeight, "Select")
GadgetToolTip(7, "Select the current song")
TrackBarGadget(17, 10, 168, 310, 25, 0, 100)
AddGadgetItem(3, 1, "Options")
Top = 10
CheckBoxGadget(10, 10, Top, 250, GadgetHeight, "Enable low-pass filter") : Top+30
CheckBoxGadget(11, 10, Top, 250, GadgetHeight, "Enable visual plug-in") : Top+30
ComboBoxGadget(12, 10, Top, 250, 100) : Top+30
AddGadgetItem(12, -1, "FireWorks")
AddGadgetItem(12, -1, "OpenGL spectrum")
AddGadgetItem(12, -1, "Bump bass")
SetGadgetState(12,0)
DisableGadget(12,1)
OptionGadget(13, 10, Top, 80, GadgetHeight, "640*480") : Top+20
OptionGadget(14, 10, Top, 80, GadgetHeight, "800*600") : Top+20
OptionGadget(15, 10, Top, 80, GadgetHeight, "1024*768")
SetGadgetState(13, 1)
ButtonGadget(16, 150, Top, 80, GadgetHeight, "Info")
CloseGadgetList()
TextGadget (9, 10, #WindowHeight-30, 250, 24, "PureBasic - Gadget demonstration")
ButtonGadget(8, #WindowWidth-100, #WindowHeight-36, 80, 24, "Quit")
EndIf
SetGadgetState(3, 0)
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID()
Case 0
If EventType() = #PB_EventType_ReturnKey
MessageRequester("Info", "Return key pressed", 0)
ActivateGadget(0)
EndIf
Case 1 ; Play
DisableGadget(2,0) ; Enable the 'Stop' gadget
DisableGadget(1,1) ; Disable the 'Play' Gadget
Case 2 ; Stop
DisableGadget(1,0) ; Enable the 'Play' gadget
DisableGadget(2,1) ; Disable the 'Stop' Gadget
Case 4
If EventType() = 2
SetGadgetText(0, GetGadgetText(4)) ; Get the current item from the ListView..
EndIf
Case 5 ; Add
AddGadgetItem(4, -1, "New Item Added...")
Case 6 ; Remove
RemoveGadgetItem(4, GetGadgetState(4)) ; Remove the current element of the ListView
Case 7 ; Select
SetGadgetText(0, GetGadgetText(4)) ; Get the current item from the ListView..
Case 8 ; Quit...
EventID = #PB_EventCloseWindow
Case 11 ; Enable PlugIn..
DisableGadget(12, 1-GetGadgetState(11))
Case 16 ;
If GetGadgetState(13) : Result$ = GetGadgetText(13) : EndIf
If GetGadgetState(14) : Result$ = GetGadgetText(14) : EndIf
If GetGadgetState(15) : Result$ = GetGadgetText(15) : EndIf
MessageRequester("Info", "Selected screen mode: "+Result$, 0)
Case 17
SetGadgetText(0, Str(GetGadgetState(17)))
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow
EndIf
End
Librarys einbinden muss man nicht.
Die benötigten Libraries werden von Linux zur Verfügung gestellt, wenn sie denn da sind. Bei mir war das zB der Fall (Kanotix) und bei the one and only (Fedora) offensichtlich auch.
Wenn also etwas nicht geht, dann müsstest Du nachinstallieren, was, das steht in der README im Purebasic Paket.
Ausserdem muss Purebasic installiert werden, wie, das steht in der INSTALL Datei. Da sind nur 3 Befehle zu pasten.
Dann hast Du schonmal den Compiler.
Um nun noch eine IDE zu haben, brauchst Du den Download von hier:
http://forums.purebasic.com/german/view ... =ide+linux
Gruss
Mipooh
Wenn also etwas nicht geht, dann müsstest Du nachinstallieren, was, das steht in der README im Purebasic Paket.
Ausserdem muss Purebasic installiert werden, wie, das steht in der INSTALL Datei. Da sind nur 3 Befehle zu pasten.
Dann hast Du schonmal den Compiler.
Um nun noch eine IDE zu haben, brauchst Du den Download von hier:
http://forums.purebasic.com/german/view ... =ide+linux
Gruss
Mipooh
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22