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?
Anmerkung: wenn ich pyqt5 starte bekomme ich immer diese Meldung: libEGL warning: DRI2: failed to authenticate
Gehen die border-styles nicht überall?
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Sieht so aus, als ob da etwas fehlt. Es könnten images für die borders sein, die da fehlen. Vielleicht etwas nicht installiert?
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Naja, ich probier dann mal eine Installation von Source Code
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
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.
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Damit diese Border Stile ein sinnvolles Resultat liefern muss border-color sinnvoll gesetzt sein.
Berauschend ist das Resultat allerdings nicht:
Hier bei background-color '#d9d9d9' und border-color '#8f8f91'
Im Vergleich dazu tkinter:
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.
Berauschend ist das Resultat allerdings nicht:
Hier bei background-color '#d9d9d9' und border-color '#8f8f91'
Im Vergleich dazu tkinter:
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.
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Es sollte aber doch gehen:
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'
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'
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
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
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.
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.
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
Das war mein erstes Qt Programm. Da bin ich noch ein Anfänger:
Code: Alles auswählen
#import tkinter as tk
import QtTk as tk
class Application(tk.Tk):
def __init__(self,**kwargs):
tk.Tk.__init__(self,**kwargs)
self.title('Hello World')
widget = tk.Label(self,text="none",relief='flat',bd=5, bg = '#d9d9d9', fg = 'black')
widget.grid(row=0,column=0)
widget = tk.Label(self,text="solid",relief='solid',bd=5, bg = '#d9d9d9', bordercolor = 'black', fg = 'black')
widget.grid(row=0,column=1)
widget = tk.Label(self,text="ridge",relief='ridge',bd=5, bg = '#d9d9d9', bordercolor = '#a8a8a8', fg = 'black')
widget.grid(row=0,column=2)
widget = tk.Label(self,text="outset",relief='raised',bd=5, bg = '#d9d9d9', bordercolor = '#b0b0b0', fg = 'black')
widget.grid(row=1,column=0)
widget = tk.Label(self,text="inset",relief='sunken',bd=5, bg = '#d9d9d9', bordercolor = '#b0b0b0', fg = 'black')
widget.grid(row=1,column=1)
widget = tk.Label(self,text="groove",relief='groove',bd=5, bg = '#d9d9d9', bordercolor = '#b0b0b0', fg = 'black')
widget.grid(row=1,column=2)
Application().mainloop()
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
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
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
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
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.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
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Machst du das danach auch für GTK, wenn du mit Qt fertig bist?
Gruß, noisefloor
Ja - hätte ja theoretisch auch ein C&P Fehler sein können.Oh Gott du hast gefragt...
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.Der Sinn wäre, tkinter Programme unter Qt auszuführen und dann auch deren GUI nach Qt zu konvertieren.
Machst du das danach auch für GTK, wenn du mit Qt fertig bist?
Gruß, noisefloor
-
- User
- Beiträge: 1715
- Registriert: Freitag 31. Juli 2015, 13:34
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.noisefloor hat geschrieben: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.Der Sinn wäre, tkinter Programme unter Qt auszuführen und dann auch deren GUI nach Qt zu konvertieren.
Machst du das danach auch für GTK, wenn du mit Qt fertig bist?
Gruß, noisefloor
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.