Layoutproblem mit „label.grid“Python

Python-Programme
Guest
 Layoutproblem mit „label.grid“

Post by Guest »

Ich schreibe einen Python-Texteditor mit TkInter und schreibe das Fenster „Einstellungen“, um die Schriftart, die Schriftgröße usw. zu bearbeiten. Es befindet sich in der Methode __openPreferences() im LampText Klasse. Ich füge darin eine Beschriftung mit dem Text „Standardschriftart auswählen“ ein, um eine Dropdown-Liste zur Auswahl einer der verfügbaren Schriftarten einzuführen. Das Problem ist, wenn ich lblFont.grid(row=1, Column=1) schreibe, funktioniert es nicht – es bleibt in der Standardposition. Selbst wenn ich größere Zahlen verwende, funktioniert es immer noch nicht. Ich habe keine Ahnung von dem Problem.
Hier ist der Code:

Code: Select all

import tkinter

class Menu:
def __init__(self, parent, font):
menu = tkinter.Menu(parent.mainWin, font=font)
parent.mainWin.config(menu=menu)

dpdFile = tkinter.Menu(menu, font=font, tearoff=0)
dpdFile.add_command(label="New")
dpdFile.add_command(label="Open")
dpdFile.add_command(label="Save")
dpdFile.add_command(label="Save As")
dpdFile.add_command(label="New")
dpdFile.add_separator()
dpdFile.add_command(label="Exit")

dpdAbout = tkinter.Menu(menu, font=font, tearoff=0)
dpdAbout.add_command(label="About")
dpdAbout.add_command(label="Release Notes")

dpdPref = tkinter.Menu(menu, font=font, tearoff=0)
dpdPref.add_command(label="Change Preferences", command=parent._LampText__openPreferences)

menu.add_cascade(label="File", menu=dpdFile)
menu.add_cascade(label="About", menu=dpdAbout)
menu.add_cascade(label="Preferences", menu=dpdPref)

class LampText:
def __init__(self, mainWin, txFont, mnFont):
self.final = " - LampText 1.0"
mainWin.title("Untitled" + self.final)
mainWin.geometry("1200x600")
self.mainWin = mainWin

self.txArea = tkinter.Text(mainWin, font=txFont)
self.scrBar = tkinter.Scrollbar(mainWin, command=self.txArea.yview)
self.txArea.configure(yscrollcommand=self.scrBar.set)

self.txArea.pack(side=tkinter.LEFT, fill=tkinter.BOTH, expand=True)
self.scrBar.pack(side=tkinter.RIGHT, fill=tkinter.Y)

self.topBar = Menu(self, mnFont)

def __openPreferences(self):
prefWin = tkinter.Tk()
prefWin.title("Preferences - Notebook 1.0")
prefWin.geometry("600x300")

lblFont = tkinter.Label(prefWin, text="Choose Default Font:")
lblFont.grid(row=1, column=1)

prefWin.mainloop()

if __name__=='__main__':
win = tkinter.Tk()

txFnt = "Tebuchet MS"
txDim = "10"
txFont = (txFnt, txDim)

mnFnt = "Tebuchet MS"
mnDim = "8"
mnFont = (mnFnt, mnDim)

LampTextWin = LampText(win, txFont, mnFont)

win.mainloop()
Vielen Dank für Ihre Hilfe!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post