Вопросы с тегами [tkinter]

0

голосов
0

ответ
17

Просмотры

Не могу понять, почему пятиугольник втягивается неправильно и не движется к правому, как и другие формы делают

Каждая кнопка в нижней части должна нарисовать заданные формы с параметрами справа. Треугольник и квадрат втянуться правильно, но при попытке нарисовать пятиугольник она не соприкасалась на кончике и не будет двигаться к правой exampleImage Heres моего кода: Защита drawTriangle (Я): цвет = self.favorite.get () толщина = INT (self.widthEntry.get ()) длина = INT (self.lengthEntry.get ()) self.canvas.create_line (self.x, self.y, self.x - (длина / 2), самостоятельно. у + длина, заполнить = цвет, ширина = толщина) self.x - = длина / 2 self.y + = длина self.canvas.create_line (self.x, self.y, self.x + длина, self.y, заполнить = цвет, ширина = толщина) self.x + = длина self.canvas.create_line (self.x, self.y, self.x - (длина / 2), self.y - длина, заполнить = цвет, ширина = толщина) self.x - = длина / 2 самостоятельно. self.y, self.x - (длина / 2), self.y + (длина / 3), заполняют = цвет, ширина = толщина) self.x - = длина / 2 self.y + = длина / 3 самостоятельно. canvas.create_line (self.x, self.y, self.x + (длина / 5), self.y + (длина * 2/3), заполняют = цвет, ширина = толщина) self.x + = длина / 5 self.y + = длина * 2/3 self.canvas.create_line (self.x, self.y, self.x + (длина * 4/5), self.y, заполнить = цвет, ширина = толщина) самостоятельно. х + = длина * 4/5 self.canvas.create_line (self.x, self.y, self.x + (длина / 5), self.y - (длина * 2/3), заполняют = цвет, ширина = толщина) self.x + = длина / 5 self.y - = длина * 2/3 self.canvas.create_line (self.x, self.y, self.x - (длина / 2), self.y - (длина / 3), заполняют = цвет, ширина = толщина) self.x - = длина / 2 self.y - = длина / 3 self.x + = 70 РЕДАКТИРОВАТЬ: Ничего себе я так глуп. Была простая математическая задача. Спасибо за помощь! Я прослежу, чтобы отладить еще перед публикацией здесь.
YabbaDabbaDoo
0

голосов
0

ответ
8

Просмотры

tkinger - Как я могу получить правильный виджет для обновления в динамически созданной сетке?

Я создаю сетку фреймов из списка списков. У меня есть класс кадров, который имеет всплывающее меню, связанное с кнопкой-1. Я хотел бы использовать это всплывающее меню, чтобы обновить метку внутри рамы, что называется всплывающим меню. Сейчас текстовая метка только последний кадр является получение обновления. Я пытался играть с связываемых тегами, как я думал, что, может быть, Button-1 становится связан только последний созданный виджет, но кажется, что это был отвлекающий маневр. Я на самом деле совершенно озадачен о том, куда идти дальше. #! / Bin / окр питон импорт Tkinter импорт tkinter.messagebox Защита create_grid (): сетки = [] для я в диапазоне (0, 3001, 1000): строки = [] для J в диапазоне (8): row.append ( I + J) grid.append (строка) grid.reverse () возвращает сетку класс GridFrame (tkinter.Frame): __ __init четкости (самоощущение, корень, индекс, , Команда = root.quit) menubar.add_cascade (метка = "Файл", меню = FileMenu) root.config (меню = MenuBar) my_gui = GridGUI (корень, сетка) root.mainloop () основной () Я ожидаю, что лейбл в Фрейм в берете начала всплывающего меню будет обновляться. С моим текущим кодом, кажется, только метка в наиболее недавно созданных обновлениях фреймов.
Carlisle H
1

голосов
2

ответ
40

Просмотры

Tkinter - со счётчиком выглядит больше, чем ожидалось

Запуск Python3.7 скачанный с python.org на MacOS Мохаве. Я использую следующий код, чтобы выстраиваться Счетчик и Scale для управления той же переменной. Тем не менее, внешний вид не то, что я ожидал: импорт Tkinter, как Tk = корень tk.Tk () мэйнфреймов = tk.Frame (корень) вход # Модель = tk.DoubleVar (значение = 0). # Вход = tk.IntVar ( значение = 0) спин = tk.Spinbox (мэйнфреймы, textvariable = вход, завернуть = True) слайд = tk.Scale (мэйнфреймы, переменный = вход, Orient = 'горизонтальная') спина [ 'до'] = 1.0 спина [ 'из '] = 0,0 спин [' приращение '] = 0.01 слайд [' до '] = 1,0 скольжения [' от '] = 0.0 # спина [' до '] = 100 # спина [' от '] = 0 # спина [' приращение '] = 1 # слайд [' до '] = 100 # слайд [' от '] = 0 # Layout веса = {' спина: 1, 'слайд': 1000} mainframe.grid_rowconfigure (0, вес = 1) мэйнфреймов. grid_columnconfigure (0, вес = вес [ 'спина']) mainframe.grid_columnconfigure (1, вес = вес [ 'слайд']) spin.grid (строка = 0, столбец = 0, 'Новости' липким =) slide.grid ( строка = 0, столбец = 1, липкий = 'новости') root.grid_rowconfigure (0, вес = 1) root.grid_columnconfigure (0, вес = 1) mainframe.grid (строка = 0, столбец = 0) root.mainloop ( ) Я ожидаю, что шкала займет больше места, чем со счётчиком, но оказывается наоборот. Я думал, что, может быть, это потому, что я использовал DoubleVar, где строка может получить долго из десятичной проблемы, но IntVar дает мне тот же результат. Смотрите блоки кода, которые закомментированные. В чем дело? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах? спина ']) mainframe.grid_columnconfigure (1, вес = вес [' слайд ']) spin.grid (строка = 0, столбец = 0, липкий =' Новости) slide.grid (строка = 0, столбец = 1, липкий = 'новости') root.grid_rowconfigure (0, вес = 1) root.grid_columnconfigure (0, вес = 1) mainframe.grid (строка = 0, столбец = 0) root.mainloop () Я ожидаю, что шкала будет принимать больше номер, чем со счётчиком, но оказывается наоборот. Я думал, что, может быть, это потому, что я использовал DoubleVar, где строка может получить долго из десятичной проблемы, но IntVar дает мне тот же результат. Смотрите блоки кода, которые закомментированные. В чем дело? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах? спина ']) mainframe.grid_columnconfigure (1, вес = вес [' слайд ']) spin.grid (строка = 0, столбец = 0, липкий =' Новости) slide.grid (строка = 0, столбец = 1, липкий = 'новости') root.grid_rowconfigure (0, вес = 1) root.grid_columnconfigure (0, вес = 1) mainframe.grid (строка = 0, столбец = 0) root.mainloop () Я ожидаю, что шкала будет принимать больше номер, чем со счётчиком, но оказывается наоборот. Я думал, что, может быть, это потому, что я использовал DoubleVar, где строка может получить долго из десятичной проблемы, но IntVar дает мне тот же результат. Смотрите блоки кода, которые закомментированные. В чем дело? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах? колонка = 0, 'Новости' липким =) slide.grid (строка = 0, столбец = 1, липкий = 'Новости') root.grid_rowconfigure (0, вес = 1) root.grid_columnconfigure (0, вес = 1) ЭВМ. сетка (строка = 0, столбец = 0) root.mainloop () Я ожидаю, что шкала займет больше места, чем со счётчиком, но оказывается наоборот. Я думал, что, может быть, это потому, что я использовал DoubleVar, где строка может получить долго из десятичной проблемы, но IntVar дает мне тот же результат. Смотрите блоки кода, которые закомментированные. В чем дело? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах? колонка = 0, 'Новости' липким =) slide.grid (строка = 0, столбец = 1, липкий = 'Новости') root.grid_rowconfigure (0, вес = 1) root.grid_columnconfigure (0, вес = 1) ЭВМ. сетка (строка = 0, столбец = 0) root.mainloop () Я ожидаю, что шкала займет больше места, чем со счётчиком, но оказывается наоборот. Я думал, что, может быть, это потому, что я использовал DoubleVar, где строка может получить долго из десятичной проблемы, но IntVar дает мне тот же результат. Смотрите блоки кода, которые закомментированные. В чем дело? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах? столбец = 0) root.mainloop () Я ожидаю, что шкала займет больше места, чем со счётчиком, но оказывается наоборот. Я думал, что, может быть, это потому, что я использовал DoubleVar, где строка может получить долго из десятичной проблемы, но IntVar дает мне тот же результат. Смотрите блоки кода, которые закомментированные. В чем дело? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах? столбец = 0) root.mainloop () Я ожидаю, что шкала займет больше места, чем со счётчиком, но оказывается наоборот. Я думал, что, может быть, это потому, что я использовал DoubleVar, где строка может получить долго из десятичной проблемы, но IntVar дает мне тот же результат. Смотрите блоки кода, которые закомментированные. В чем дело? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах? S не так? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах? S не так? Как я должен получить короткий Счетчик и длинную шкалу из этой ситуации? Это Macos конкретно, где ОС накладывает некоторые минимальные размеры на виджетах?
kakyo
0

голосов
2

ответ
21

Просмотры

Как решить ошибки «AttributeError: тип объекта„Image“не имеет атрибута„открыть“» в Python?

Я пытаюсь отобразить изображение в Tkinter холст, и я бегу в следующее сообщение об ошибке. Моя операционная система Mac OS. Мой питон код: от Tkinter импорта * из PIL импорта ImageTk, корень Image = Tk () = холст Холст (корень, ширина = 300, высота = 300) canvas.pack () IMG = ImageTk.PhotoImage (Image.open (» ball.png ")) canvas.create_image (20, 20, якорь = NW, изображение = IMG) root.mainloop () Это отображая сообщение об ошибке следующим образом при запуске: AttributeError: объект типа 'Image' не имеет атрибута 'открыть' Я хочу Tkinter, чтобы отобразить следующее изображение. Но это вместо сообщения об ошибке. Может кто-нибудь, пожалуйста, помогите мне в решении этой ошибки?
Vivek
1

голосов
0

ответ
2.1k

Просмотры

Перетащите файлы на Гуй Tkinter

Предположение: Я использую Python 3.6, и я работаю на Windows, 10 можно создать графический интерфейс с Tkinter, в котором перетащив файл в окне он возвращает путь к файлу? Если с Tkinter это не возможно, есть другое решение, которое может решить эту проблему без установки дополнительных библиотек?
Luca
1

голосов
1

ответ
30

Просмотры

Сохранение данных из нескольких классов

Я посмотрел вокруг много, и я смотрел на многие сопоставимые вопросы и виды ГПИ, но, к сожалению, я до сих пор не в состоянии решить мою проблему. В настоящее время я работаю над графическим интерфейсом Tkinter с несколькими страницами. Люди должны вставить определенные свойства и в конце концов я хотел бы напечатать эти свойства на последней странице. Поэтому я должен Acces значения входа из разных классов. Тем не менее, как-то я не в состоянии это. Может кто-нибудь помочь мне с этим? импорт Tkinter как класс ок Main (tk.Tk): Защита get_page (я, page_class): возвращение self.frames [page_class] Защита __init __ (самоповреждения, * арг, ** kwargs): tk.Tk .__ __ (INIT самостоятельно, * арг ** kwargs) контейнер = tk.Frame (само) container.pack (сторона = "сверху", заполнить = "как", расширение = True) container.grid_rowconfigure (0,
Carmen
1

голосов
3

ответ
372

Просмотры

Tkinter Python 3.x изменения размера изображения

Я хотел бы, чтобы изменить размер изображения с помощью Tkinter. Пожалуйста, обратите внимание, что я не буду использовать PIL для этого. Как я могу в настоящее время этот образ, который работает отлично. логотип = PhotoImage (файл = "logo_dribbble-01_1x.PNG") метка = Ярлык (f1, образ = логотип, BorderWidth = 0, highlightthickness = 0) label.pack () Я хотел бы, чтобы изменить размер изображения так, что логотип выглядит меньше , Я пытался делать это, что было предложено здесь smallLogo = PhotoImage (файл = "logo_dribbble-01_1x.PNG") smallLogo = smallLogo.subsample (2, 2) smallLabel = Ярлык (f1, образ = smallLogo, BorderWidth = 0, highlightthickness = 0 ) smallLabel.pack () Но это создает пустой ярлык без отображения изображения. Я пытался изменить размер изображения с помощью Photoshop и использовать это изображение, а затем использовать это изображение .png, чтобы отобразить изображение меньшего размера, как так: логотип = PhotoImage (файл = «logo_dribbble-01_1xsmall.PNG»
jim bob
1

голосов
0

ответ
160

Просмотры

Python 3.6 тк ScrolledText на TopLevel не вставит

У меня возникли проблемы с кодом ниже, когда я использую Pyinstaller для компиляции исполняемого файла. Я пытаюсь открыть второе окно GUI с помощью TopLevel, добавив виджет ScrolledText к нему, а затем взять выход Ipconfig / все и положить его в ScrolledText. Я разделся код вниз только кода, имеющие отношение к данному вопросу. Если я запускаю файл питона непосредственно, или скомпилировать с Pyinstaller без --windowed команды pyinstaller --onefile toolbox.py, то все, кажется, работает. Когда я компилирую с --windowed pyinstaller --onefile --windowed toolbox.py, затем открывается TopLevel окна, и я получаю сообщение об ошибке, перечисленном в коде и виджете ScrolledText пустое. Я подтвердил, что с помощью обычной строки по команде txt.insert делает работу, поэтому вопросы, как представляется, с os.popen командой. Я попытаться использовать подпроцесс. check_output вместо os.popen но я получаю то же сообщение об ошибке. Кроме того, назначая os.popen команды переменного затем вставляя переменную в txt.insert имеет тот же результат. от Tkinter импорта * из Tkinter импорта TTK из Tkinter импорта MessageBox из Tkinter импорта scrolledtext импорта бя импорт SYS Защиты netIPInfo (): "" "Откройте второе окно, отображает выход Ipconfig / все." "" window2 = Toplevel () window2. название ( "NIC IP Info") window2.geometry ( "663x650") TXT = scrolledtext.ScrolledText (window2, ширина = 80, высота = 40) txt.pack (развернуть = 1, заполнить = "как") попробовать: TXT. вставить (INSERT, os.popen ( "IPCONFIG / все"). чтения ()) # ВОПРОС !! за исключением: е = sys.exc_info () messagebox.showinfo ( "Ошибка",
D.Rowland
1

голосов
1

ответ
1.1k

Просмотры

Printing and inserting selected row in treeview into tkinter entry widget

У меня есть следующий код, чтобы напечатать и вставить выбранный TreeView строку в anentry виджета, но у меня возникают проблемы, о том, как сделать профиль it.My список не отображает содержимое правильно в TreeView, я хочу год появляться в колонке указать на то же как месяц. Когда я выбрать строку он печатает ( «конец»,) на мой терминал и вставляет конец в моем как входной виджет и не выбран. от Tkinter импорта * из профиля Tkinter импорта TTK = [( "2012", "январь"), ( "2013", "февраль"), ( "2014", "МАРТ"), ( "2015", "Апрель") , ( "2016", "может")] содержание четкости (событие): печать (tree.selection) () # это будет печатать строку, вставленный в течение нм tree.selection (): e1.insert (END,
O JOE
1

голосов
0

ответ
50

Просмотры

Rendering дерево с пакетом ete3 путает меню в Tkinter

Я разработка настольных приложений с использованием Tkinter для графического интерфейса. Приложение генерирует несколько вложенных структур данных, которые я хочу, чтобы сделать графически в виде деревьев. Для этого я использую пакет ete3. Однако, когда я сделать деревья в файл изображения, меню в главном окне Tkinter получить перепутались. Дерево отображается правильно в изображение. Вот упрощенная версия кода, который имеет ту же проблему: от Tkinter импорта * от Tkinter импорта TTK, FileDialog из ete3 корня дерева импорта = Tk () root.geometry ( «300x300») строки меню = меню (корень) корень [ 'меню'] = файл строки меню = меню (строка меню, отрывной = 0) menubar.add_cascade (меню = файл, ярлык = 'File') file.add_command (метка = "Открыть") Защита участок (): направление = filedialog.asksaveasfilename (defaultextension = "JPG", Filetypes = ((»
Cartucho
1

голосов
1

ответ
101

Просмотры

необработанные входные данные через вход Tkinter виджета [дублировать]

Этот вопрос уже есть ответ здесь: Как я могу избежать латексной коды, полученными с помощью пользовательского ввода? $ \ Сумма 5 ответов от импорта Tkinter * импорт matplotlib.pyplot как окна рха = Tk () entryBox = запись (окна, текст = 'Команда латексной вход') entryBox.grid (строка = 0, столбец = 0) S =»{ п} = \ гидроразрыва {п (п + 1)} {2} $»plt.text (0,5, 0,5, с, FontSize = 40) plt.show () Этот фрагмент кода отображает только часть выражения следующим : вместо ожидаемого результата: (Это достигается за счет изменения 7-й линии, как: plt.text (0,3, 0,3, г '$ \ сумма {N} = \ {гидроразрыва п (п + 1)} {2} $», размер шрифта = 40)). Я понимаю, что в первом случае мы не передавая строку в качестве исходной строки. Как я могу получить участок для правильного отображения, когда у меня есть строка в качестве переменной строки, но не может ввести его как строковый литерал?
Mutasim Mim
1

голосов
1

ответ
134

Просмотры

ttk.Progressbar не меняет раскладку

Я хочу использовать ttk.Progressbar в моем MusicPlayer приложении позже, но я хочу, чтобы изменить внешний вид первыми. Я обыскивал сеть для ответа, но безрезультатно. Следующий код работает хорошо, если я использую theme_use ( «по умолчанию»), но я не могу использовать его, потому что это изменит стиль моей ttk.Treeview. Для ttk.Treeview я уже создал element_create ( «Custom.Treeheading.border», «с», «по умолчанию») и макет. Я решил сделать еще один макет костюма, но это обыкновение изменить внешний вид виджета. Вот код: импорт Tkinter из Tkinter импорт TTK четкости (stoppb): pb.stop () Защита startpb (): pb.start (100) мастера = tkinter.Tk () master.minsize (ширина = 500, высота = 300 ) master.configure (BG = "# 2c2c2d") s = ttk.Style () # Я не использовать тему, потому что я уже использую create_element #S.
xEatos
1

голосов
0

ответ
40

Просмотры

Python (Tkinter) - Авто-левый щелчок, когда правая кнопка мышь

Я строю GUI с помощью питона с помощью библиотеки Tkinter. Я создал таблицу, которая импортирует данные без проблем и я могу выбрать (выделить) отдельные ячейки и правую кнопку мыши на них, чтобы открыть меню для этой ячейки. Проблема в том, я сначала щелкнуть левой кнопкой мыши на ячейке, чтобы выделить / выбрать его перед правой кнопкой мыши на нем, чтобы вызвать это меню. Если я левой кнопкой мыши на одну ячейку, а затем правой кнопкой мыши на другую клетку, он вызывает меню для этого выделенную ячейку, не тот, что я щелкнул правой кнопкой мыши на. Мой код немного слишком большой, чтобы получить возможность отправлять, но я надеюсь, что я могу получить некоторые общие идеи или примеры кода о том, когда я щелкните правой кнопкой мыши на ячейке, он выбирает его. Спасибо
blindside044
1

голосов
0

ответ
369

Просмотры

Просмотр Google карты внутри Tkinter приложения

содержание)) Когда мы передаем Lat, долго вместе с ключом API Google, это дает нам изображение карты. Для например, in_out (47.6935488, -122,1332999, api_key) дает следующее, теперь я хочу, чтобы отобразить изображение внутри приложения Tkinter. Ниже приведен код, который я написал, DEF show_entry_fields (): печать (in_out (e1.get (), e2.get (), key_lst)) Этикетка (мастер, текст = in_out (e1.get (), e2. получаем (), api_key)). сетка (строка = 2) мастер = tk.Tk () Этикетка (мастер, текст = "широта"). сетка (строка = 0) Этикетка (мастер, текст = "Logitude"). сетка (строка = 1) Этикетка (мастер, текст = "Выход:") .grid (строка = 2) = е1 запись (мастер) е2 = запись (мастер) e1.grid (строка = 0, столбец = 1) e2.grid (строка = 1, колонка = 1) Кнопка (мастер, текст = 'Выход', команда = master.quit) .grid (строка = 5, столбец = 0, липкий = W, pady = 4) # Кнопка (мастер, текст = 'Показать', команда = show_entry_fields) .grid (строка = 3, колонка = 1, липкий = W, pady = 4) Кнопка (мастер, текст = 'Показать', команда = show_entry_fields) .grid (строка = 5, столбец = 1, липкий = W, pady = 4) MainLoop () Когда я запустить этот код, я получаю следующее, изображение отображается в записной книжке IPython. Я хочу, чтобы изображение, которое будет показано в приложении Tkinter. Я попробовал несколько вещей, чтобы решить эту проблему, но она не работает для меня. Может кто-нибудь помочь решить эту проблему? любые выводы были бы полезны. Спасибо Может кто-нибудь помочь решить эту проблему? любые выводы были бы полезны. Спасибо Может кто-нибудь помочь решить эту проблему? любые выводы были бы полезны. Спасибо
haimen
1

голосов
0

ответ
841

Просмотры

Gradient color plot in Matplotlib

Я кодирование приложения питона, который собирает температуру и время от беспроводной сенсорной сети. Кратко фрагмент моего кода, как это: a.set_facecolor ((0,9, 0,9, 1,0)) myFmt = mdates.DateFormatter ( '% H:% M') a.xaxis.set_major_formatter (myFmt) a.xaxis_date () а .set_title ( 'температура БСС') a.set_ylabel ( 'Темп' + U "\ u2103") a.set_xlabel ( 'Time') a.grid (Правда) a.set_ylim ([- 20, 40]) обнаружили, #values в collectsensor.py a.yaxis.set_ticks (np.arange (-20, 40, 5)) a.set_xlim ([timeIntervalLeft, timeIntervalRight]) CMAP = clr.LinearSegmentedColormap.from_list ( "", [ "Darkblue", " синий " "фиолетовый", "желтый", "апельсин", "красный"]) cmap2 = clr.LinearSegmentedColormap.from_list ( "", [ "красный", "апельсин", "желтый","
Condo
1

голосов
1

ответ
260

Просмотры

Tkinter: динамически создавать и удалять записи

Я использую Tkinter создать небольшой графический интерфейс для некоторых сценариев Python. Для этого GUI мне нужна выпадающий список с именем комбо с тремя вариантами: «никто» (пользователь не хочет сдавать ни в данных) «постоянная» (пользователь хочет сдать только одно значение) «регулируемый» (пользователь хочет передать в более чем одно значение) в зависимости от выбора сделано в комбо, должно появиться другое число entrys. Первый вариант не должен иметь записи (и удалить все «оставшийся» entrys), второй должен показывать только один вход и третий должен показать два entrys. Для меня это не проблема, чтобы создать эти entrys, но я не знаю, как заставить их исчезнуть. После того, как они были созданы они остаются до тех пор, пока GUI закрыто. Я пытался что-то вроде этого: импорт Tkinter как мастер Tk = tk.Tk () var1 = tk.StringVar () var2 = tk.StringVar () Защиту представить (): строка = 0) действие = tk.Button (мастер, текст = "Подтвердить", команда = отправить) action.grid (столбец = 1, строка = 0) master.mainloop () Но, как я уже говорил, когда запись была создана она не исчезнет больше. Я также попытался entry.grid_forget () InstEd из entry.destroy (), но это тоже не сработало. Я также судимый объявить entry1 и entry1 вне представить (), но тогда я не знаю, как воссоздать эти entrys, когда они были уничтожены.
eDDie
1

голосов
1

ответ
85

Просмотры

Как удалить столбцы (или строки), в то время как перерисовке сетки в Python3 / Tkinter

У меня есть кусок кода, который создает несколько виджетов и размещает их в сетке (например, 3х2). При наступлении определенного события, я хочу сетки, чтобы перерисовать, но на этот раз переключения позиции (тем самым создавая сетку 2х3). Для простоты, я создал пример кода, где нажатие кнопки делает на замену. ПРОБЛЕМА: нажав на кнопку, виджеты переупорядочивании на сетке, как и ожидалось, но тогда окно показывает «третий» пустой столбец (и симметрично, перенося их снова создает третью пустую строку). Это как образец сетки вспоминает, что был третий столбец перед сменой. Я пытался с уничтожить () ИНГ виджетов, grid_forget () и grid_remove (), но все-таки картина сетки «запоминает» дополнительный столбец / строку это было. Я' м заподозрить проблемы лежат в grid_rowconfigure и grid_columnconfigure, что я должен позвонить, чтобы получить изменяемый эффект. Но я не уверен, как не-настроить их ... так сказать. Кто-нибудь знает, как получить сетку перерисована только колонки и строки, необходимые для новой компоновки отображаемых виджетов? импорт Tkinter как класс тк TestGrid (tk.Frame): Защиту __init __ (я, мастер): tk.Frame .__ INIT __ (я, мастер, бг = 'белый') цвета = [ 'голубой', 'малиновый', 'зеленый' , 'золото', 'лаванда', 'фиолетовые'] self.switch = True self.widgets = [] для я в диапазоне (6): self.widgets.append (tk.Label (я, текст = я, BG = цвета [я])) защиту обновления (я, * арг): self.switch = не self.switch для ш в self.widgets: ш.
Andrea Pattarini
1

голосов
1

ответ
176

Просмотры

Tkinter Canvas позиционирование текста поле ввода

Я получил поле холста и необходимость ввода текста, но я не найти рабочее решение. Существует поле ввода, но в настоящее время центр Северной и мне нужно это поле ввода на левой стороне сайта и я не знаю, как поместить это поле ввода. GUI = Tk () GUI.configure (фон = "# 002E52") GUI.title ( 'Templatewriter') GUI.geometry ( "1920x1080") е = запись (GUI) e.pack () e.delete (0, END ) e.insert (0, "Überschrift Введите Ваше") = Box2 Холст (графический интерфейс, ширина = 200, высота = 50) box2.pack () box2.place (х = 0, у = 0) box2.create_text ((50, 25), текст = "Überschrift 1", заполнить = "черный") LINIE = Холст (GUI, ширина = 10, высота = 1080) linie.pack () = box1 Холст (графический интерфейс, ширина = 1920, высота = 1080) box1 .pack () GUI.mainloop () есть ли вообще это делать?
Victor Vincent
1

голосов
1

ответ
136

Просмотры

Как запустить функцию после того, как окно Tkinter загружается

Если у меня есть функция под названием do_stuff (), как я исполняю его ПОСЛЕ окна TkInter имени корня завершает загрузку.
Person
1

голосов
0

ответ
147

Просмотры

Tkinter Canvas виджет не имеет высоту или ширину атрибутов

Я нашел этот список Canvas виджета атрибутов .: http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/canvas.html В верхней части страницы он говорит: «Tkinter 8,5 ссылки ...». Я импортировать Tkinter с помощью IDLE. 1) Tkinter.TkVersion возвращает 8,5 2) Tkinter.TclVersion возвращает 8,5 Я определяю Canvas виджета в коде: surf_plot = Canvas (корень, Б.Г. = океан) Я тогда делать: root.update () В другой функции, я пытаюсь получить ширина и высота холста. draw_grid_lines (surf_plot) Защита draw_grid_lines (виджет): ширина = widget.width () Высота = widget.height (UTC) Progam терпит неудачу с: AttributeError: экземпляр Холста не имеет атрибут 'Ширина' AttributeError: экземпляр Холст не имеет атрибута 'высоту' Я перепроверил список методов Canvas и атрибуты с использованием IDLE (Netbeans не покажет мне те). Ни один из этих атрибутов появляются. от Tkinter импорта * печать ули (TkVersion) ули печати (TclVersion) Защита gui_quit (): root.quit () Защита define_frames (): океан = surf_plot '# c0c0c0' = Canvas (корень, BG = океан) func_cmd = Рама (корень , BG = 'серый') = std_cmd Рама (корень, BG = 'серый') root.grid_rowconfigure (0, вес = 1) root.grid_rowconfigure (1, вес = 1) root.grid_columnconfigure (0, вес = 2) корень .grid_columnconfigure (1, вес = 2) root.grid_columnconfigure (2, вес = 2) surf_plot.grid (строка = 0, столбец = 0, ColumnSpan = 3, RowSpan = 2, липкая = "с.ш. ю.ш. в.д. з.д.") root.update () draw_grid_lines (surf_plot) func_cmd.grid (строка = 0, столбец = 3, ColumnSpan = 1, RowSpan = 1, липкий = "с.ш. ю.ш. в.д. з.д.") std_cmd.grid (строка = 1, колонка = 3, ColumnSpan = 1, RowSpan = 1, липкий = "с.ш. ю.ш. в.д. з.д.") func_lab = Этикетка (func_cmd, рельеф = РИДЖ ширина = 40, текст = "Функциональные Команды / Unit") std_lab = Метка (std_cmd, рельеф = РИДЖ, ширина = 40, текст = "Стандартные команды") func_lab.grid (строка = 0, столбец = 0) std_lab.grid ( строка = 0, столбец = 0) Защита define_global_buttons (): печать "Внутри определить кнопки" root.bind_all ( '', get_out) root.bind_all ( '', toggle_grid_lines) root.grid () Защита draw_grid_lines (виджет): ширина = widget.width () высота = widget.height () печать «Нам нужно рисовать линии сетки на холсте, который„ул (ширину) + +“широкая и„ул (высоту) + +“высокий» Защита get_out (событие) : печать «Мы отсюда!» gui_quit () Защита toggle_grid_lines (событие): глобальный grid_lines_active печать "Внутри toggle_grid_lines", если grid_lines_active: печать "
L. Price
1

голосов
0

ответ
102

Просмотры

Как запустить и открыть файл .py в Tkinter GUI в Python

Я закодирован графический интерфейс с кнопками и при нажатии одной кнопки я хочу, чтобы запустить .py скрипт, который отображает график, поэтому график должен открыть в другой вид в целом. .Py файл для графа отлично работает самостоятельно, но я пытаюсь реализовать его в мой GUI при нажатии на кнопку (я использовал Tkinter) - Я сделал это с помощью подпроцесса для другого .py файла, но вывод сохраняется не печатается в нижней части. Так что я не уверен, как это сделать, как test.py питона после нажатия на кнопку для того, чтобы открыть в отдельном окне. Вторая кнопка должна быть в состоянии запустить файл .py, но выход должен быть показан в текстовом файле вместо печати в нижней части консоли. Это то, что я до сих пор: Защита визуализация (): #with открытого ( «.png», „г“) в качестве выходной: команды = (»
skcoder
1

голосов
0

ответ
175

Просмотры

Сосредоточьтесь на ttk.Treeview виджет

У меня есть TreeView виджет с вертикальной полосой прокрутки, и я хочу, чтобы полоса прокрутки быть активным (чтобы использовать его с прокрутки мыши), как я наведите курсор мыши над TreeView виджета. Можно ли сделать каким-то образом? Я сделал это легко для текстовых виджетов с помощью widget.bind ( «», widget_focus_callback), но ttk.Treeview имеет различные функциональные возможности для метода фокусировки ().
smoke_lp
1

голосов
1

ответ
142

Просмотры

Python Input Validation для Spacebar и Backspace

Я написал код для графического интерфейса, который позволяет мне ввод телефонного номера в 3 Входе виджетов и возвращает весь номер телефона в отдельном виджете в сторону. Я сумел использовать проверку входных данных, чтобы ограничить количество символов, которые могут быть набраны в каждый виджет, а также ограниченных их только цифры, однако есть некоторые вопросы. После того, как первая цифра набрана в каждую запись, что цифры не могут быть удалены с клавишей возврата, а также после первого входа, пробел ключа разрешено заполнить оставшееся пространство в каждой записи. Как проверить из использования ПРОБЕЛА (пробел?), А также позволяет ключ забоя, чтобы удалить все содержимое виджетов Входа? Вот код: импорт Tkinter в окне Tk = tk.Tk () window.geometry ( '325x75 + 750 + 350') window.resizable (ширина = False, высота = False) window.title ( 'Номер телефона Тест'
Michael Sibille
1

голосов
1

ответ
88

Просмотры

Как перенаправить МЫШЬЮ / перемещение / перетаскивать события из пользовательского захвата этикетки для PanedWindow родителя

Я пытаюсь добавить хороший дескриптор Tkinter.PanedWindow створки. Для этого я помещаю этикетки с настраиваемым захватом изображением рядом с панелью. Пример: от импорта Tkinter * корень = Tk () Pw = PanedWindow (корень, Orient = горизонтальная) l1 = Listbox (PW) pw.add (l1) l2 = Listbox (PW) pw.add (L2) pw.pack (заполнить = ОБА, расширить = 1) gripimg = PhotoImage (данные = "R0lGODlhBAAvAPEAALetnfXz7wAAAAAAACH5BAEAAAIALAAAAAAEAC8AAAIjRBwZwmKomjsqyVdXw / XSvn1RCFlk5pUaw42saL5qip6gnBUAOw ==") griplabel = Метка (PW, образ = gripimg) griplabel.place (relx = 1, полагаются = 0,5, якорь = W, in_ = l1 ) root.mainloop () Это выглядит нормально. Но теперь Ярлык перекрывает створку, крадет события мыши, и я не могу изменить размер PanedWindow путем перетаскивания ярлыка. Как я могу сделать griplabel игнорировать события мыши и перенаправить их всех к PanedWindow створку? Я попытался bindtags, но: griplabel.bindtags (военнопленный bindtags не кажется ()), чтобы сделать что-нибудь, то я до сих пор не могу перетащить ярлык, чтобы изменить размер PanedWindow. Или есть лучший способ создать пользовательский дескриптор для PanedWindow?
pycoder
1

голосов
0

ответ
145

Просмотры

преобразовать изображение в .wav файл и наоборот питона

я пытался делать преобразование, получая значение каждого пикселя, а затем преобразовать его в формат байт, а затем писать его как .wav файл. Однако выходной файл не воспроизводится. Что я делаю неправильно? импорт CV2 импорт NumPy из tkinter.filedialog импорта askopenfilename путь_к_файлу = askopenfilename (InitialDir = "C: / Users / Batman / Документы / Программирование / Tkinter /", Filetypes = (( "JPG", "* .jpg"), ( "Все файлы», "*. *")), название = "Выберите файл.") IMG = cv2.imread (FILE_PATH, 1) cv2.imshow ( 'оригинал', IMG) высота, ширина, каналы = img.shape s = B «» для х в диапазоне (высота): для у в диапазоне (ширина): для г в диапазоне (3):
mikey jan
1

голосов
1

ответ
59

Просмотры

No_output_displaying: Not able to implement detector module in face recognition using tkinter

Please help me.... I'm currently working a face recognition project using python,opencv and tkinter, In the project i tried to implement the detector module in tkinter but it is not working.I'm not receiving any output it works without any syntax error.When i run the code the webcam will turn on but the tkinter window wont be displayed. import cv2,os import sqlite3 import numpy as np import tkinter as tk import cv2 from PIL import Image, ImageTk import pickle import time import datetime width, height = 800, 600 cap = cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_FRAME_WIDTH, width) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height) recognizer = cv2.face.LBPHFaceRecognizer_create() recognizer.read('trainer/trainer.yml') cascadePath = "Classifiers/face.xml" faceCascade = cv2.CascadeClassifier(cascadePath); path = 'dataSet' root = tk.Tk() root.bind('', lambda e: root.quit()) lmain = tk.Label(root) lmain.pack() btn = tk.Button(root, text="End", command=root.destroy) btn.pack(fill="both", expand=True, padx=10, pady=10) def getProfile(Id): conn=sqlite3.connect("facebase.db") cmd="SELECT * FROM people WHERE ID="+str(Id) cursor=conn.execute(cmd) profile=None for row in cursor: profile=row conn.close() return profile #def show_frame(): #_, frame = cap.read() #frame = cv2.flip(frame, 1) #cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA) #img = Image.fromarray(cv2image) #imgtk = ImageTk.PhotoImage(image=img) #lmain.imgtk = imgtk #lmain.configure(image=imgtk) #lmain.after(10, show_frame) def show_frame(): dt=datetime.datetime.now().strftime("%d-%m-%y") tm=datetime.datetime.now().strftime("%H:%M") cam = cv2.VideoCapture(0) fourcc = cv2.VideoWriter_fourcc(*'XVID') out = cv2.VideoWriter('output.avi',fourcc, 4, (640,480)) font = cv2.FONT_HERSHEY_SIMPLEX #Creates a font while True: ret, im =cam.read() gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY) faces=faceCascade.detectMultiScale(gray, 1.2,5) for(x,y,w,h) in faces: cv2.rectangle(im,(x,y),(x+w,y+h),(225,0,0),2) Id, conf = recognizer.predict(gray[y:y+h,x:x+w]) if(conf
Abin Titus John
1

голосов
1

ответ
180

Просмотры

Прогресс матча Python бар для длительного процесса

У меня есть сценарий Python, который имеет некоторые процессы, которые некоторое время, например, как создание файла .shp и открытие .mxd. Я прочитал Python Bar Progress, но я хотел бы избежать использования внешнего пакета. До сих пор у меня есть; от Tkinter импорта * из tkinter.ttk импорт * импорт зева, arcpy тк = Tk () прогресс = Progressbar (Т.К., ориентируют = ГОРИЗОНТАЛЬНЫЙ, длина = 100, режим = 'детерминированный') Защиту бар (): въездной время os.startfile ( "Assignment.mxd") прогресс [ 'значение'] = 20 tk.update_idletasks () time.sleep (8) прогресс [ 'значение'] = 50 tk.update_idletasks () time.sleep (8) прогресс [ 'значение'] = 80 tk.update_idletasks () time.sleep (8) прогресс [ 'значение'] = 100 progress.pack () Кнопка (тк, текст = 'Открыть', команда = бар) .pack () MainLoop () кажется, работать, но я не» т думает, что процесс, чтобы открыть .mxd обращает внимание на какую стадию прогресс бар находится. Я хотел бы получить его так, что завершающий процесс совпадает с индикатором хода достигает 100%. Есть далеко, чтобы получить процесс «ждать» для бара прогресса? Может кто-нибудь предложить некоторые указатели о том, как я мог бы получить эту работу? Спасибо
Dakan_GIS
1

голосов
1

ответ
36

Просмотры

Почему он не отображает текст на этикетке второго окна?

Я новичок в Python. В этом коде Когда я нажимаю на кнопку «войти в», это открывает новое окно ( «второй экран»). После того, как тогда, когда я ввести любой текст в поле ввода, он должен быть печатать текст на этикетке. Но это не печатает. от импорта Tkinter * корень = Ки () root.title ( "главный") root.geometry ( "300x300") Защита вызов 2 (): В = Ки () rt.title ( "второй экран") rt.geometry ( "400x400 . ") а = STRINGVAR () запись (к.т., textvariable = а) .pack () Защита call3 (): б = a.get () Этикетка (к.т., текст = Ь, BG =" зеленый ") пакет () Кнопка (к.т., текст = "уровень печати", команда = call3) .pack () Кнопка (корень, текст = "Введите в", шрифт = 15, команда = вызов 2) .pack ()
suraj pal
1

голосов
1

ответ
274

Просмотры

Tkinter - AttributeError при попытке уничтожить кнопку

Привет Stack Overflowers! Пожалуйста, обратите внимание, что я новичок, и я только учусь. У меня следующая ошибка: AttributeError: «_tkinter.tkapp» объект не имеет атрибута «button_draw» Основная логика, где проблема, кажется, находится в start_game_event. В принципе, если game_type это с дро, то кнопка должна быть создана. Однако, если новая игра сделана на основе текущего окна и кнопка все еще существует, я хочу, чтобы удалить. Я не уверен, если есть другой способ пойти об этом, например, полностью регенерировать основную раму, но вот где я стою. Вот код: от кнопки Tkinter импорта, E, Рама, IntVar, этикетки, ЛЕВЫЙ, MessageBox, N, NE, RadioButton, RIGHT, S, SW, STRINGVAR, Tk, Toplevel, W класса DominoWindow (Tk): Защита __init __ (сами ): супер (). grid_remove () self.destroy Защита quit_party_event (Я): результат = messagebox.askokcancel ( "Выход из игры.", "Вы сюры?", значок = 'предупреждение'), если результат == True: self.destroy () Защита button_to_draw (сам): печать ( "Проверка работы Вы нарисовали домино.!") Защита message_fin_de_partie (Я): пройти, если __name__ == '__main__':. DominoWindow () MainLoop () ошибка находится здесь: self.button_draw. grid_remove () Спасибо, и я надеюсь, что это все понятно. Отредактировано: Убрана зависимость и скорректировали имя переменной. Опечатка. уничтожить () Защиту button_to_draw (Я): печать ( "Проверка работы Вы нарисовали домино.!") Защиту message_fin_de_partie (Я): пройти, если __name__ == '__main__':. DominoWindow () MainLoop () Ошибка находится здесь: self.button_draw.grid_remove () Спасибо, и я надеюсь, что это все понятно. Отредактировано: Убрана зависимость и скорректировали имя переменной. Опечатка. уничтожить () Защиту button_to_draw (Я): печать ( "Проверка работы Вы нарисовали домино.!") Защиту message_fin_de_partie (Я): пройти, если __name__ == '__main__':. DominoWindow () MainLoop () Ошибка находится здесь: self.button_draw.grid_remove () Спасибо, и я надеюсь, что это все понятно. Отредактировано: Убрана зависимость и скорректировали имя переменной. Опечатка.
Nore
1

голосов
1

ответ
96

Просмотры

Застройка в BackSpace и введите функцию в пользовательской программе Python Tkinter

Я строй программы симулятора на Python 3 окна Tkinter. Прогресс в настоящее время срывать из-за ошибки во входной программе я строю сам. Разбитый код, который я работаю прямо сейчас: от Tkinter импорта * корень = Tk () «Нажмите любую клавишу» Запрашивать = label1 = Ярлык (корень, текст = подсказка, BG = «черный», фг = «зеленый») label1.grid (строка = 0, столбец = 0) PROMPT2 = '' DEF ключ (событие): глобальный PROMPT2, если event.char == event.keysym: PROMPT2 = PROMPT2 + event.char Элиф Len (event.char) == 1: PROMPT2 = PROMPT2 + event.char еще: передача label1.config (текст = PROMPT2) root.bind_all ( '', ключ) root.update () root.mainloop () Итак, что я хочу сделать (и пытается делать) является: построить функцию, которая позволяет пользователю использовать BackSpace и остановить их с помощью Enter (так как я не хочу, чтобы перейти на новую строку). Установить переменную Правда, дать программе сигнал для того, когда начинать (с учетом ввода) и когда остановиться. Но я не могу это сделать. Любые предложения по 1 или 2? Скажите, пожалуйста, в разделе комментариев. Заранее спасибо!
hungnguyen
1

голосов
0

ответ
22

Просмотры

Перезапуск окна в переднем плане

Я написал функцию для кнопки перезагрузки, которая начинается моя программа с самого начала. Однако я столкнулся с проблемой, которую я считаю, могут быть специфическими для Mac OS. Когда моя программа перезапускает Opes в доке, а не на экране. В результате, пользователь должен нажать на программу, чтобы открыть его. Я предпочел бы его так, чтобы окно программы запускает прямо на экран. Вот функция для перезапуска программы: Защита restart_program (): Python = sys.executable os.execl (питон, питон, * sys.argv) os.system ( '' '/ USR / BIN / osascript -e' сказать приложение «Finder», чтобы установить процесс самой передней «Python» истину «„“») Вот моя полная программу: от Tkinter импорта * из Tkinter импорта Canvas импорта SYS импорт зева импорта случайного время импорта window1 = Tk () window1.title (» Змея»
SHatna
1

голосов
0

ответ
173

Просмотры

Объектно-ориентированный Tkinter, лучший способ общения между виджетами в графическом интерфейсе с большим количеством кадров

Я пытаюсь выяснить, что лучший способ общения между различными виджетов, где виджеты пользовательские классы, наследующие от Tkinter виджетов и у меня есть несколько кадров, присутствующих (чтобы помочь с управлением макета). Рассмотрим, например, следующий простой графический интерфейс (написанный на Python 3, изменение Tkinter в Tkinter для питона 2): от Tkinter импорта Frame, Button, GUI Tk класса (Frame): четкости __init __ (самости, корень): Рама .__ INIT __ (самостоятельно, корень) self.upper_frame = Рама (корень) self.upper_frame.pack () = self.lower_frame Рама (корень) self.lower_frame.pack () self.upper_btn1 = кнопка (self.upper_frame, текст = "верхняя кнопка 1") self.upper_btn2 = кнопка (self.upper_frame, текст = "верхняя кнопка 2") self.upper_btn1.grid (строка = 0, столбец = 0) self.upper_btn2.grid (строка = 0, столбец = 1) self.lower_btn = CustomButton (self.lower_frame, "нижняя кнопка 3") self.lower_btn.pack () класс CustomButton (кнопка): Защита __init __ (я, мастер, текст): Кнопка .__ INIT __ (я, мастер , текст = текст) self.configure (команда = self.onClick) Защита OnClick (Я): печать ( "здесь я хочу, чтобы изменить текст верхней кнопки 1") корень = Tk) my_gui = GUI (корень) корень (. MainLoop () причина я положил их в разных, потому что я хочу использовать различные менеджеры компоновки в двух разных, чтобы создать более сложную схему. Тем не менее, я хочу команду в lower_btn изменить свойство, например upper_btn1. Тем не менее, я не могу сразу получить доступ к upper_btn1 из экземпляра lower_btn настроенного класса CustomButton. Родитель lower_btn является frame2, и frame2, родитель корень (не графический интерфейс экземпляра). Если изменить родительский lower_btn к GUI, например, т.е. self.lower_btn = CustomButton ( «нижняя кнопка» самостоятельно,) он не будет помещен правильно при использовании пакета (). Если изменить родительский Frame1 / frame2 к GUI, например, т.е. self.upper_frame = кадр (сам) self.upper_frame.pack () self.lower_frame = рамы (сам) self.lower_frame.pack () Я мог бы в принципе доступа upper_btn1 от lower_btn по self.master.master.upper_btn1, НО тогда frame1 / frame2 не правильно установлены с помощью пакета () (это я не понимаю, почему). Я могу, конечно, передать GUI экземпляр в качестве отдельной переменной, на вершине мастера, чтобы CustomButton, то есть что-то вроде класса CustomButton (кнопка): четкости __init __ (я, мастер, окна, текст): Кнопка .__ инициализации __ (самости, мастер, текст = текст) самостоятельно. окно = окно self.configure (команда = self.onClick) Защита OnClick (Я): self.window.upper_btn1.configure (текст = "новый текст"), а затем изменить конструкцию lower_btn к self.lower_btn = CustomButton (я. lower_frame, самость, «нижняя кнопка 3»), но в том, что «правильный» способ сделать это? Итак, что это лучший способ реорганизовать графический интерфейс? Должен ли я передать GUI как отдельная переменная в верхней части главного / родительского аргумента? Должен ли я изменить мастер / родитель кнопок и / или кадров (и как-то исправить проблемы с управлением макетом)? Или я должен сделать команды кнопок в качестве методов экземпляра GUI, чтобы они могли взаимодействовать с виджетами в этом графическом интерфейсе, хотя это на самом деле не чувствует, как объектно-ориентированное программирование? Я могу' т показаться, чтобы найти ориентированный дизайн рабочего объекта, который чувствует себя «правильно». Кроме того, объяснение, почему упаковка () не работает для frame1 / frame2 если я экземпляр GUI (само) мастера, также будут оценены, как это было бы мое интуитивное, наиболее объектно-ориентированный подход. Edit: Может быть, лучший способ, чтобы не использовать кадры внутри кадров на всех, и использовать только сетку (), а затем использовать Colspan / RowSpan дать управление компоновкой большую гибкость.
Jonathan Lindgren
1

голосов
0

ответ
106

Просмотры

Tkinter как прикрепить полосу прокрутки ListBox используя место?

привет я хочу, чтобы прикрепить полосу прокрутки ListBox, используя место, но оно не отображается в программе мой код: TXT = Listbox (корень, ширина = 60, высота = 25, шд = 0, рельеф = Затонувший) LB2 = Listbox (корень, ширина = 15, высота = 25, шд = 0) txt.place (relx = 0,4, полагаются = 0,45, ширина = 360, высота = 400, якорь = CENTER) lb2.place (relx = 0,87, полагаются = 0,45, якорь = CENTER) = полоса прокрутки полосы прокрутки (рама, ориентируют = "вертикальный") scrollbar.config (команда = txt.yview) scrollbar.place (х = 400, полагаются = 0,45, ширина = 10, высота = 100, якорь = "центр") txt.config (yscrollcommand = scrollbar.set), если я запустить программу, я не могу видеть скроллбар. Отредактировано: извините, вот мой полный код из Tkinter импорта * корень = Tk () root.geometry ( "500x600") кадр = кадр (корень) frame.pack () # l1 = Ярлык (корень, текст = "Введите сообщение") l2 = Метка (корень, текст = «Введите свое имя»,
HI YUM
1

голосов
1

ответ
359

Просмотры

Python вставки изображения в заблуждение Tkinter

Я хочу, чтобы вставить изображение в мой Tkinter, но я получил сообщение об ошибке: TclError: изображение «pyimage7» не существует. Я использую WinPython-64-3.3.5.9. Я попытался «rozmery.gif», но это не помогло. от импорта Tkinter * от PIL импорта ImageTk, Image app_root = Tk () #Setting его IMG = ImageTk.PhotoImage (Image.open ( "rozmery.png")) #Displaying его imglabel = Метка (app_root, изображение = IMG). сетка (строка = 1, колонка = 1) app_root.mainloop ()
1

голосов
1

ответ
51

Просмотры

No module named “encondings”

When running my Python peoject everything is ok. After i compile my project in Windows with pyinstaller pyinstaller __main__.spec there is a problem when running the .exe file. Py_initialize: unable to load the file system codec ModuleNotFoundError: No module named 'encondings' Bellow is my main.spec # -*- mode: python -*- block_cipher = None a = Analysis(['__main__.py'], pathex=['C:\\Users\\user\\PycharmProjects\\l_concept'], binaries=[], datas=[], hiddenimports=['encodings'], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher) exclude_binaries=False, name='__main__', debug=False, strip=False, upx=True, console=True ) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, a.binaries, Tree('C:\\Users\\user\\PycharmProjects\\l_concept\\providers', prefix='providers'), Tree('C:\\Users\\user\\PycharmProjects\\l_concept\\utils', prefix='utils'), exclude_binaries=False, name='__main__', debug=False, strip=False, upx=True, console=True ) coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='__main__') When i compile my program in linux everithing is ok, i already added the lin hiddenimports=['encondings'] to my .spec file but nothing was changed. Thank you in advance.
João Costa
1

голосов
0

ответ
123

Просмотры

Кнопка Tkinter не работает в исполняемый файл, но делать, если скрипт выполняется

Я новичок на этом форуме и на Tkinter и мне нужна ваша помощь. Я пытаюсь создать графический интерфейс. Моя программа отлично работает, когда я запускаю файл с Python 2.7, но одна из кнопок не работает, когда я создаю исполняемый файл благодаря pyinstaller. Моя программа очень проста: я выбираю камеру в списке доступных из них, нажмите на кнопку «Display» и видеокадра от выбранной камеры должны отображаться в новом окне, благодаря OpenCV. «Бросить» кнопку здесь, чтобы выйти из приложения. Когда я создаю исполняемый файл, благодаря pyinstaller, отображается окно, я могу выбрать камеру, но кнопка «Дисплей» не работает. Я действительно не понимаю, почему, и не отображается сообщение об ошибке. Большое спасибо за вашу помощь импорта CV2 из Tkinter импорта * класс Гуй: четкости __init __ (сам): я.
Mathilde D
1

голосов
0

ответ
43

Просмотры

Сброс значений поля ввода ошибочного TkInter

Я пытаюсь получить Tkinter, чтобы очистить поле ввода каждый раз, когда нажимается кнопка Как я хочу, чтобы моя программа для работы заключается в следующем. Всякий раз, когда пользователь выбирает статистическое распределение, ряд varriable полей ввода появляется справа (количество переменных полей ввода варьироваться в зависимости от statisical распределения. Я хотел бы, чтобы пользователь имел возможность изменять значения полей ввода несколько раз. переменные затем кормите в расчет в сценарии. в настоящее время, поле ввода только хранит и возвращает первое значение, введенное пользователем. Поэтому я хочу, чтобы очистить entrybox каждый раз перед окончательным расчетом называется. Я знаю, что мне нужно использовать variablename.delete (0, END) команда, но у меня возникли проблемы с его реализацией. Я могу succsefully получить entrybox ясно, но по какой-то причине, когда я вставить этот синтаксис в код, мой синтаксис маркировки перестает работать. Ниже мой текущий код. Я включил 2 отдельных блоков кода. Первый показывает мою текущую попытку по устранению проблемы с помощью variablename.delete (0, END) метода. Метод удаления прекрасно работает, но по некоторым причинам импорта Tkinter как Ки из tkinter.ttk импорта * из scipy.stats импорта * импорт NumPy в н.п. импорт панд как мастер PD = tk.Tk () master.title ( «Газ Калькулятор») v = tk.IntVar () комбо = Выпадающий (мастер) #possible коробки ввода в зависимости от статистики распределения выбраны f1 = tk.Entry (мастер) 2 = tk.Entry (мастер) f3 = tk.Entry (мастер) f4 = Tk .entry (мастер) f5 = tk.Entry (мастер) f6 = tk.Entry (мастер) f7 = tk.Entry (мастер) f8 = tk.Entry (мастер) f1.grid (строка = 3, колонка = 5) f2 .grid (строка = 3, колонок = 6) f3.grid (строка = 3, колонок = 7) f4.grid (строка = 3, колонок = 8) f5.grid (строка = 3, колонок = 9) f6. ток (0) #set выбранного элемента comboARS.grid (строка = 3, колонок = 3) comboARS.bind ( "", callbackARS) #testing функции для проверки и убедитесь, что поля ввода очищается. должен быть использован в cuncjuntion с помощью кнопки кодированной ниже. Защиту тестирования (): test1 = поплавок (f1.get ()) test2 = поплавок (f2.get ()) testsum = test1 test2 * печать (testsum) tk.Button (мастер, текст = 'Calculate', команда = тестирование, ширина = 20) .grid (строка = 35, колонка = 1, липкий = tk.W, pady = 4) Пожалуйста, дайте мне знать, если я могу уточнить что-нибудь.
Josiah Hulsey
1

голосов
0

ответ
204

Просмотры

Use tcl 8.6 with compiled python

Требования: Мы хотим построить питон v3.6.4 от источника, а затем распространить его как деготь, так что он может быть использован в другой машине, просто распаковка его. Встроенный питон должен работать с TCL v8.6 Проблемой: Встроенный питон ищет tcl8.5 сборки машину: CentOS 7 Шагов в здании являются следующим: - ни -y установить OpenSSL-разви Wget НКУ грим ки-Devel - Wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz - MkDir -p /opt/mayur/python/3.6.4/lib - тар -xvf Python-3.6.4 .tgz - CD Python-3.6.4 - ./configure prefix = / Opt / Mayur / Python / 3.6.4 --enable-юникода = UCS4 --enable-общий LDFLAGS = "- Wl, -rpath / опт / Mayur / Python / 3.6.4 / Библиотека»- сделать altinstall - тар НАСТ.ВИДОИС python3.6.4.tar -C /opt/mayur/python/3.6.4/ Затем, когда я распаковка выше встроенный дегтя в / Opt / Mayur / питон / 3.6.4 в других машинах и запустить импорт Tkinter, он бросает следующий error- файл «/opt/mayur/python/3.6.4/lib/python3.6/tkinter/__init__.py», строка 36, в импорт _tkinter # Если это не ваш Python не может быть сконфигурирован для Tk ImportError: libtk8.5.so: не удается открыть общий объектный файл: нет такого файла или каталога через некоторые отладки, я был в состоянии понять, что поддержка CentOS тк-разви 8,5 только. Таким образом, версия Ок-Devel, который получил установленную на первом этапе была v8.5.13 и так, питон ищет libtk8.5.so. Я видел это сообщение и изменить Configure к ./configure prefix = / Opt / Mayur / Python / 3.6.4 --enable-юникода = UCS4 --enable-общий LDFLAGS = "- Wl, -rpath / опт / Mayur / Python / 3.6.4 / Библиотека»--with-tcltk-включает в себя = -I / Opt / Mayur / TCL / 8.6.6.8606 / включают --with-tcltk-LIBS = -L / Opt / Mayur / TCL / 8.6 .6.8606 / Библиотека Но это тоже не работает. Может кто-нибудь дать некоторые указатели о том, как построить питона v3.6.4 и связать его с tcl8.6? И как питон решить, какой TCL использовать?
1

голосов
2

ответ
201

Просмотры

Шахматные изменений игрок Gui с Tkinter

Проблема заключается в том, что она не Канг игрока всякий раз, когда я изменить игрок Edit: я редактировал код. Эта функция создает случай платы, это только половина кода, потому что это то же самое для каждой части: четкости cree_case (Ligne, COLONNE): случай = Canvas (рамы, ширина = 100, высота = 100, highlightthickness = 1, highlightbackground = "черный") Защита нажмите (событие): Joue (LIGNE, Colonne) Защита click2 (событие): label_joueur [ "текст"] = "cchzohdc" joue2 (Ligne, Colonne, L, C, Joue) label_joueur [ "текст"] = ( "choissisez ипе часть") case.bind ( '', нажмите) case.bind ( '', click2) х, у = 55, 55, если доска [Ligne] [COLONNE] [0] == "F" и доска [Ligne] [Колонны] [2] == "W": case.create_image (х, у,
adam saimi
1

голосов
0

ответ
37

Просмотры

Проблема с использованием tkinter.button.place ()

место (self.x, self.y, self.height, self.width) TypeError: place_configure () занимает от 1 до 2 позиционных аргументов, но 5 были даны Это меня смущает, потому что я использую button.place, не button.place_configure. Есть идеи?
tmcdo13

Просмотр дополнительных вопросов