[Python-de] Framehöhe und Scrollbar

Martin Grabbel mgrabbel at web.de
Fri May 23 11:31:17 EDT 2003


Hallo Liste!

Ich habe mal wieder ein Verständisproblem. Ich möchte ein Frame in
seiner Höhe beschränken und gleichzeitig an der Seite ein
funktionierenden Scrollbar haben.
Nun habe ich gelesen, das man, wenn man die Höhe beschränken will,
man auch '.grid_propagate(0)' auf das Frame anwenden soll, aber
irgendwie funktioniert das in meinem Script nicht.
Nebenbei verstehe ich nicht, wie ich den Scrollbar anwenden muß. Ich
habe zwar einen erzeugt und auch auf das Textfeld angewandt, welches
mit Inhalt gefüllt wird, aber ich mache da wohl einen großen
Denkfehler. Vielleicht kann mir hier ja wieder jemand helfen, ich
bastel nun schon seit zwei Tagen daran rum.
Gruß,

Martin

Hier einmal mein Script:
#---------------------------
def showAllRecord():
  try:
    connection =
MySQLdb.connect(host=host,db=db,user=user,passwd=passwd)
    cursor = connection.cursor()
    cursor.execute ("select * from " + table + " order by title;")
    data = cursor.fetchall()
    databaseWindow = Tk()

    ### Das Hauptframe, welches in seiner Höhe begrenzt werden soll
    masterField = Frame (databaseWindow, height=30, bd=10)
    masterField.grid_propagate(0)
    masterField.pack(fill=BOTH)

    headingField = Frame (masterField)
    headingField.pack(fill=BOTH)
    
    ### Der Scrollbalken soll den Inhalt vom slaveField scrollen
    scrollMaster = Scrollbar (masterField)
    scrollMaster.pack(side=RIGHT,fill=Y)
    slaveField = Text (masterField, yscrollcommand=scrollMaster.set)
    slaveField.pack(fill=BOTH)
    scrollMaster.config(command=slaveField.yview)

    connection =
MySQLdb.connect(host=host,db=db,user=user,passwd=passwd)
    cursor = connection.cursor()
    cursor.execute ("select * from " + table + " order by title;")
    data = cursor.fetchall()
    data1 = int(lengthDatabase())
    labelNr = Label (headingField, width=4, text='Nr.', anchor=W)
    labelNr.pack(side=LEFT)
    ....
    ....
    ....
    labelOwner = Label (headingField, width=6, text='Bes.',
anchor=W)
    labelOwner.pack(side=LEFT)
    allRecords = StringVar()
    for i in range(0,data1,1):
      if data[i-1][7]:
        format = '\n'+data[i-1][7]
      else:
        format = ''
      dataField = Frame (slaveField)
      dataField.pack(side=TOP)
      textNr = Text (dataField, width=4, height=4, relief=GROOVE)
      textNr.pack(side=LEFT)
      ....
      ....
      ....
      textOwner = Text (dataField, width=7, height=4, relief=GROOVE)
      textOwner.pack(side=LEFT)
      textNr.insert('1.0',str(i+1))
      ....
      ....
      ....
      textOwner.insert('1.0',replace(data[i][10],',','\n'))
    connection.close()
    databaseWindow.mainloop()
    return
  except:
    showerror ('Anzeigen aller Datensätze','Fehler!')
    return




More information about the Python-de mailing list