Как сделать несколько вкладок в tkinter

Добавил пользователь Владимир З.
Обновлено: 05.10.2024

Я написал приложение tkinter, которое имело виджеты, отображаемые на двух кадрах, подобно этому примеру, который успешно работает.

Я решил, что должен попытаться перестроить программу, чтобы использовать класс (с которым я, по общему признанию, не очень хорошо знаком). Тем не менее, я не уверен, что я должен сделать, чтобы позволить виджетам появляться на разных кадрах (все остальное работает нормально). Например, следующее производит " TypeError: init () принимает от 1 до 2 позиционных аргументов, но 3 были даны." Так что, по-видимому, мне нужно было бы инициализировать его дополнительным аргументом, но я не уверен, как будет работать блокнот, и если это вообще тот подход, который я должен использовать. (Программа будет работать, если аргументы "frame1" и "frame2" будут удалены из меток, однако она будет отображать одно и то же на обоих кадрах).

Меня интересует решение, но мне также интересно узнать, что делает класс по-другому по сравнению с автономными виджетами.

2 ответа

Я пытаюсь сделать приложение для блокнота - вот мой текущий код: from tkinter import * top=Tk() top.title('Mypad') def save(self,s): self.s=filedialog.asksaveasfilename(defaultextension='.txt') c=open(self.s,'w') w=c.write(str(e.get('1.0','end'))) def close(): top.destroy() menubar=Menu(top).

Эй, ребята, я узнал о Tkinter и сделал несколько приложений GUI. Я экспериментирую с виджетом блокнота и застрял на одном месте. Мне было интересно, есть ли способ использовать for loop для всех текущих вкладок и возвращать текстовые имена всех вкладок вместо идентификатора номера. Я хотел бы.

Это был бы один из способов обобщения приложения как класса. Вы хотите устранить повторяющийся код.

Я предлагаю вам разделить различные кадры в ноутбуке на отдельные файлы. Я использовал from tab2 import*, потому что хотел, чтобы это оставалось в пространстве имен без добавления префикса файла/класса ie. Я не хотел писать: tab1.Tab1(notebook)

Похожие вопросы:

Я уже делал много приложений Tkinter Python раньше, но никогда не сталкивался с этой проблемой: Как установить размеры начального (корневого) окна в Tkinter с Python 3? Я наткнулся на этот вопрос .

Я пытаюсь изменить размер вкладок в виджете tkinter Notebook, но мне не удалось найти ничего, что действительно изменяло бы ширину и высоту вкладок. Разве нет прямого способа изменить их? Или есть.

Хорошо, у меня есть этот простой код: import tkinter.filedialog from tkinter import * import tkinter.ttk as ttk root = Tk() root.title('test') nb = ttk.Notebook(root) nb.pack(fill='both'.

Я пытаюсь сделать приложение для блокнота - вот мой текущий код: from tkinter import * top=Tk() top.title('Mypad') def save(self,s): self.s=filedialog.asksaveasfilename(defaultextension='.txt').

Эй, ребята, я узнал о Tkinter и сделал несколько приложений GUI. Я экспериментирую с виджетом блокнота и застрял на одном месте. Мне было интересно, есть ли способ использовать for loop для всех.

Я создал строку меню в Python 3, и мне интересно, как добавить к ней сочетания клавиш и ускорители. Например, нажать F для меню файлов и все такое. Немного покопавшись, я нашел атрибут underline=.

Я перепроектирую GUI программы, которая использует tkinter в python. Я использовал ttk виджетов для этой программы,но я думаю, что даже на W10 интерфейс слишком стар, поэтому я решил обновить.

Я хочу сделать много вкладок для блокнота, и я хочу поместить их в холст и добавить горизонтальную полосу прокрутки, чтобы я мог прокручивать их через них. Я установил размер холста, но размер.

Я хочу, чтобы каждая вкладка исходила из своего собственного класса (классы находятся в своих собственных файлах - сейчас я просто тестирую первую). Вот что я попробовал: tab1.py from Tkinter import.

какова функция удаления выбранной вкладки блокнота в tkinter? Я ничего не мог найти об этом в интернете? Это код, который я написал, мне нужна только функция: from tkinter import * from tkinter.

Я пытаюсь создать вкладки для каждого класса в tkinter. Но столкнулись с проблемой, что они лежат друг на друге.

Я уже пытался создать новый класс для ноутбука, но результат тот же. Теперь я остановился на этом варианте.

Итак, как я уже сказал, они лежат друг на друге. И вкладки даже не отображаются при запуске программы.

master to self

Upd: после изменения master на self .

При создании класса, который наследуется от Frame , с целью хранения других виджетов, основное правило заключается в том, что все дочерние виджеты должны быть потомками этого класса.

В твоем случае ты этого не делаешь. Вы создаете блокнот, добавляете фреймы в блокнот, но виджеты внутри каждого фрейма устанавливаются как дочерние элементы корневого окна. Они должны быть дочерними элементами фреймов (например: self ).

Эй, ребята, добро пожаловать в эту статью о списке Tkinter и меню опций с помощью Tkinter. Я расскажу вам о некоторых примерах того же самого.

Эй, ребята, добро пожаловать в эту статью о списке Tkinter и меню опций с помощью Tkinter. Я расскажу вам о некоторых примерах того же самого.

  • Что такое список?
  • Создайте свой первый виджет списка Tkinter
    • Добавление элементов в список по отдельности
    • Добавление нескольких элементов в список Tkinter с помощью циклов
    • Добавление кнопок Tkinter для удаления элементов списка
    • Полный код для реализации виджета списка Tkinter
    • Создание объекта Tkinter OptionMenu
    • Полный код для реализации виджета Tkinter OptionMenu

    Что такое список?

    Виджет Listbox в Tkinter широко используется для отображения набора элементов пользователю. Пользователь может выбрать один из этих элементов.

    У нас есть базовый стартовый код, который мы всегда получаем, 400 x 400, и у нас есть значок для названия.

    Поэтому, чтобы создать список, вы просто определяете его, как всегда, и список-это просто тип виджета с tkinter.

    Создайте свой первый виджет списка Tkinter

    Давайте создадим список, назовем его my_listbox и установим его равным Listbox() и поместим его в root .

    Мы упакуем это на экране, и давайте дадим этому pack() и дадим ему “день выплаты жалованья” в размере 15.

    Добавление элементов в список по отдельности

    Теперь, для того, чтобы положить вещи, вы могли бы сделать это несколькими различными способами. Вы можете просто сделать это вручную или создать список, пройтись по списку и поместить в него каждую из этих вещей по одной за раз.

    Мы будем использовать метод my_listbox.insert . Этот метод принимает два параметра. Там есть индекс и строка.

    Таким образом, индекс-это номер индекса, элемент в нашем списке, позиция, в которую мы хотим его поместить, и первый – “0”.

    Добавление нескольких элементов в список Tkinter с помощью циклов

    Давайте добавим список элементов. Поэтому я просто создам свой список , и это будет просто список python , и мы можем поместить сюда все, что захотим. Поэтому я просто вставлю “один”, “два” и “три”, и все в порядке. Теперь мы можем просто пройтись по списку и поместить туда каждый элемент.

    Добавление кнопок Tkinter для удаления элементов списка

    Теперь, когда мы знаем, как добавлять элементы списка, давайте создадим кнопку Tkinter для удаления элементов.

    Если мы нажмем на один из этих элементов, они будут выделены, поэтому давайте создадим кнопку. Мы назовем его my_button, и это будет в корне и упаковать my_button с блокнотом 10.

    Теперь нам нужно создать функцию delete . Когда что-то выделяется в вашем списке после того, как вы нажали на него, оно становится якорем. Итак, мы хотим удалить ЯКОРЬ.

    Полный код для реализации виджета списка Tkinter

    Вывод приведенного выше кода выглядит следующим образом:

    Что такое меню опций?

    Класс Option Menu – это вспомогательный класс, который создает всплывающее меню и кнопку для его отображения. Этот виджет генерирует выпадающий список со многими значениями параметров.

    Давайте создадим простую структуру меню опций.

    Создайте свое первое меню опций Tkinter

    Чтобы создать меню параметров на основе раскрывающегося меню. Первый шаг для этого-перечислить основные вопросы безопасности. Передайте их в меню параметров и создайте запись для ответа.

    Во-первых, мы создадим список вопросов.

    Теперь мы должны передать их через переменную tkvarq. Чтобы понять создание переменной tk, первым альтернативным вариантом для прохождения барьера является root и задайте вопросы для этой переменной с помощью set().

    Это строковая переменная StringVar , мы передаем в нее вопросы, как показано ниже:

    Создание объекта Tkinter OptionMenu

    Вопросы отображаются путем создания объекта Меню опций , а ответы можно ввести в созданное текстовое поле answer_entry . Это текстовое поле было создано с помощью класса Entry .

    Полный код для реализации виджета Tkinter OptionMenu

    Этот код генерирует меню опций, содержащее вопросы. Вы можете выбрать один вопрос, на который хотите ответить, и написать свой ответ на него в предоставленном текстовом поле.

    Пожалуйста, обратите внимание, что этот код не содержит валидаций, то есть он не сообщит вам, является ли введенный ответ правильным или нет.

    Вывод приведенного выше кода выглядит следующим образом:

    Вывод

    Это подходит к концу нашего урока по списку Tkinter и меню опций. Попробуйте приведенные примеры и дайте свой отзыв в разделе комментариев ниже.

    Полоса прокрутки Python-Tkinter

    Полоса прокрутки Python-Tkinter

    • Post author: admin
    • Запись опубликована: 4 декабря, 2021
    • Post category: Python язык программирования

    Python предлагает несколько вариантов разработки графического интерфейса пользователя (GUI). Из всех методов графического интерфейса наиболее часто используется Tkinter. Это стандартный интерфейс Python для инструментария Tk GUI, поставляемого вместе с Python. Python с Tkinter-это самый быстрый и простой способ создания приложений с графическим интерфейсом. Создание графического интерфейса с помощью Tkinter-простая задача.

    Примечание: Для получения дополнительной информации обратитесь к графическому интерфейсу Python – tkinter

    Виджет Полосы прокрутки

    Синтаксис:

    Синтаксис для использования виджета полосы прокрутки приведен ниже.

    Параметры:

    • master: Этот параметр используется для представления родительского окна.
    • options: Существует множество доступных опций, и их можно использовать в качестве пар ключ-значение, разделенных запятыми.

    Опции:
    Следующие часто используемые опции могут быть использованы с этим виджетом :

    • activebackground: Этот параметр используется для представления цвета фона виджета, когда он находится в фокусе.
    • bg: Этот параметр используется для представления цвета фона виджета.
    • bd: Этот параметр используется для представления ширины границы виджета.
    • command: Этот параметр может быть установлен для процедуры, связанной со списком, которую можно вызывать каждый раз при перемещении полосы прокрутки.
    • cursor: В этом параметре указатель мыши изменяется на тип курсора, установленный для этого параметра, который может быть стрелкой, точкой и т.д.
    • elementborderwidth: Этот параметр используется для представления ширины границы вокруг головок стрелок и ползунка. Значение по умолчанию равно -1.
    • Highlightbackground: Этот параметр используется для фокусировки цвета подсветки, когда виджет не имеет фокуса.
    • highlighcolor: Этот параметр используется для фокусировки цвета подсветки, когда виджет имеет фокус.
    • highlightthickness: Этот параметр используется для представления толщины подсветки фокуса.
    • jump: Этот параметр используется для управления поведением перехода прокрутки. Если значение равно 1, то обратный вызов вызывается, когда пользователь отпускает кнопку мыши.
    • orient: Этот параметр может быть установлен в HORIZONTAL или VERTICAL положение в зависимости от ориентации полосы прокрутки.
    • repeatdelay: Этот параметр указывает продолжительность, до которой необходимо нажимать кнопку, прежде чем ползунок начнет двигаться в этом направлении повторно. Значение по умолчанию равно 300 мс.
    • repeatinterval: Значение интервала повторения по умолчанию равно 100.
    • takefocus: Вы можете поместить фокус на вкладку с помощью виджета полосы прокрутки
    • troughcolor: Этот параметр используется для представления цвета желоба.
    • width: Этот параметр используется для представления ширины полосы прокрутки.

    Методы:
    Методы, используемые в этом виджете, следующие:

    • get(): Этот метод используется для возврата двух чисел a и b, которые представляют текущее положение полосы прокрутки.
    • set(first, last): Этот метод используется для подключения полосы прокрутки к другому виджету w. Команда yscroll или команда xscroll другого виджета для этого метода.

    Выход:


    Вам также может понравиться

    Программа на Python для поиска суммы массива

    Программа на Python для поиска суммы массива

    Написание CSV-файлов на Python

    16 декабря, 2021

    Написание CSV-файлов на Python

    find_element_by_css_selector() driver method – Selenium Python

    9 декабря, 2021

    Читайте также: