Программы на Python
Anonymous
Окно сразу закрывается
Сообщение
Anonymous » 25 дек 2024, 13:01
Столкнулся со следующей проблемой:
После нажатия кнопки «Создать» окно открывалось на миллисекунду, а затем закрывалось.
файл:
Код: Выделить всё
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 ©
файл:
Код: Выделить всё
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
1735120887
Anonymous
Столкнулся со следующей проблемой: После нажатия кнопки «Создать» окно открывалось на миллисекунду, а затем закрывалось. [code]main.py[/code] файл: [code]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 © [/code] [code]create_client_fn.py[/code] файл: [code]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() [/code] Запустил приложение, нажал кнопку "Создать", окно открывается и закрывается одновременно. Подробнее здесь: [url]https://stackoverflow.com/questions/79307292/window-immediately-closing[/url]