Drucken unter Linux - unterstrichene Zeichen

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
bullit
Beiträge: 4
Registriert: 14.06.2018 20:06

Drucken unter Linux - unterstrichene Zeichen

Beitrag 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?
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Drucken unter Linux - unterstrichene Zeichen

Beitrag 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
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Drucken unter Linux - unterstrichene Zeichen

Beitrag von mk-soft »

Müsste mit Unicode funktionieren.

Da kann man irgendwie Zeichen überlagern... Weiß aber jetzt nicht wie.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Drucken unter Linux - unterstrichene Zeichen

Beitrag 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
Zuletzt geändert von ccode_new am 16.06.2018 23:20, insgesamt 2-mal geändert.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
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: Drucken unter Linux - unterstrichene Zeichen

Beitrag von ts-soft »

Schönes Beispiel :allright:

Code: Alles auswählen

\"background-color: yellow;
funktioniert bei mir leider nicht :(
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
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Drucken unter Linux - unterstrichene Zeichen

Beitrag 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" ?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Drucken unter Linux - unterstrichene Zeichen

Beitrag 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
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Drucken unter Linux - unterstrichene Zeichen

Beitrag 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
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
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: Drucken unter Linux - unterstrichene Zeichen

Beitrag 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
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
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Drucken unter Linux - unterstrichene Zeichen

Beitrag 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.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten