Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
8 / 5 / 3
Регистрация: 18.03.2019
Сообщений: 122

Найти ошибку в методе класса

01.03.2020, 16:03. Показов 484. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
class MainWindow:
 
    def __init__(self, master):
        self.master = Toplevel(master)
        self.master.title("Main window")
 
        self.init_main()
 
    def init_main(self):
        dir3 = StringVar()
        fn = StringVar()
 
        file_name = ''
 
        # menu bar
        self.master.main_menu = Menu()
        self.master.configure(menu=self.master.main_menu)
 
        self.master.file_menu = Menu()
        self.master.main_menu.add_cascade(label="Файл", menu=self.master.file_menu)
        self.master.file_menu.add_command(label="Создать БД")
 
    def New(self, askdirectory):
        global dir_name
 
        self.master.dir_name = askdirectory()
        self.master.dir1 = Label(text='Путь к файлу:', justify=CENTER)
        self.master.dir1.grid(row=0, column=0, sticky="w", pady=10)
        dir3.set(dir_name)
        self.master.dir2 = Label(textvariable=dir3, justify=CENTER)
        self.master.dir2.grid(row=0, column=0, sticky="w", pady=10)
 
        self.master.base = Label(text='БД: (*.db)', justify=CENTER)
        self.master.base.grid(row=1, column=0, sticky="w", pady=10)
        self.master.base_name = Entry(textvariable=fn)
        self.master.base_name.grid(row=1, column=1, sticky="w", pady=10)
 
        self.master.b1 = Button(text="Создать", command=self.CreateDB)
        self.master.b1.grid(row=2, column=0, sticky=E, pady=10)
 
    def CreateDB(self):
        global file_name
        self.master.file_name = dir_name + '/' + fn.get() + '.db'
        conn = sqlite3.connect(file_name)
        cursor = conn.cursor()
        self.master.base5 = Label(text=file_name, justify=CENTER)
        self.master.base5.grid(row=5, column=0, sticky="w", pady=10, columnspan=22)
После того, как открывается это окно, то при нажатии на Создать БД в меню-баре не происходит
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2020, 16:03
Ответы с готовыми решениями:

Передача типа производного класса как type parameter в generic методе в методе базового класса
Здравствуйте. Есть классы: абстрактный A и, его производные, B, C и т.д.. В классе A есть метод DoSomething, в ходе выполнения...

Найти ошибку в методе Зейделя
n = 5; A = {{2, 12, -5, 1, 0}, {0.81, 0, -10, 3, -1}, {44, 22, -1, 0, 5}, {-1.8, 0, 6, -22, 1}, {-1, 0, 0, 3.12, 18.4}}; a =...

Найти ошибку в методе Якоби
Помогите найти ошибку в методе якомби скрин и файл прилагаю

5
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
01.03.2020, 16:17
Цитата Сообщение от NaxUK Посмотреть сообщение
После того, как открывается это окно, то при нажатии на Создать БД в меню-баре не происходит
Во первых уберите глобальные переменные, если вы используете класс, то они не нужны

Python
1
2
3
4
5
6
7
def __init__(self, master):
        self.master = Toplevel(master)
        self.master.title("Main window")
        self.dir_name = ''
        self.file_name = ''
 
        self.init_main()
и в методах класса используйте self.file_name и self.dir_name

а в меню вы не добавили саму команду

Python
1
self.master.file_menu.add_command(label="Создать БД", command=self.CreateDB)
1
8 / 5 / 3
Регистрация: 18.03.2019
Сообщений: 122
01.03.2020, 16:45  [ТС]
Я изменил вот таким образом

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
class MainWindow:
 
    def __init__(self, master):
        self.master = Toplevel(master)
        self.master.title("Main window")
 
        self.init_main()
 
    def init_main(self):
 
        # menu bar
        self.master.main_menu = Menu()
        self.master.configure(menu=self.master.main_menu)
 
        self.master.file_menu = Menu()
        self.master.main_menu.add_cascade(label="Файл", menu=self.master.file_menu)
        self.master.file_menu.add_command(label="Создать БД", command=self.CreateDB)
 
    def New(self):
 
        self.dir_name = askdirectory()
        self.dir1 = Label(text='Путь к файлу:', justify=CENTER)
        self.dir1.grid(row=0, column=0, sticky="w", pady=10)
        dir3.set(self.dir_name)
        self.dir2 = Label(textvariable=dir3, justify=CENTER)
        self.dir2.grid(row=0, column=0, sticky="w", pady=10)
 
        self.master.base = Label(text='БД: (*.db)', justify=CENTER)
        self.master.base.grid(row=1, column=0, sticky="w", pady=10)
        self.master.base_name = Entry(textvariable=fn)
        self.master.base_name.grid(row=1, column=1, sticky="w", pady=10)
 
        self.master.b1 = Button(text="Создать", command=self.Create)
        self.master.b1.grid(row=2, column=0, sticky=E, pady=10)
 
    def CreateDB(self):
        self.file_name = self.dir_name + '/' + fn.get() + '.db'
        conn = sqlite3.connect(self.file_name)
        cursor = conn.cursor()
        base5 = Label(text=self.file_name, justify=CENTER)
        base5.grid(row=5, column=0, sticky="w", pady=10, columnspan=22)
Но как быть с переменными dir3 и fn?
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
01.03.2020, 17:02
Цитата Сообщение от NaxUK Посмотреть сообщение
Но как быть с переменными dir3 и fn?
а откуда они берутся?
0
8 / 5 / 3
Регистрация: 18.03.2019
Сообщений: 122
01.03.2020, 17:05  [ТС]
Эти 2 переменные были в методе def init_main(self)

Добавлено через 23 секунды
Они определялись как StringVar()
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,301
01.03.2020, 17:11
Цитата Сообщение от NaxUK Посмотреть сообщение
Эти 2 переменные были в методе def init_main(self)
тогда тоже self
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2020, 17:11
Помогаю со студенческими работами здесь

Не могу найти ошибку в методе
Здравствуйте. Условия задачи такие: Написать функцию для расчета стоимости заказа с учетом скидок • Всего есть два вида товаров, в...

Найти ошибку в методе Симпсона
using System; namespace Simpson { public class Program { public static void Main(string args) { ...

Найти ошибку в методе интерполирования
Доброе время суток помогите найти ошибку в программу , (при табличных значениях х алгоритм должен выдавать значения табличные, но как видно...

Найти ошибку в методе упорядочения Шелла
народ мне сбросили задачу которая маё упорядочивать элементы методом шелла но она почемута не работает посмотрите где здесь ошибка есть ...

Найти ошибку в методе наложения. Постоянный ток
Например, I1 должен получиться 4, а у меня 9 выходит.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru