0 / 2 / 1
Регистрация: 03.12.2019
Сообщений: 16

_tkinter.TclError: NULL main window

03.07.2023, 00:53. Показов 1011. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
import locale
from tkinter import *
from tkinter import messagebox
from tkinter import ttk
import math
import sys
import os
locale.setlocale(locale.LC_ALL, 'RUS')
 
 
#Создаём окно и даём ему имя
root = Tk()
root.geometry(f"340x360+200+300")
root['bg'] = '#33ffe6'
root.title("calc")
root.mainloop()
 
 
#Имена кнопок
bttn_list =[
    "7", "8", "9", "+", "*",
"4", "5", "6", "-", "/",
"1", "2", "3",  "=", "xⁿ",
"0", ".", "±",  "C",
"Exit", "π", "sin", "cos",
"(", ")","n!","√2",
]
 
#Создаём кнопки
r = 1
c = 0
for i in bttn_list:
    rel = " "
    cmd = lambda x=i: calc(x)
    ttk.Button(root, text=i, command= cmd, width= 10).grid(row=r, column=c)
    c += 1
    if c > 4:
        c = 0
        r += 1
calc_entry = Entry(root, width= 33)
calc_entry.grid(row=0, column=0, columnspan=5)
#Логика
def calc(key):
    global memory
    if key == "=":
        str1 = "-+0123456789.*/)("
        if calc_entry.get()[0] not in str1:
            calc_entry.insert(END, "Первый символ не цифра")
            messagebox.showerror("Ошибка", "Введите цифру")
        try:
            result = eval(calc_entry.get())
            calc_entry.insert(END, "=" + str(result))
        except:
            calc_entry.insert(END, "Ошибка")
            messagebox.showerror("Ошибка", "Проверьте корректность ввода")
    elif key == "C":
        calc_entry.delete(0, END)
    elif key == "±":
        if "=" in calc_entry.get():
            calc_entry.delete(0, END)
        try:
            if calc_entry.get()[0] == "-":
                calc_entry.delete(0)
            else:
                calc_entry.insert(0, "-")
        except IndexError:
            pass
    elif key == "π":
        calc_entry.insert(END, math.pi)
    elif key == "Exit":
        root.after(1, root.destroy())
        sys.exit
    elif key == "xⁿ":
        calc_entry.insert(END, "**")
    elif key == "sin":
        calc_entry.insert("=" + str(math.sin(int(calc_entry.get()))))
    elif key == "cos":
        calc_entry.insert(END, "=" + str(math.cos(int(calc_entry.get()))))
    elif key == "(":
        calc_entry.insert(END, "(")
    elif key == ")":
        calc_entry.insert(END, ")")
    elif key == "n!":
        calc_entry.insert(END, "=" + str(math.factorial(int(calc_entry.get()))))
    elif key == "√2":
        calc_entry.insert(END, "=" + str(math.sqrt(int(calc_entry.get()))))
    else:
        if "=" in calc_entry.get():
            calc_entry.delete(0,END)
            calc_entry.insert(END, key)
 
    os.system("pause")
Код при компиляции выводит окно без кнопок. После закрытия окна выдаёт ошибки
Traceback (most recent call last):
File "C:\Users\gener\PycharmProjects\сalc\mai n.py", line 36, in <module>
ttk.Button(root, text=i, command= cmd, width= 10).grid(row=r, column=c)
File "C:\Users\gener\AppData\Local\Programs\P ython\Python39\lib\tkinter\ttk.py", line 607, in __init__
Widget.__init__(self, master, "ttk::button", kw)
File "C:\Users\gener\AppData\Local\Programs\P ython\Python39\lib\tkinter\ttk.py", line 552, in __init__
tkinter.Widget.__init__(self, master, widgetname, kw=kw)
File "C:\Users\gener\AppData\Local\Programs\P ython\Python39\lib\tkinter\__init__.py", line 2572, in __init__
self.tk.call(
_tkinter.TclError: NULL main window
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.07.2023, 00:53
Ответы с готовыми решениями:

Ошибка _tkinter.TclError: wrong # coordinates: expected 0 or 4, got 0
есть код: from tkinter import * from random import * from math import * from time import * def left(event): for i...

Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter?
Как сделать так, чтобы при использовании модуля из tkinter не открывалось окно tkinter? Я пишу приложение на kivy но использую ...

Виджеты tkinter и tkinter.ttk (используется Python 3.5.2)
1) Проблема с виджетом Scale (ползунок) модуля tkinter. Я создал ползунок от 1 до 50 (как на первой картинке). По умолчанию стоит на 1....

1
Заблокирован
03.07.2023, 06:13
Python
1
16 root.mainloop()
рановато поставлена
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.07.2023, 06:13
Помогаю со студенческими работами здесь

System.Windows.Window.Owner.get возвращено null
Подскажите почему переменной main присваивается значение null MainWindow main = this.Owner as MainWindow; if (main != null)...

popup window и surfaceview - holder.lockCanvas() return null
Осуществил попытку добавить в мой popup window surfaceview public void Show() { pw = new PopupWindow(); ...

Uncaught TypeError: Cannot set property 'onclick' of null at window.onload
На этом сайте возникает ошибка http://www.wnero.esy.es Полностью ошибка звучит так Uncaught TypeError: Cannot set property...

Как зовут соглашение о вызовах для функции main консольного Window x 64 приложения?
Как зовут соглашение о вызовах для функции main консольного Window x 64 приложения?

Uncaught TypeError: Cannot set property 'onclick' of null at window.onload (step2:1239)
Ребята. Прошу помочь с решением. Сайт на joomshopping https://byket.lviv.ua/index.php/byketu/checkout/step2 Ошибка после...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru