Ich versuche mit tkinter eine einfache App in Python zu erstellen. Es enthält zwei Zeilen für die Dateiauswahl (Spalte mit Beschriftungen auf Frame1, labelFrame, und Spalte mit Eintrags- und Schaltflächenpaaren auf einem zweiten Frame, addressFrame) sowie zwei Schaltflächen in der unteren rechten Ecke, die für diesen Beitrag nur Platzhalter sind, die ich für das gesamte Layout beibehalten habe.
Das Fenster sieht so aus: Hauptansicht. Das Problem tritt auf, wenn ich versuche, die Größe zu ändern. Ich möchte, dass es weiterhin wie folgt minimiert werden kann:Minimierte Ansicht, aber wenn ich es dehne, entsteht zwischen labelFrame und addressFrame viel Leerraum, den ich nicht möchte: Maximierte Ansicht
Ich möchte, dass labelFrame zusammen mit addressFrame verkürzt wird, wenn ich das Fenster minimiere, aber beim Erweitern möchte ich, dass die Größe geändert wird nur bis zu einer bestimmten Breite (längste Etikettenlänge + ein paar Pixel), während addressFrame (im Grunde nur die Dateiadresse im Eintrag) weiter expandiert. Es scheint, dass ich nur das eine oder das andere haben kann: Entweder ist die Breite von labelFrame vollständig festgelegt und wird nicht minimiert, bis addressFrame aus der Ansicht verschwindet, wenn ich den Mainframe bewege, oder durch Dehnen entsteht zusätzlicher Platz.
Bitte helfen Sie.
Hier ist der Code:
Ich versuche mit tkinter eine einfache App in Python zu erstellen. Es enthält zwei Zeilen für die Dateiauswahl (Spalte mit Beschriftungen auf Frame1, labelFrame, und Spalte mit Eintrags- und Schaltflächenpaaren auf einem zweiten Frame, addressFrame) sowie zwei Schaltflächen in der unteren rechten Ecke, die für diesen Beitrag nur Platzhalter sind, die ich für das gesamte Layout beibehalten habe. Das Fenster sieht so aus: Hauptansicht. Das [url=viewtopic.php?t=26065]Problem[/url] tritt auf, wenn ich versuche, die Größe zu ändern. Ich möchte, dass es weiterhin wie folgt minimiert werden kann:Minimierte Ansicht, aber wenn ich es dehne, entsteht zwischen labelFrame und addressFrame viel Leerraum, den ich nicht möchte: Maximierte Ansicht Ich möchte, dass labelFrame zusammen mit addressFrame verkürzt wird, wenn ich das Fenster minimiere, aber beim Erweitern möchte ich, dass die Größe geändert wird nur bis zu einer bestimmten Breite (längste Etikettenlänge + ein paar Pixel), während addressFrame (im Grunde nur die Dateiadresse im Eintrag) weiter expandiert. Es scheint, dass ich nur das eine oder das andere haben kann: Entweder ist die Breite von labelFrame vollständig festgelegt und wird nicht minimiert, bis addressFrame aus der Ansicht verschwindet, wenn ich den Mainframe bewege, oder durch Dehnen entsteht zusätzlicher Platz. Bitte helfen Sie. Hier ist der Code: [code]from tkinter import * # from tkinter import Tk for Python 3.x from tkinter import ttk from tkinter import filedialog
def validateInputs(): #placeholder return True
def calculate(): #placeholder return True
class FileSelect(Frame): def __init__(self,parent=None,**kw): Frame.__init__(self,master=parent,**kw) self.filePath = StringVar() self.entPath = Entry(self, width=50, textvariable=self.filePath) self.entPath.grid(row=0,column=0,sticky='nsew') self.btnFind = ttk.Button(self, text="...",command=self.setFolderPath) self.btnFind.grid(row=0,column=1,sticky='e') def setFolderPath(self): file_selected = filedialog.askopenfilename() # show an "Open" dialog box and return the path to the selected file self.filePath.set(file_selected) @property def file_path(self): return self.filePath.get()
class labelFrame(ttk.Frame): def __init__(self, container): super().__init__(container) # setup the grid layout manager self.columnconfigure(0, weight=1) self.__create_widgets() def __create_widgets(self): ttk.Label(self, text='Choose file 1 with the main data:').grid(column=0, row=0, sticky='ew') ttk.Label(self, text='Choose file 2 for verification:').grid(column=0, row=1, sticky='ew') for widget in self.winfo_children(): widget.grid(padx=0, pady=5)
class addressFrame(ttk.Frame): def __init__(self, container): super().__init__(container) # setup the grid layout manager self.columnconfigure(0, weight=3) self.__create_widgets() def __create_widgets(self): file1 = FileSelect(self) file1.grid(row=0, sticky='nsew') file1.columnconfigure(0, weight=3) file2 = FileSelect(self) file2.grid(row=1, sticky='nsew') file2.columnconfigure(0, weight=3) for widget in self.winfo_children(): widget.grid(padx=0, pady=3)
Ich versuche mit tkinter eine einfache App in Python zu erstellen. Es enthält zwei Zeilen für die Dateiauswahl (Spalte mit Beschriftungen auf Frame1, labelFrame, und Spalte mit Eintrags- und...
Ich erstelle eine App in Python mit der Customtkinter-Bibliothek. Ich verwende den Grid()-Widget-Manager. Bisher habe ich nur ein paar Rahmen als Grundlayout, kann diese aber nicht richtig...
Es ist schwierig, die funktionale Programmierung streng auf Python anzuwenden. Insbesondere wenn ein Zähler erforderlich ist, um für einen Aufruf mithilfe einer Rekursion zu wechseln. Meine...
Ich habe das folgende Problem. Ich habe eine Desktop-Anwendung erstellt, um Rechnungen für die Firma meines Vaters zu erstellen. Der Computer, für den ich diese Anwendung geschrieben habe, ist ein...