Skalirung von FileChooserButton in Table

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
Satzende
User
Beiträge: 70
Registriert: Samstag 8. Januar 2011, 12:41

Hallo,

Ich weiss nicht wie ich ein Widget in einem Tadle skalieren soll.
Bild

Hab es schon mit "Table.attach(widget,1,1,1,1,xoption =12,yoption=32)" versucht, allerdings gerät dadurch der rest des table in mitleidenschaft.
Mit self.fcb.set_size_request(20,20) geht es nicht.

Code: Alles auswählen


# -*- coding: UTF-8 -*-

import gtk

class window():

    imagePfad = "/home/mathias/Bilder/black.jpg"

    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_default_size(300,200)
        self.window.connect("delete_event",self.event_delete)
        self.window.connect("destroy",self.destroy)


        self.tab = gtk.Table(3,3)
        self.fcb = gtk.FileChooserButton("Name")
        self.ima = gtk.Image()
        self.lab = gtk.Label()

        self.ima.set_from_file(self.imagePfad)

        #self.tab.set_row_spacings(80)
        #self.tab.set_col_spacings(43)

        self.tab.attach(self.ima,1,2,1,2)
        #self.fcb.set_size_request(20,20)
        self.tab.attach(self.fcb,2,3,1,2)

        self.window.add(self.tab)
        self.window.show_all()


    def event_delete(self, widget, event, data=None):
        return False

    def destroy(self, data=None):
        gtk.main_quit()

    def main(self):
        gtk.main()

a = window()
a.main()
Andyh
User
Beiträge: 319
Registriert: Dienstag 8. Januar 2008, 19:52
Kontaktdaten:

Hallo

Das ist ganz einfach. Sage der Table einfach das sich der Button nicht ausdehnen darf und dann kannst du die Größe mit "set_size_request" ändern.
Also einfach die Zeile:

Code: Alles auswählen

self.tab.attach(self.fcb,2,3,1,2)
in ändern:

Code: Alles auswählen

self.tab.attach(self.fcb,2,3,1,2, False, False)
Gruß
Andyh
Meinen Dickschädel schon bemerkt?
Ich bin jetzt FACHARBEITER (Zerspanungsmechaniker)!!!
[code]import sys

if sys.platform == "win32":
print "this program only runs on operating systems!!!"
sys.TotalError()[/code]
Satzende
User
Beiträge: 70
Registriert: Samstag 8. Januar 2011, 12:41

Danke @Andyh

Edit:
Nun driften die widgets beim skalieren auseinander. schaut unschön aus.

Code: Alles auswählen

class window():#Table

    imagePfad = "/home/mathias/Bilder/black.jpg"

    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_default_size(300,200)
        self.window.connect("delete_event",self.event_delete)
        self.window.connect("destroy",self.destroy)


        self.tab = gtk.Table(2,2)
        self.fcb = gtk.FileChooserButton("Name")
        self.ima = gtk.Image()
        self.lab = gtk.Label()
        self.ima.set_from_file(self.imagePfad)
        self.fra = gtk.Frame()


        self.fra.set_size_request(150,150)
        self.tab.attach(self.ima,0,1,0,2)
        self.fcb.set_size_request(100,30)
        self.tab.attach(self.fcb,1,2,0,1,True,False)

        self.lab.set_text("Pfad angabe")
        self.tab.attach(self.lab,1,2,1,2,True,False)


        self.fra.add(self.tab)
        self.window.add(self.fra)
        self.window.show_all()


    def event_delete(self, widget, event, data=None):
        return False

    def destroy(self, data=None):
        gtk.main_quit()

    def main(self):
        gtk.main()
Hab schon mit einer alternativen Lösung aus V/HBOX versucht. Da ist allerdings das Problem das sich FileChooserButton mit skaliert
Antworten