Окно сразу закрываетсяPython

Программы на Python
Ответить
Anonymous
 Окно сразу закрывается

Сообщение Anonymous »

Столкнулся со следующей проблемой:
После нажатия кнопки «Создать» окно открывалось на миллисекунду, а затем закрывалось. файл:

Код: Выделить всё

from PyQt5.QtCore import Qt
import PyQt5.QtWidgets as qt
import database as db # файл, соеденяющий БД с приложением
import create_client_fn

app = qt.QApplication([])
window = qt.QWidget()

# НАЧАЛО ФРОНТЭНДА

window.setWindowTitle("Запись клиентов by EevVee's Projects")
window.resize(650, 610)

main_layout = qt.QHBoxLayout()

clients_list_layout = qt.QVBoxLayout() # в составе мэйн
spisok_nadpis = qt.QLabel("Список клиентов:")
clients_list = qt.QListWidget()
clients_list_layout.addWidget(spisok_nadpis)
clients_list_layout.addWidget(clients_list)

but_style = "background-color:  rgb(173, 99,  219);"

find_clients_layout = qt.QVBoxLayout() # в составе мэйн
create_and_search_layout = qt.QHBoxLayout() # в составе файнд
create_btn = qt.QPushButton("Создать")
create_btn.setStyleSheet(but_style)
create_and_search_layout.addWidget(create_btn)
search_field = qt.QLineEdit()
search_field.setPlaceholderText("Любая инфо о клиенте")
create_and_search_layout.addWidget(search_field)
search_btn = qt.QPushButton("Найти")
search_btn.setStyleSheet(but_style)
create_and_search_layout.addWidget(search_btn)
find_clients_layout.addLayout(create_and_search_layout)
list_of_found_clients_layout = qt.QVBoxLayout() # в составе файнд
list_of_found_clients = qt.QListWidget()
list_of_found_clients_layout.addWidget(list_of_found_clients)
find_clients_layout.addLayout(list_of_found_clients_layout)

menu_of_app = qt.QVBoxLayout() # в составе мейн # создает лэйаут для кнопок с доп разделами.
notes_sv_btn = qt.QPushButton("Заметки\nсупервизий") # заметки супервизий
sess_descrs_btn = qt.QPushButton("Описания\nсессий") # описания сессий
shedule_btn = qt.QPushButton("Расписание")  #   р а с п и с а н и е   с е с с и й < b r   / > n o t e s _ s v _ b t n . s e t S t y l e S h e e t ( b u t _ s t y l e ) < b r   / > s e s s _ d e s c r s _ b t n . s e t S t y l e S h e e t ( b u t _ s t y l e ) < b r   / > s h e d u l e _ b t n . s e t S t y l e S h e e t ( b u t _ s t y l e ) < b r   / > m e n u _ o f _ a p p . a d d W i d g e t ( n o t e s _ s v _ b t n ) < b r   / > m e n u _ o f _ a p p . a d d W i d g e t ( s e s s _ d e s c r s _ b t n ) < b r   / > m e n u _ o f _ a p p . a d d W i d g e t ( s h e d u l e _ b t n ) < b r   / > < b r   / > m a i n _ l a y o u t . a d d L a y o u t ( c l i e n t s _ l i s t _ l a y o u t ) < b r  />main_layout.addLayout(find_clients_layout)
main_layout.addLayout(menu_of_app)

# КОНЕЦ ФРОНТЭНДА

create_btn.clicked.connect(create_client_fn.main)

window.setLayout(main_layout)
window.show()
app.exec_()

# 2024 EevVee's Projects ©

Код: Выделить всё

create_client_fn.py
файл:

Код: Выделить всё

from PyQt5.QtCore import Qt
import PyQt5.QtWidgets as qt
import database as db
def main():
window = qt.QWidget()
window.setWindowTitle("Создать клиента")

# создаем основной лэйаут
main_layout = qt.QVBoxLayout()

# создаем дополнительные лэйауты для ввода данных клиентов(все пренадлежат main_layout)
l_name_field_layout = qt.QHBoxLayout()
f_name_field_layout = qt.QHBoxLayout()
fa_name_field_layout = qt.QHBoxLayout()
age_field_layout = qt.QHBoxLayout()
dateofrequest_field_layout = qt.QHBoxLayout()
relations_field_layout = qt.QHBoxLayout()
children_field_layout = qt.QHBoxLayout()
job_field_layout = qt.QHBoxLayout()
hobby_field_layout = qt.QHBoxLayout()
request_field_layout = qt.QHBoxLayout()
ust_kontr_field_layout = qt.QHBoxLayout()
save_button_layout = qt.QHBoxLayout()

# создаем поля для информации и кнопку для создания записи
l_name_field = qt.QLineEdit()
f_name_field = qt.QLineEdit()
fa_name_field = qt.QLineEdit()
age_field = qt.QLineEdit()
dateofrequest_field = qt.QLineEdit()
relations_field = qt.QTextEdit()
children_field = qt.QTextEdit()
job_field = qt.QTextEdit()
hobby_field = qt.QTextEdit()
request_field = qt.QTextEdit()
ust_kontr_field = qt.QTextEdit()
save_button = qt.QPushButton("Создать")

# создаем подписи к полям
l_name_label = qt.QLabel("Фамилия")
f_name_label = qt.QLabel("Имя")
fa_name_label = qt.QLabel("Отчество")
age_label = qt.QLabel("Возраст")
dateofrequest_label = qt.QLabel("Дата обращения")
relations_label = qt.QLabel("Отношения")
children_label = qt.QLabel("Дети")
job_label = qt.QLabel("Работа")
hobby_label = qt.QLabel("Хобби/увлечения")
request_label = qt.QLabel("Запрос")
ust_kontr_label = qt.QLabel("Устный контракт")

# добавляем подписи к соответствующим второстепенным лэйаутам
l_name_field_layout.addWidget(l_name_label)
f_name_field_layout.addWidget(f_name_label)
fa_name_field_layout.addWidget(fa_name_label)
age_field_layout.addWidget(age_label)
dateofrequest_field_layout.addWidget(dateofrequest_label)
relations_field_layout.addWidget(relations_label)
children_field_layout.addWidget(children_label)
job_field_layout.addWidget(job_label)
hobby_field_layout.addWidget(hobby_label)
request_field_layout.addWidget(request_label)
ust_kontr_field_layout.addWidget(ust_kontr_label)

# добавляем поля и кнопку к соответствующим второстепенным лэйаутам
l_name_field_layout.addWidget(l_name_field)
f_name_field_layout.addWidget(f_name_field)
fa_name_field_layout.addWidget(fa_name_field)
age_field_layout.addWidget(age_field)
dateofrequest_field_layout.addWidget(dateofrequest_field)
relations_field_layout.addWidget(relations_field)
children_field_layout.addWidget(children_field)
job_field_layout.addWidget(job_field)
hobby_field_layout.addWidget(hobby_field)
request_field_layout.addWidget(request_field)
ust_kontr_field_layout.addWidget(ust_kontr_field)
save_button_layout.addWidget(save_button)

# добавляем второстепенные лэйауты к основному
main_layout.addLayout(l_name_field_layout)
main_layout.addLayout(f_name_field_layout)
main_layout.addLayout(fa_name_field_layout)
main_layout.addLayout(age_field_layout)
main_layout.addLayout(dateofrequest_field_layout)
main_layout.addLayout(relations_field_layout)
main_layout.addLayout(children_field_layout)
main_layout.addLayout(job_field_layout)
main_layout.addLayout(hobby_field_layout)
main_layout.addLayout(request_field_layout)
main_layout.addLayout(ust_kontr_field_layout)
main_layout.addLayout(save_button_layout)

# на этом фронтэнд завершен

# устанавливаем лэйаут для окна
window.setLayout(main_layout)

# отображаем окно
window.show()
Запустил приложение, нажал кнопку "Создать", окно открывается и закрывается одновременно.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ly-closing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»