Gehen die border-styles nicht überall?

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Gehen die border-styles nicht überall?

Beitragvon Alfons Mittelmeyer » Dienstag 29. August 2017, 15:02

Ich habe einen Pi3 und pyqt5.

Da habe ich mal die border stile für einen Label probiert. Aber ridge, outset, inset und groove gehen nicht. Woran könnte das liegen?

Bild

Anmerkung: wenn ich pyqt5 starte bekomme ich immer diese Meldung: libEGL warning: DRI2: failed to authenticate
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Habe ich vielleicht etwas nicht installiert?

Beitragvon Alfons Mittelmeyer » Dienstag 29. August 2017, 18:59

Sieht so aus, als ob da etwas fehlt. Es könnten images für die borders sein, die da fehlen. Vielleicht etwas nicht installiert?
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Re: Gehen die border-styles nicht überall?

Beitragvon Alfons Mittelmeyer » Dienstag 29. August 2017, 19:58

Naja, ich probier dann mal eine Installation von Source Code
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Re: Gehen die border-styles nicht überall?

Beitragvon Alfons Mittelmeyer » Dienstag 29. August 2017, 22:31

Ich glaube ich lasse das mit dem Raspberry sein. Zwei Tage Compilierzeit, dazu habe ich keinen Bock. Vielleicht später mal, ein neues Raspberry Image mittels Crosscompiling machen.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Es lag an etwas anderem. Und qt modern?

Beitragvon Alfons Mittelmeyer » Mittwoch 30. August 2017, 08:03

Damit diese Border Stile ein sinnvolles Resultat liefern muss border-color sinnvoll gesetzt sein.

Berauschend ist das Resultat allerdings nicht:

Bild

Hier bei background-color '#d9d9d9' und border-color '#8f8f91'

Im Vergleich dazu tkinter:

Bild

Das ist klar und deutlich zu sehen. Weiß jetzt auch nicht, wieso das jetzt in qt wesentlich 'moderner' sein soll und tkinter 'altmodisch' sei.

Man kann natürlich in qt schöner gestalten, etwa abgerundete Ecken, Farbverlauf und border-images, wenn man sich mehr Mühe gibt.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Re: Gehen die border-styles nicht überall?

Beitragvon Alfons Mittelmeyer » Mittwoch 30. August 2017, 08:53

Es sollte aber doch gehen:

Bild
Siehe: https://www.w3.org/TR/css3-background/#ridge

Muß man da dann die die 4 Seiten getrennt angeben?
border-top, border-right, border-bottom, border-left

Laut dieser Definition geht es aber doch nicht:

‘groove’
Looks as if it were carved in the canvas. (This is typically achieved by creating a “shadow” from two colors that are slightly lighter and darker than the ‘border-color’.)

Denn da heißt es 'slightly'
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Re: Gehen die border-styles nicht überall?

Beitragvon Alfons Mittelmeyer » Mittwoch 30. August 2017, 09:29

Man muss eben mit der Border Color etwas rumspielen, dann geht es noch ein wenig besser. Hier habe ich dann eine hellere Farbe genommen #b0b0b0

Bild

Schön wäre allerdings, wenn man die dunkle Schattenfarbe dunkler machen könnte. Bei outset und inset könnte man ja die Seiten getrennt setzen. Bei ridge und groove geht das allerdings nicht.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Das war mein erstes Qt Programm

Beitragvon Alfons Mittelmeyer » Mittwoch 30. August 2017, 09:55

Das war mein erstes Qt Programm. Da bin ich noch ein Anfänger:

  1. #import tkinter as tk
  2. import QtTk as tk
  3.  
  4. class Application(tk.Tk):
  5.     def __init__(self,**kwargs):
  6.         tk.Tk.__init__(self,**kwargs)
  7.        
  8.         self.title('Hello World')
  9.  
  10.         widget = tk.Label(self,text="none",relief='flat',bd=5, bg = '#d9d9d9', fg = 'black')
  11.         widget.grid(row=0,column=0)
  12.  
  13.         widget = tk.Label(self,text="solid",relief='solid',bd=5, bg = '#d9d9d9', bordercolor = 'black', fg = 'black')
  14.         widget.grid(row=0,column=1)
  15.  
  16.         widget = tk.Label(self,text="ridge",relief='ridge',bd=5, bg = '#d9d9d9', bordercolor = '#a8a8a8', fg = 'black')
  17.         widget.grid(row=0,column=2)
  18.  
  19.         widget = tk.Label(self,text="outset",relief='raised',bd=5, bg = '#d9d9d9', bordercolor = '#b0b0b0', fg = 'black')
  20.         widget.grid(row=1,column=0)
  21.  
  22.         widget = tk.Label(self,text="inset",relief='sunken',bd=5, bg = '#d9d9d9', bordercolor = '#b0b0b0', fg = 'black')
  23.         widget.grid(row=1,column=1)
  24.  
  25.         widget = tk.Label(self,text="groove",relief='groove',bd=5, bg = '#d9d9d9', bordercolor = '#b0b0b0', fg = 'black')
  26.         widget.grid(row=1,column=2)
  27.  
  28. Application().mainloop()
Benutzeravatar
noisefloor
User
Beiträge: 1942
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Re: Gehen die border-styles nicht überall?

Beitragvon noisefloor » Mittwoch 30. August 2017, 19:47

Hallo,

was ist denn `QtTk` für ein Modul zur Anbindung von Python an Qt? Mir ist bis dato nur PyQt und PySide bekannt...

Gruß, noisefloor
Benutzeravatar
__deets__
User
Beiträge: 1304
Registriert: Mittwoch 14. Oktober 2015, 14:29

Re: Gehen die border-styles nicht überall?

Beitragvon __deets__ » Mittwoch 30. August 2017, 21:48

Oh Gott du hast gefragt.... es ist natürlich der Versuch auch Qt mit seinem GUI-Builder zu verhackstücken.
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Re: Gehen die border-styles nicht überall?

Beitragvon Alfons Mittelmeyer » Donnerstag 31. August 2017, 00:15

noisefloor hat geschrieben:Hallo,

was ist denn `QtTk` für ein Modul zur Anbindung von Python an Qt? Mir ist bis dato nur PyQt und PySide bekannt...

Gruß, noisefloor

Das ist ein Modul, das habe ich aber nocht nicht fertig - sondern es steht noch am Anfang - welches tkinter durch Qt emuliert. Der Sinn wäre, tkinter Programme unter Qt auszuführen und dann auch deren GUI nach Qt zu konvertieren. Da ich auch fast die tcl/tk Konvertierung nach tkinter fertig habe, könnte man dann auch eine tcl/tk GUI nach Qt konvertieren.
Benutzeravatar
noisefloor
User
Beiträge: 1942
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: Görgeshausen
Kontaktdaten:

Re: Gehen die border-styles nicht überall?

Beitragvon noisefloor » Donnerstag 31. August 2017, 06:34

Hallo,

Oh Gott du hast gefragt...

Ja - hätte ja theoretisch auch ein C&P Fehler sein können.

Der Sinn wäre, tkinter Programme unter Qt auszuführen und dann auch deren GUI nach Qt zu konvertieren.

Aha, thx. Stell' ich mir zwar schwierig vor, weil Qt im Kern ja konzeptionell einige Sachen anders macht als Tk, aber gut. Jeder kann ja Projekte Programmieren, wie er lustig ist.

Machst du das danach auch für GTK, wenn du mit Qt fertig bist?

Gruß, noisefloor
Alfons Mittelmeyer
User
Beiträge: 1715
Registriert: Freitag 31. Juli 2015, 13:34

Re: Gehen die border-styles nicht überall?

Beitragvon Alfons Mittelmeyer » Donnerstag 31. August 2017, 07:47

noisefloor hat geschrieben:
Der Sinn wäre, tkinter Programme unter Qt auszuführen und dann auch deren GUI nach Qt zu konvertieren.

Aha, thx. Stell' ich mir zwar schwierig vor, weil Qt im Kern ja konzeptionell einige Sachen anders macht als Tk, aber gut. Jeder kann ja Projekte Programmieren, wie er lustig ist.

Machst du das danach auch für GTK, wenn du mit Qt fertig bist?

Gruß, noisefloor

Habe mich noch nicht entschieden, daraus ein Projekt zu machen. Zwischen tkinter und Qt gibt es doch konzeptionelle Unterschiede, man kann nicht einfach tkinter nach Qt konvertieren, sodass es dann genauso aussieht.

Da sind bei grid Unterschiede. Bei Qt beudetet rowStretch nicht, dass die Zeile nicht wächst. rowStretch 0 verhält sich also so, als ob in tkinter weight 1 gesetzt wäre. Dann gibt es Unterschiede beim sticky, das dann in Qt mit QAlignment nicht vollständig umzusetzen ist. Die Nord Süd Ausdehnung, wie etwa bei sticky 'nswe' gibt es da nicht. Man muss solche Sachen dann nachbearbeiten, indem man dann eben die Höhe der Widgets setzt oder die Größe des Grid Layouts anpaßt. Und auch beim Relief muß man nachbearbeiten, indem man eine passende border color ausfindig macht.

Vielleicht schaue ich mir als Nächstes auch mal GTK an, ob damit eine vollständigere Emulierung des Layouts möglich wäre.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder