Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 31, 2015 08:22:57

Konstantin_J
Зарегистрирован: 2015-10-31
Сообщения: 24
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите c имортом объекта

Здравствуйте. У меня есть два файлика. Первый главное окно, второй файлик объект меню.
Вопрос: что написать в главном файлике чтобы после запуска объект находился на месте.
Пробовал import menu_top.py показывается главное окно и окно с объектом меню, а мне надо чтобы в главном окне появилось меню из menu_top.py
Скопировать содержимое из одного в другой не предлагать, цель именно в программе из 1000 маленьких простых объектов и функций. А основной фаил должен в себе содержать лишь ссылки на их расположение и отрисовать gui.

Офлайн

#2 Окт. 31, 2015 08:37:19

Konstantin_J
Зарегистрирован: 2015-10-31
Сообщения: 24
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите c имортом объекта

на данный момент это выглядит так:
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()

Офлайн

#3 Окт. 31, 2015 08:54:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите c имортом объекта

Konstantin_J
import menu_top.py
Покажите то место документации или учебника, в котором написано, что именно так нужно делать импорт модуля.



Офлайн

#4 Окт. 31, 2015 08:56:46

Konstantin_J
Зарегистрирован: 2015-10-31
Сообщения: 24
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите c имортом объекта

Офлайн

#5 Окт. 31, 2015 09:10:13

Konstantin_J
Зарегистрирован: 2015-10-31
Сообщения: 24
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите c имортом объекта

я так понимаю import импортирует вообще всё, а для моей задачи надо получить obj = menu_top() из файла menu_top.py ? пишут что пайтон лёгкий и простой а я уже 3 день гуглю и читаю мануал над одной простой задачей.

Офлайн

#6 Окт. 31, 2015 09:40:17

Konstantin_J
Зарегистрирован: 2015-10-31
Сообщения: 24
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите c имортом объекта

пишут ещё что где-то надо разместить

if __name__ == '__main__'
    main()
чтобы модуль понимался как модуль, остальное непонятно и не известно

Офлайн

#7 Окт. 31, 2015 09:40:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите c имортом объекта

Konstantin_J
вот тут видел http://pythonworld.ru/osnovy/rabota-s-modulyami-sozdanie-podklyuchenie-instrukciyami-import-i-from.html
Онлайн
Скриншот прилепи, где ты увидел, что нужно импортировать файл прям с расширением .py



Офлайн

#8 Окт. 31, 2015 09:49:35

Konstantin_J
Зарегистрирован: 2015-10-31
Сообщения: 24
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите c имортом объекта

без *.py тоже самое происходит, открывается два окна, а надо одно

Прикреплённый файлы:
attachment Безымянный.png (474,3 KБ)

Офлайн

#9 Окт. 31, 2015 10:03:15

Konstantin_J
Зарегистрирован: 2015-10-31
Сообщения: 24
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите c имортом объекта

может у меня в самом модуле ошибка? получается там тоже окно создается? если я удаляю from tkinter import * и root = Tk() то вообще ничего не происходит

Офлайн

#10 Окт. 31, 2015 10:07:58

Konstantin_J
Зарегистрирован: 2015-10-31
Сообщения: 24
Репутация: +  0  -
Профиль   Адрес электронной почты  

Помогите c имортом объекта

переправил вот так:

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
>>>

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version