При использовании обещаний блок catch () обычно используется после блока then () для обработки ошибок. Вот почему он может быть использован для нативного API извлечения.
fetch("***")
.then(res => res.json())
.then(
(result) => {
this.setState({
isLoaded: true,
items: result.items
});
}).catch((error) => {
this.setState({
isLoaded: true,
error
});
}
)
Вот является пример:
from tkinter import *;
screen = Tk();
screen.geometry("370x420"); //size of screen
Меняют имя окна
screen.title('Title Name')
<час> Выполнение это:
screen.mainloop();
Если вы не создадите корневое окно, Tkinter создаст его за вас, когда вы попытаетесь создать любой другой виджет. Таким образом, в вашем __init__
, поскольку вы еще не создали корневое окно при инициализации фрейма, Tkinter создаст его за вас. Затем вы вызываете make_widgets
, который создает второе корневое окно. Вот почему вы видите два окна.
Хорошо написанная программа Tkinter всегда должна явно создавать корневое окно перед созданием любых других виджетов.
Когда вы измените свой код, чтобы явно создать корневое окно, вы получите одно окно с ожидаемым заголовком.
Пример:
from tkinter import Tk, Button, Frame, Entry, END
class ABC(Frame):
def __init__(self,parent=None):
Frame.__init__(self,parent)
self.parent = parent
self.pack()
self.make_widgets()
def make_widgets(self):
# don't assume that self.parent is a root window.
# instead, call `winfo_toplevel to get the root window
self.winfo_toplevel().title("Simple Prog")
# this adds something to the frame, otherwise the default
# size of the window will be very small
label = Entry(self)
label.pack(side="top", fill="x")
root = Tk()
abc = ABC(root)
root.mainloop()
Также обратите внимание на использование self.make_widgets()
, а не ABC.make_widgets(self)
. Хотя оба варианта в итоге делают одно и то же, первый является правильным способом вызова функции.
self.parent - это ссылка на фактическое окно, поэтому self.root.title должен быть self.parent.title, а self.root не должен существовать.
Попробуйте что-нибудь вроде:
from tkinter import Tk, Button, Frame, Entry, END
class ABC(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
root = Tk()
app = ABC(master=root)
app.master.title("Simple Prog")
app.mainloop()
root.destroy()
Теперь у вас должно быть фрейм с заголовком, затем вы можете добавить окна для различных виджетов, если хотите.