Найти - Пользователи
Полная версия: Переход от окна аутентификации к основному рабочему окну приложения, pyqt5
Начало » GUI » Переход от окна аутентификации к основному рабочему окну приложения, pyqt5
1
hiroz
Хочу сделать аутентификацию, но меня мучает вопрос: как сделать это нормально. Видел, что можно закрыть окно аутентификации и открыть новое, но это, похоже, странно выглядит. Можете посоветовать что-нибудь?
PEHDOM
hiroz
Видел, что можно закрыть окно аутентификации и открыть новое, но это, похоже, странно выглядит
а что тут странного? зачем вам это окно в памяти если оно уже не нужно?
py.user.next
hiroz
Хочу сделать аутентификацию, но меня мучает вопрос: как сделать это нормально.
А где ты видел аутентификацию в программах? Что именно ты хочешь сделать?
hiroz
py.user.next
Что именно ты хочешь сделать?
Делаю gui для бд, в рамках курсового проекта. Авторизация там должна быть. Хочу узнать, закрытие окна – единственный способ перехода от одного содержания страницы к другому.
py.user.next
А где ты видел аутентификацию в программах?
Вот пример https://www.youtube.com/watch?v=l-pGKGaeL_c
hiroz
PEHDOM
зачем вам это окно в памяти если оно уже не нужно?
А нет такого, что я могу очень быстро поменять содержимое страницы? Например, если человек ресайзит или передвигает по экрану окно ввода пароля, если я открою второе, то оно ж по центру откроется. Или можно как-то узнать размер и положение прошлого окна и задать их для второго?
py.user.next
hiroz
Хочу узнать, закрытие окна – единственный способ перехода от одного содержания страницы к другому.
Да можешь всё в одном окне делать. При правильных данных просто один фрейм заменить на другой. Да и для логина модальный диалог можно использовать, который блокирует всё.

Возможно, ты думаешь, что Qt - это такая простая фигня и там должно всё по мановению волшебной палочки получаться. Вообще-то нет. Там придётся думать, да и книжку прочитать по Qt не помешает, чтобы хорошие привычки сформировать.

Авторизацию можно сделать по-разному. Но каждый способ требует понимания работы с Qt, как там части приложения общаются друг с другом через сигналы, как раскидываются по параллельным потокам, чтобы одни элементы на окне не клинили другие элементы и работали асинхронно.

Я вот сетевой сканер делал, много пришлось поизучать, чтобы понять, как останавливать сканирование по кнопе Cancel, когда оно уже началось. Поначалу она просто блокировалась запущенной задачей и не разблокировалась, пока задача не завершится. А ведь эта кнопка была нужна как раз, чтобы зависшую или слишком долгую задачу отменять. Пришлось не только задачи выносить в отдельные потоки, периодически запускаемые по нажатию кнопки, так ещё и привязывать к ним через сигналы кнопки из главного потока. Так они, запускаясь, не блокируют кнопки главного окна и при этом от кнопок главного окна ещё получают какие-то команды через сигналы. И всё это привязано одно к другому. Ты нажимаешь на кнопку, а там происходит цепочка разных действий, запускающих друг друга. И в итоге у тебя всё правильно работает, всё правильно уничтожается, всё везде успевает завершаться и ничего не теряется.

Чтобы это всё знать, нужно и почитать, и потренироваться на кошках, и только потом написать первый проект, где всё это делается для того, что уже реально нужно на практике.
PEHDOM
hiroz
А нет такого, что я могу очень быстро поменять содержимое страницы? Например, если человек ресайзит или передвигает по экрану окно ввода пароля, если я открою второе, то оно ж по центру откроется. Или можно как-то узнать размер и положение прошлого окна и задать их для второго?
можно и “стереть все” из предвдущего окна,и нарисовать новые виджеты, но ИМХО это тупиковый путь, у тебя получиться просто один огроменный класс окна где будет смешано все: люди, кони….

А можно узнать размер и положение прошлого окна. У любого виджета qt есть туева хуча методов для этого: x(), y(), width(), height(), frameGeometry()..
https://www.riverbankcomputing.com/static/Docs/PyQt4/qwidget.html#x-prop
hiroz
py.user.next
Возможно, ты думаешь, что Qt - это такая простая фигня и там должно всё по мановению волшебной палочки получаться. Вообще-то нет. Там придётся думать, да и книжку прочитать по Qt не помешает, чтобы хорошие привычки сформировать.
Я думаю, что для моих целей пока хватит поверхностного ознакомления, да. Раз уж ты об этом сказал, то может посоветуешь литературу? Что ты читал?
py.user.next
hiroz
Что ты читал?
Я читал по Qt/C++ книжку (автор зарубежный, книжка поверхностная была, но общую картину дала) и документацию к Qt/C++.

Вот книжки основные
https://wiki.qt.io/Books/ru
https://wiki.qt.io/Books

Естественно, не нужно искать книжек по Qt на питоне (если и найдёшь, не факт, что будут хорошими), так как для Qt родной язык - C++.

Вот документация
https://doc.qt.io/
https://doc.qt.io/qtforpython/
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