Форум программистов, компьютерный форум, киберфорум
Python: Tkinter
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 6

Не открывается окно при нажатии кнопки в tkinter

30.05.2019, 15:12. Показов 3425. Ответов 2

Студворк — интернет-сервис помощи студентам
Добрый день! Подскажите, пожалуйста, мне необходимо сделать окно с кнопками, при нажатии на них: графики, окно с информацией. Проблема с кнопками, в том как указать в них функцию к графику/окну. Не понятно на счет переменных (self, event) и в каком месте писать функции. Сейчас при нажатии ничего не открывается, но и ошибок нет.


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
from tkinter import Tk, RIGHT, BOTH, RAISED
from tkinter import Tk, Label, BOTH, Frame, Button, Menu, Canvas, W
from tkinter import ttk
from tkinter.ttk import *
 
import matplotlib.pyplot as plt
import numpy as np
 
 
class Example(Frame):
    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.parent=parent
        self.initUI()
    
    def initUI(self):
        self.parent.title("Buttons")
        self.style=Style()
        self.style.theme_use("default")
        
        frame=Frame(self, relief=RAISED, borderwidth=1)
        frame.pack(fill=BOTH, expand=True)
    #Печать
        self.but=Button()
        self.but["text"]="Печать"
        self.but.bind("<Button-1>",self.printer)
        self.but.pack()
    #Гистограмма
        s=['one','two','three','four','five']
        x=[1,2,3,4,5]
        z1=[50,12,16,27,20]
        fig=plt.figure()
        plt.bar(x,z1)
        plt.title('Simple bar chart')
        plt.grid(True) 
    
        self.but=Button()
        self.but["text"]="Гистограмма"
        self.but.bind("<Button-1>",plt.show)
        self.but.pack()
        
    #Кнопки с функциями
        self.but=Button()
        self.but["text"]="О разработчике"
        self.but.bind("<Button-2>", self.razr)
        self.but.pack()
        
        
        self.but=Button()
        self.but["text"]="Гист 2"
        self.but.bind("<Button-3>", self.A)
        self.but.pack()
        
    #Меню - выход  
        menubar=Menu(self.parent)
        self.parent.config(menu=menubar)
        
        fileMenu=Menu(menubar)
        fileMenu.add_command(label="Exit",command=self.onExit)
        menubar.add_cascade(label="File",menu=fileMenu)
        
    def onExit(self):
        self.quit()
        
    def printer(self, event):
        print("Как всегда 'Hello'")
    
    def razr(self, event):
        root=Tk()
        root.title("О разработчике")
        root.geometry('350x100')
        lb2 = Label(root, text="Разработчик: Андрей.", font=("Arial Bold", 18))
        lb2.grid(column=0, row=0)   
    
    def A(self, event): 
        objects = ('СУЭК', 'Кузбассразресуголь', 'Южный Кузбасс', 'Распадская')
        y_pos = np.arange(len(objects))
        performance = [74.5,18.1,15.6,10.6]
        plt.bar(y_pos, performance, align='center', alpha=0.5)
        plt.xticks(y_pos, objects)
        plt.ylabel('компании')
        plt.title('Крупнейшие уголедобывающие компании России')
        plt.show()
    
 
        
def main():
    root=Tk()
    root.geometry("300x200+300+300")
    app=Example(root)
    root.mainloop()
 
if __name__=='__main__':
    main()
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.05.2019, 15:12
Ответы с готовыми решениями:

При нажатии левой кнопки мыши по окну сайта или стима открывается окно рекламы
При нажатии в поле сайта или на любую ссылку время от времени открывается окно с рандомной рекламой. Логи к сообщению прилагаю.

При нажатии кнопки button1 открывается окно memo1 и в нём запускается программа "появляется по буквам текст из 2 слов"
Задача такая, до этого в колледже проходил только LAD, а тут нам дали задание по c++ Нам нужно что бы по нажатию по кнопке button1...

Как сделать окно tkinter неактивным по нажатии на него. Оверлей на Tkinter
Здравствуйте. Пытаюсь сделать оверлей на tkinter, поскольку многие модули из интернета нерабочее на моем ПК. Уже все готово, кроме одной...

2
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
30.05.2019, 15:40
Лучший ответ Сообщение было отмечено sasmung5550 как решение

Решение

Вы немного не то делаете

вот такая привязка

Python
1
2
3
self.but.bind("<Button-1>",plt.show)
self.but.bind("<Button-2>", self.razr)
self.but.bind("<Button-3>", self.A)
Привязывает кнопки мыши к виджету, соответственно, левую, среднюю и правую

а тут лучше привязать команду непосредственно к нажатию на виджет

Python
1
self.but=Button(command= self.A)
1
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 6
30.05.2019, 15:57  [ТС]
Точно, заработало! Спасибо вам большое!)
Уже все перепробовал, оказывается не те функции использовал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.05.2019, 15:57
Помогаю со студенческими работами здесь

Открывается первое окно, при нажатии на кнопку начать должно смениться на другое окно
Код первого окна: from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class...

Не открывается второе окно при нажатии на окно (ошибка)
Здравствуйте! Хочу создать проект, в котором будет несколько окон и между ними будет происходить переключение кнопками. Так вот, создал...

Как вызвать функцию с новым аргументом при нажатии кнопки в Tkinter?
Всем привет) Начал осваивать питон и столкнулся с такой вот темой, при запуске срабатывает команда на кнопке и функция сразу выполняется,...

При нажатии открывается окно и в нем список
Есть кнопку(&lt;button&gt;Test&lt;/button&gt;) При нажатии открывается окно и в нем список. На одной странице. Как это можно сделать?

При нажатии на кнопку открывается окно memo
есть форма1, на ней кнопка, нужно сделать так чтобы при нажатии на кнопку открывалось мемо. Т.е. нужно создавать еще одну форму да?? и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru