Найти - Пользователи
Полная версия: Помогите c имортом объекта
Начало » Python для новичков » Помогите c имортом объекта
1 2 3 4
Konstantin_J
Здравствуйте. У меня есть два файлика. Первый главное окно, второй файлик объект меню.
Вопрос: что написать в главном файлике чтобы после запуска объект находился на месте.
Пробовал import menu_top.py показывается главное окно и окно с объектом меню, а мне надо чтобы в главном окне появилось меню из menu_top.py
Скопировать содержимое из одного в другой не предлагать, цель именно в программе из 1000 маленьких простых объектов и функций. А основной фаил должен в себе содержать лишь ссылки на их расположение и отрисовать gui.
Konstantin_J
на данный момент это выглядит так:
start.py
#!/usr/bin/python
from tkinter import * #Импорт модуля tkinter
root = Tk() #Создание главного окна надпись расположение в начале
root.title("Проргамма учёта") #Шапка окна расположение вначале
import menu_top.py
root.mainloop()

menu_top.py
#!/usr/bin/python
#Модуль меню
from tkinter import *
# класс дочернего окна
class menu_top:
    def __init__(self,):
        menu = Menu(root)
        root.config(menu = menu)
        file_menu = Menu(menu)
        menu.add_cascade(label="Фаил", menu=file_menu)
        file_menu.add_command(label="Новый")
        file_menu.add_command(label="Открыть")
        file_menu.add_separator()
        file_menu.add_command(label="Выход", command=root.destroy)
        edit_menu = Menu(menu)
        menu.add_cascade(label="Редактировать", menu=edit_menu)
        edit_menu.add_command(label="До <-")
        edit_menu.add_separator()
        edit_menu.add_command(label="Вырезать")
        edit_menu.add_command(label="Копировать")
        edit_menu.add_command(label="Вставить")
root = Tk()
obj = menu_top()

FishHook
Konstantin_J
import menu_top.py
Покажите то место документации или учебника, в котором написано, что именно так нужно делать импорт модуля.
Konstantin_J
FishHook
вот тут видел http://pythonworld.ru/osnovy/rabota-s-modulyami-sozdanie-podklyuchenie-instrukciyami-import-i-from.html
Konstantin_J
я так понимаю import импортирует вообще всё, а для моей задачи надо получить obj = menu_top() из файла menu_top.py ? пишут что пайтон лёгкий и простой а я уже 3 день гуглю и читаю мануал над одной простой задачей.
Konstantin_J
пишут ещё что где-то надо разместить
if __name__ == '__main__'
    main()
чтобы модуль понимался как модуль, остальное непонятно и не известно
FishHook
Konstantin_J
вот тут видел http://pythonworld.ru/osnovy/rabota-s-modulyami-sozdanie-podklyuchenie-instrukciyami-import-i-from.html
Онлайн
Скриншот прилепи, где ты увидел, что нужно импортировать файл прям с расширением .py
Konstantin_J
без *.py тоже самое происходит, открывается два окна, а надо одно
Konstantin_J
может у меня в самом модуле ошибка? получается там тоже окно создается? если я удаляю from tkinter import * и root = Tk() то вообще ничего не происходит
Konstantin_J
переправил вот так:
from tkinter import * #Импорт модуля tkinter
root = Tk() #Создание главного окна надпись расположение в начале
root.title("Проргамма учёта") #Шапка окна расположение вначале
import menu_top
obj = menu_top()
root.mainloop()

и так:
class menu_top:
    def __init__(self,):
        menu = Menu(root)
        root.config(menu = menu)
        file_menu = Menu(menu)
        menu.add_cascade(label="Фаил", menu=file_menu)
        file_menu.add_command(label="Новый")
        file_menu.add_command(label="Открыть")
        file_menu.add_separator()
        file_menu.add_command(label="Выход", command=root.destroy)
        edit_menu = Menu(menu)
        menu.add_cascade(label="Редактировать", menu=edit_menu)
        edit_menu.add_command(label="До <-")
        edit_menu.add_separator()
        edit_menu.add_command(label="Вырезать")
        edit_menu.add_command(label="Копировать")
        edit_menu.add_command(label="Вставить")

теперь вылезла вот такая ошибка:

>>>
============= RESTART: C:\Users\sk-77-pc\Desktop\личное\test.py =============
Traceback (most recent call last):
File “C:\Users\sk-77-pc\Desktop\личное\test.py”, line 5, in <module>
obj = menu_top()
TypeError: ‘module’ object is not callable
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB