Aussehen von Tkinter unter Linux

Fragen zu Tkinter.
Antworten
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 8. Januar 2010, 15:52

Hi,
ist es möglich, Tkinter unter Linux (GTK) ein hübscheres Aussehen zu verpassen? Wenn man sich Screenshots von Mac oder Windows anschaut sieht das ja ganz passabel aus, aber unter Linux sieht man irgendwie nur dieses häßliche Motif Design.

Tkinter wäre für mein nächstes Vorhaben eigentlich genau das richtige, aber es sollte schon halbwegs ansprechend aussehen.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 8. Januar 2010, 15:56

Es gibt ttk, aber dadurch wird es nur ein wenig besser. Habe ich in der Arbeit verwendet und gewünscht ich könnte es gegen Qt auswechseln. Zum Glück musste ich ich nicht auch noch damit programmieren.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 8. Januar 2010, 16:03

Mhm, dann werde ich mich doch mit PyGTK anfreunden müssen. Für das Projekt will ich kein Qt verwenden, um dicke Librarys zu vermeiden. Muss mal nen Größenvergleich machen.

Aber das Projekt basiert auf Xubuntu und soll möglichst schlank bleiben. Sowohl was Platz auf der Platte als auch im RAM angeht und auch auf alten Rechnern (Pentium 3 mit 256MB RAM) noch laufen. Tkinter wäre da noch vertretbar gewesen, PyGTK ist eh dabei. Oder kann ich mir guten Gewissens PyQt leisten? Soll optional auch mit py2exe für Windows exportiert werden.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Freitag 8. Januar 2010, 16:08

burli hat geschrieben:Hi, ist es möglich, Tkinter unter Linux (GTK) ein hübscheres Aussehen zu verpassen?
Wenn du Python 3.1 verwendest (was sich beim Einsatz von Tkinter aus optischen Gründen lohnt), hast du - ohne die Notwendigkeit des Imports externer Module - die Möglichkeiten von ttk. Wie das aussehen kann, siehst du z.B. hier: http://wiki.tcl.tk/11075

Die Varianten xpnative und winnative stehen unter Linux allerdings nicht zur Verfügung. Ob das dann deinen Ansprüchen genügt, musst du selbst sehen.
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Freitag 8. Januar 2010, 16:25

mhm, clam oder alt sähen einigermaßen brauchbar aus. Ich will aber noch nicht auf Python 3 setzen, weil ich noch mehr Projekte hab, für die Python 3 noch nicht ausgereift genug ist.

Ich werde mich wohl mit PyGTK befassen, da das Projekt, für das es gedacht ist, sowieso Xfce, also GTK, verwendet. Extra wegen einem so kleinen Tool das komplette Qt Geraffel oder Python 3 nachinstallieren wäre Overkill
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 8. Januar 2010, 16:53

numerix hat geschrieben:Wenn du Python 3.1 verwendest (was sich beim Einsatz von Tkinter aus optischen Gründen lohnt), hast du - ohne die Notwendigkeit des Imports externer Module - die Möglichkeiten von ttk. Wie das aussehen kann, siehst du z.B. hier: http://wiki.tcl.tk/11075
Wobei das echt nur die paar Widgets sind, für Menüleisten etwa hat ttk keinen Support und das sieht dann sehr nach Kraut und Rüben aus.
numerix hat geschrieben:Die Varianten xpnative und winnative stehen unter Linux allerdings nicht zur Verfügung. Ob das dann deinen Ansprüchen genügt, musst du selbst sehen.
Es gibt gtknative und qtnative. Habe gtknative ausprobiert und es sieht so nativ aus wie das GTK+ LookAndFeel von Swing, sprich nicht wirklich, und was vor allem negativ aufgefallen ist, ist dass es dadurch furchtbar lahm wurde. Vielleicht ists mit dem Qt-Ding da besser, aber das was ich gesehen habe hat mich nicht begeistert.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
problembär

Dienstag 12. Januar 2010, 01:28

Ich finde, wenn man die Schrift groß genug stellt, ist es eigentlich erträglich (obwohl Barbara Meier schon immer noch hübscher ist :mrgreen:):

Code: Alles auswählen

#!/usr/bin/env python

import Tkinter
import tkMessageBox

class myWindow:

    def __init__(self):

        self.mw = Tkinter.Tk()
        self.mw.title("Not too ugly")
        self.mw.option_add("*font", ("Arial", 15, "normal"))
        self.mw.geometry("+250+200")

        self.lab1 = Tkinter.Label(self.mw, text = "Please enter something:")
        self.lab1.pack()

        self.entr1 = Tkinter.Entry(self.mw, bg = 'white')
        self.entr1.pack()

        self.btn1 = Tkinter.Button(self.mw, text = "Ok", command = self.btnClick)
        self.btn1.pack()

        self.btn2 = Tkinter.Button(self.mw, text = "Exit", command = self.mw.destroy)
        self.btn2.pack()

        self.mw.mainloop()

    def btnClick(self):
        tkMessageBox.showinfo(title = 'From entr1', message = "Entryfield 1 contains: " + self.entr1.get())

if __name__ == "__main__":
   app = myWindow()
Da fällt mir ein: Gibt es eigentlich Fonts, bei denen man davon ausgehen kann, daß sie auf Linux-Systemen vorhanden sind? Hab's hier in Anlehnung an Windows mit "Arial" versucht (ist wohl oft zumindest ein Link zu diesem Namen vorhanden) ...

Gruß
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Dienstag 12. Januar 2010, 08:18

Naja, ohne self.mw.option_add(...) finde ich es schöner. Mag es nicht, wenn Anwendungen so herausstechen.
pyStyler
User
Beiträge: 311
Registriert: Montag 12. Juni 2006, 14:24

Dienstag 12. Januar 2010, 12:12

Hi,

schau mal ob dir das hier hilft! :wink:
http://www.python-forum.de/topic-12034. ... light=look


Gruß
pyStyler
problembär

Mittwoch 13. Januar 2010, 00:56

burli hat geschrieben:Naja, ohne self.mw.option_add(...) finde ich es schöner.
:shock:
Du mußt ja die Fontgröße nicht direkt übernehmen, sondern kannst/solltest den Font so einstellen, wie Du es haben möchtest. Oder bist Du mit dem mikrigen Standardfont von Tk zufrieden?

Gruß
burli
User
Beiträge: 1116
Registriert: Dienstag 9. März 2004, 18:22

Mittwoch 13. Januar 2010, 07:44

Weiß nicht, wenn es allein steht geht es

Bild

Nur im Kontext mit dem Rest wirkt es unangenehm störend
Antworten