Seite 1 von 2

Drucken unter Linux - unterstrichene Zeichen

Verfasst: 14.06.2018 20:14
von bullit
Hallo, hab ein Problem, brauche beim Drucken unterstrichenen Text, aber Loadfont() mit #PB_Font_Underline fünktioniert ja nur unter Windows?
Was kann man machen?

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 15.06.2018 21:15
von ccode_new
Hallo bullit,

dein Thema ist unter Linux tatsächlich sehr knifflig.

Ich denke man müsste sich hierbei näher mit der Pango-Lib beschäftigen.

Hier aber einmal 2 kleine sehr einfache "Wir arbeiten drumherum"-Funktionen.

Code: Alles auswählen

#CLL = Chr($332)

Procedure.s UnderLine(Text.s)
  Protected i, TextOut.s
  For i = 1 To Len(Text)
    TextOut = TextOut + Mid(Text, i, 1) + #CLL
  Next i
  ProcedureReturn TextOut 
EndProcedure

Procedure DrawUnderlineText(x, y, txt.s, col = 0)
  Protected tw, th
  tw = TextWidth(txt) : th = TextHeight(txt)
  FrontColor(col)
  DrawText(x, y, txt)
  LineXY(x, (y+th), (x+tw), (y+th))
EndProcedure

Debug UnderLine("Hallo!")

If OpenWindow(0, 0, 0, 640, 480, "Underline-Test", #PB_Window_SystemMenu)   
  Repeat
    StartDrawing(WindowOutput(0))
    DrawingMode(#PB_2DDrawing_Transparent)
    DrawUnderlineText(40,40,"Dies ist ein Test.",RGB(255,0,0))
    DrawText(10,10,UnderLine("test!!!"),RGB(0,0,0))
    StopDrawing()
    Select WaitWindowEvent()   
      Case #PB_Event_CloseWindow
        Quit = #True   
    EndSelect   
  Until Quit
EndIf
End

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 15.06.2018 23:02
von mk-soft
Müsste mit Unicode funktionieren.

Da kann man irgendwie Zeichen überlagern... Weiß aber jetzt nicht wie.

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 16.06.2018 22:10
von ccode_new
Ich finde ja das neue QT-Zeug richtig geil!

Wenn man irgendwie über QT etwas hinbekommen könnte wäre das toll.
(Für Drucken und Fonts im Allgemeinen)

So etwas ist ja auch schon toll:

Code: Alles auswählen

;Muss mit QT-Subsystem ausgeführt werden !!!

If OpenWindow(0, 0, 0, 200, 200, "QT-Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ButtonGadget(0, 25,  10, 150, 50, "Juhu!!!")
  EditorGadget(1, 10, 70, 180, 120)
  
  Debug QtScript("dump(gadget(1))")
  
  QtScript(~"gadget(0).font = \"Comic Sans MS\"")
  
  QtScript(~"gadget(1).setFontFamily(\"Arial\")")
  QtScript(~"gadget(1).setFontUnderline(true)")
  QtScript(~"gadget(1).setTextColor(\"red\")")
  QtScript(~"gadget(1).setHtml(\"<u>Dies ist ein <b>unterstrichener</b> Text.</u> <P> Dies wird nicht mehr unterstrichen.\")")
  
  QtScript(~"gadget(0).styleSheet = \"background-color: #00ff00; font: bold 14px; text-decoration: underline\" ")
  
  QtScript(~"gadget(0).text = \"Grins :)\"")
  
  QtScript(~"window(0).windowTitle = \"Hallooo\"")
  
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 16.06.2018 22:23
von ts-soft
Schönes Beispiel :allright:

Code: Alles auswählen

\"background-color: yellow;
funktioniert bei mir leider nicht :(

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 16.06.2018 22:31
von ccode_new
Hallo ts-soft,

was für Linux nutzt du ?

Bei mir funktioniert diese Anweisung.

Funktioniert den eine Änderung auf: "background-color: #ffff00" ?

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 16.06.2018 23:23
von Sicro
"background-color:" funktioniert bei mir auch nicht.
ccode_new hat geschrieben:was für Linux nutzt du ?
Siehe meine Signatur.
ccode_new hat geschrieben:Funktioniert den eine Änderung auf: "background-color: #ffff00" ?
Bei mir nicht.

Fehlt bei mir vielleicht noch ein Paket?

Code: Alles auswählen

$ pacman -Qgq qt
qt5-base
qt5-declarative
qt5-location
qt5-multimedia
qt5-quickcontrols
qt5-script
qt5-sensors
qt5-speech
qt5-svg
qt5-translations
qt5-webchannel
qt5-webkit
qt5-x11extras
qt5-xmlpatterns

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 16.06.2018 23:35
von ccode_new
Hallo Sicro,

funktioniert es den so:

Code: Alles auswählen

QtScript(~"gadget(0).styleSheet = \"color: #ffff00; background: #ff0000; font: bold 14px; text-decoration: underline\" ")
Also: background == background-color

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 16.06.2018 23:46
von ts-soft
Bin zwar nicht Sirco, aber der letzte Code scheint zu funktionieren. Die Schrift ist Gelb und der Hintergrund wechsel beim Drücken auf Grau.

Linux steht eigentlich in meiner Signatur, aber ergänzent noch:
Cinnamon
qt 4.9.5

Re: Drucken unter Linux - unterstrichene Zeichen

Verfasst: 16.06.2018 23:57
von ccode_new
Ich nutze ein aktuelles Linux Mint 18.3 mit Cinnamon 64bit.

Bei mir funktioniert:

background: #ffff00 oder background-color: #ff0000 (Beides funktioniert gleich gut!)

Auch beim drücken des Knopfes bleibt die Hintergrundfarbe bestehen und wechselt nicht.

Noch keine Ahnung, warum die Farbe bei euch beiden nicht/ bzw. teilweise funktioniert.

Experimentiert mal mit den Anweisungen:
autoFillBackground: false/true

repaint(true) oder repaint(false)

...(etc.)

Es gibt da ja noch andere Möglichkeiten.
Oder probiert die Styles einzeln zu setzen.
Achtung: QT ersetzt/überschreibt alte Styles mit höherwertigeren Anweisungen.