С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/30: Рейтинг темы: голосов - 30, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
PySide

Открытие формы по нажатию PushButton

23.04.2021, 14:17. Показов 6207. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создал 14 форм в QtDesigner(1 стартовая с кнопками которые должны открывать остальные 13).
Не могу разобраться как прописать что бы по нажатию на 1 форме открывалась другая форма,13 кнопок и соответствующие 13 форм.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2021, 14:17
Ответы с готовыми решениями:

Открытие другой формы по нажатию на button
День добрый, только начал учить PyQt5. Потыкал пару примеров в интернетах, создал MainWindow, кнопочки там, все такое. Но тут возникла...

Открытие формы по нажатию
Код кнопки: <a class="control" href="javascript:;" onclick="openStaticPopup()">Открыть профиль</a> <div...

Открытие формы по нажатию клавиши
Привет форумчане! Я создаю программку, и мне надо чтобы когда я допустим нажал F5 у меня переключилось на 2 форму. И когда нажал F5...

22
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
23.04.2021, 14:32
Python
1
button1.clicked.connect(form1.show)
0
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
23.04.2021, 14:34  [ТС]
а как прописать это более? как то поподробнее можно?
0
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
23.04.2021, 14:39  [ТС]
В архиве есть файлы от Qt и уже конвертированные в Python
Вложения
Тип файла: rar Python.rar (987.4 Кб, 21 просмотров)
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
23.04.2021, 16:28
adde7999, вам уже написали, читайте про сигналы и слоты в Qt.
0
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
23.04.2021, 17:45  [ТС]
DmFat, можно ссылки к этим постам?
0
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
24.04.2021, 11:02
Судя по содержимому этого архива, там не одна стартовая и 14 второстепенных, а, наоборот, 14 стартовых и одна второстепенная

Начинать имена модулей с цифры- плохо
0
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
24.04.2021, 11:24
Лучший ответ Сообщение было отмечено adde7999 как решение

Решение

Цитата Сообщение от adde7999 Посмотреть сообщение
как то поподробнее можно?
где-то в начале стартового файла
Python
1
from модуль_первой_формы_тот_который_1.py import Ui_TabWidget
где-то в конструкторе стартовой формы копируем из секции if __name__ == "__main__":
Python
1
2
3
4
tabWidget = QtGui.QTabWidget()
ui = Ui_TabWidget()
ui.setupUi(tabWidget)
self.p1.clicked.connect(tabWidget.show)
1
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
24.04.2021, 22:24  [ТС]
kapbepucm, да уже по запарке быстро написал 14, да названия писать цифрой плохо, это просто что бы понимать порядок нужных мне форм.

Добавлено через 1 минуту
kapbepucm, Завтра обязательно попробую и отпишусь

Добавлено через 2 часа 58 минут
kapbepucm, Смог прописать открытие нужной формы по нажатию кнопки.( Start.py>1-14.py)
Но теперь нужно сделать что бы при закрытии окна снова открывалась главная.(1-14.py>Start.py)
Пытался сделать таким же методом, но ничего не получается,хотя бы при нажатии стандартного красного крестика в правом вверхнем углу и форма закрывается, открывается снова главная в моем случае (Start.py)
0
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
26.04.2021, 09:27
после
Python
1
self.p1.clicked.connect(tabWidget.show)
добавить
Python
1
tabWidget.closed.connect(self.show)
только сигнала closed у QTabWidget нет, его нада сначала сделать
0
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
26.04.2021, 12:01  [ТС]
kapbepucm, это вариант в случае скрытия формы, а у меня главная форма именно закрывается методом
Python
1
2
self.p1.clicked.connect(tabWidget.show)
self.p1.clicked.connect(self.close)
Может выбрал и сложный вариант, могу переделать, но даже в случае скрытия как главная форма(Start.py), поймет что закрылась(1-14.py)
0
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
26.04.2021, 13:14
а если заменить
Python
1
self.p1.clicked.connect(self.close)
на
Python
1
self.p1.clicked.connect(self.hide)
По умолчанию close ведёт себя как hide и не должно прибивать форму, хотя, возможно, у python свои тараканы.
0
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
26.04.2021, 13:14  [ТС]
kapbepucm, знаю можно и так, но подумал лучше закрывать, попробую отпишусь
0
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
26.04.2021, 13:18
-при создании второстепенной формы передавать ей в качестве родителя стартовую форму
-во второстепенной форме отлавливать событие close и вызывать там parent().show()
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
26.04.2021, 13:37
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
48
49
import sys
from PySide2 import QtWidgets, QtGui
 
 
class Form1(QtWidgets.QDialog):
    def __init__(self, parent: QtWidgets.QWidget = None):
        QtWidgets.QDialog.__init__(self, parent)
        self.setWindowTitle("Form 1")
 
    def show(self) -> None:
        self.parent().hide()
        return QtWidgets.QDialog.show(self)
 
    def closeEvent(self, event: QtGui.QCloseEvent) -> None:
        self.parent().show()
        return QtWidgets.QDialog.closeEvent(self, event)
 
 
class Form2(QtWidgets.QDialog):
    def __init__(self, parent: QtWidgets.QWidget = None):
        QtWidgets.QDialog.__init__(self, parent)
        self.setWindowTitle("Form 2")
 
        if not parent:
            self.show()
 
 
class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent: QtWidgets.QWidget = None):
        QtWidgets.QMainWindow.__init__(self, parent)
 
        self.Form1 = Form1(self)
 
        self.menuBar().addAction("Open Form 1", self.Form1.show)
        self.menuBar().addAction("Open Form 2", self.openForm2Event)
 
        if not parent:
            self.show()
 
    def openForm2Event(self):
        self.hide()
        Form2(self).exec_()
        self.show()
 
 
if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    main = MainWindow()
    sys.exit(app.exec_())
0
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
26.04.2021, 18:57  [ТС]
kapbepucm, мозги кипят, не могу понять куда приписать Closed
Прикреплю архив с файлами сейчас(для запуска надо открыть startp.py)
Может направите в нужное русло
Вложения
Тип файла: rar Python.rar (494.5 Кб, 4 просмотров)
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
27.04.2021, 07:25
adde7999, Тут бесполезно тебе что то объяснять, ты даже основ не знаешь и лезешь в гуй, советую начать обучаться с нуля.
0
0 / 0 / 0
Регистрация: 23.04.2021
Сообщений: 9
27.04.2021, 08:53  [ТС]
DmFat, основы я знаю, писать код обычной программы Python это одно а создавать gui, это уже слегка другая ветка.
По данной теме нету нормальных обьяснений в интернете ни в русском сегменте, ни в английском, как я должен понимать то что даже нигде нормально не описывается? Пишут код а как им пользоватся не обьясняют, я прошу обычного обьяснения а не помощи.
Спасибо kapbepucm, за обьяснение, хотя бы один метод перехода я понял.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
27.04.2021, 08:57
adde7999, удали QDesigner и пиши руками, быстро станет понятно, что да как.

PySide6(2) Офф. сайт Примеры описание виджетов
0
 Аватар для kapbepucm
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
27.04.2021, 14:43
Лучший ответ Сообщение было отмечено adde7999 как решение

Решение

Согласен с DmFat, неоднократно наблюдаю ситуацию, когда qtdesigner мешает новичкам. Также советую на начальных этапах его не использовать.

Цитата Сообщение от adde7999 Посмотреть сообщение
kapbepucm, мозги кипят, не могу понять куда приписать Closed
В файле startp.py после строк
Python
1
2
3
4
5
tabWidget1 = QtGui.QTabWidget()
ui = Ui_TabWidget1()
ui.setupUi(tabWidget1)
Start.p1.clicked.connect(tabWidget1.show)
Start.p1.clicked.connect(JavaScript.hide)
добавим
Python
1
2
3
4
def customClose(event):
  JavaScript.show()
  event.accept()
tabWidget1.closeEvent = customClose
это позволит при закрытии первой формы открыть стартовую
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.04.2021, 14:43
Помогаю со студенческими работами здесь

Открытие и закрытие формы по нажатию
Задался вопросом компактного закрытия формы по щелчку. Пока писал вопрос, понял реализацию:) Надеюсь кому-нибудь будет полезным материал....

Открытие формы по нажатию кнопки
Всем привет! Подскажите мне пожалуйста обработчик кнопки, чтобы при её нажатии открывалась другая форма.

Открытие и закрытие формы по нажатию
Есть авторизация пользователя. Нужно что бы если верный пароль, то открывал форму 6, а форму 5 закрывал. Если после Form6.Show; дописать...

Открытие формы с отбором по нажатию кнопки
Всем привет. Можно ли сделать по нажатию такой отбор, чтобы при открытии формы были скрыты какие то элементы. Например у меня есть форма...

Открытие второй формы по нажатию на кнопку
Здраствуйте. Создаю форму, добавляю кнопку. Хочу чтобы после нажатия на эту кнопку открывалась форма №2. Кстати как добавить правельно...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru