Russian Qt Forum
Ноябрь 25, 2024, 22:08 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt Designer и Python: связь двух окон  (Прочитано 2818 раз)
Алма-Атинец
Новичок

Offline Offline

Сообщений: 5


Просмотр профиля
« : Август 22, 2021, 20:17 »

Доброго времени суток всем форумчанам!

ОЧЕНЬ НУЖНА ПОМОШЬ!!!!!!!!!!

Я начинающий программист. Изучаю Питон. С помощью Qt Designer я создал два окна. Первое окно содержит кнопку «Переход ко 2 окну», при нажатии на которую должно открываться второе окно. Но опыта мне не хватает и поэтому пока всё, что я смог сделать – это то, что при нажатии на кнопку в консоли выводится сообщение «Была нажата кнопка Переход ко 2 окну».

Подскажите мне, что надо делать чтобы при нажатии на кнопку «Переход ко 2 окну» открывалось второе окно?

Исходный код и картинки прилагаю.

Заранее благодарю всех!!!


Код
Python
 
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_MainWindow(object):
   def setupUi(self, MainWindow):
       MainWindow.setObjectName("MainWindow")
       MainWindow.resize(342, 151)
       self.centralwidget = QtWidgets.QWidget(MainWindow)
       self.centralwidget.setObjectName("centralwidget")
       self.label = QtWidgets.QLabel(self.centralwidget)
       self.label.setGeometry(QtCore.QRect(110, 20, 171, 51))
       font = QtGui.QFont()
       font.setPointSize(20)
       self.label.setFont(font)
       self.label.setObjectName("label")
       self.pushButton = QtWidgets.QPushButton(self.centralwidget)
       self.pushButton.setGeometry(QtCore.QRect(80, 70, 231, 41))
       font = QtGui.QFont()
       font.setPointSize(16)
       self.pushButton.setFont(font)
       self.pushButton.setObjectName("pushButton")
       MainWindow.setCentralWidget(self.centralwidget)
       self.menubar = QtWidgets.QMenuBar(MainWindow)
       self.menubar.setGeometry(QtCore.QRect(0, 0, 342, 21))
       self.menubar.setObjectName("menubar")
       self.menu = QtWidgets.QMenu(self.menubar)
       self.menu.setObjectName("menu")
       MainWindow.setMenuBar(self.menubar)
       self.action = QtWidgets.QAction(MainWindow)
       self.action.setObjectName("action")
       self.menu.addAction(self.action)
       self.menubar.addAction(self.menu.menuAction())
 
       self.retranslateUi(MainWindow)
       QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
   def retranslateUi(self, MainWindow):
       _translate = QtCore.QCoreApplication.translate
       MainWindow.setWindowTitle(_translate("MainWindow", "Первое окно"))
       self.label.setText(_translate("MainWindow", "Первое окно"))
       self.pushButton.setText(_translate("MainWindow", "Переход ко 2 окну"))
       self.menu.setTitle(_translate("MainWindow", "Текст"))
       self.action.setText(_translate("MainWindow", "Изменить"))
 
def my_test_on_click():
   print("Была нажата кнопка Переход ко 2 окну")
 
if __name__ == "__main__":
   import sys
   app = QtWidgets.QApplication(sys.argv)
   MainWindow = QtWidgets.QMainWindow()
   ui = Ui_MainWindow()
   ui.setupUi(MainWindow)
   MainWindow.show()
   ui.pushButton.clicked.connect(my_test_on_click)
   sys.exit(app.exec_())
 
 



Код
Python
 
 
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_MainWindow(object):
   def setupUi(self, MainWindow):
       MainWindow.setObjectName("MainWindow")
       MainWindow.resize(338, 154)
       self.centralwidget = QtWidgets.QWidget(MainWindow)
       self.centralwidget.setObjectName("centralwidget")
       self.label = QtWidgets.QLabel(self.centralwidget)
       self.label.setGeometry(QtCore.QRect(100, 30, 171, 41))
       font = QtGui.QFont()
       font.setPointSize(20)
       self.label.setFont(font)
       self.label.setObjectName("label")
       self.pushButton = QtWidgets.QPushButton(self.centralwidget)
       self.pushButton.setGeometry(QtCore.QRect(50, 90, 271, 41))
       font = QtGui.QFont()
       font.setPointSize(16)
       self.pushButton.setFont(font)
       self.pushButton.setObjectName("pushButton")
       MainWindow.setCentralWidget(self.centralwidget)
 
       self.retranslateUi(MainWindow)
       QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
   def retranslateUi(self, MainWindow):
       _translate = QtCore.QCoreApplication.translate
       MainWindow.setWindowTitle(_translate("MainWindow", "Второе окно"))
       self.label.setText(_translate("MainWindow", "Второе окно"))
       self.pushButton.setText(_translate("MainWindow", "Венуться в первое окно"))
 
 
if __name__ == "__main__":
   import sys
   app = QtWidgets.QApplication(sys.argv)
   MainWindow = QtWidgets.QMainWindow()
   ui = Ui_MainWindow()
   ui.setupUi(MainWindow)
   MainWindow.show()
   sys.exit(app.exec_())
 
 
 
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Август 22, 2021, 21:53 »

Код
Python
   MainWindow = QtWidgets.QMainWindow()
   ui = Ui_MainWindow()
   ui.setupUi(MainWindow)
   MainWindow.show()
этот твой код создает и показывает окно, тебе надо написать аналогичное (для начала можешь даже просто скопипастить)
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Алма-Атинец
Новичок

Offline Offline

Сообщений: 5


Просмотр профиля
« Ответ #2 : Август 23, 2021, 11:32 »

Код
Python
   MainWindow = QtWidgets.QMainWindow()
   ui = Ui_MainWindow()
   ui.setupUi(MainWindow)
   MainWindow.show()
этот твой код создает и показывает окно, тебе надо написать аналогичное (для начала можешь даже просто скопипастить)


Спасибо!
Но теперь следующая проблема. Второе окно появляется, но сразу же исчезает. Как мне сделать, чтобы второе окно НЕ ИСЧЕЗАЛО, а становилось АКТИВНЫМ?
Заранее благодарю!!!
Записан
Алма-Атинец
Новичок

Offline Offline

Сообщений: 5


Просмотр профиля
« Ответ #3 : Август 23, 2021, 11:59 »

Код
Python
   MainWindow = QtWidgets.QMainWindow()
   ui = Ui_MainWindow()
   ui.setupUi(MainWindow)
   MainWindow.show()
этот твой код создает и показывает окно, тебе надо написать аналогичное (для начала можешь даже просто скопипастить)


Уппсс!!!
При копипасте, при нажатии на кнопку вызывается НЕ ВТОРОЕ, а ПЕРВОЕ окно.
И оно резко исчезает.
Не получилось.
Может быть чего-то не хватает?
Записан
Алма-Атинец
Новичок

Offline Offline

Сообщений: 5


Просмотр профиля
« Ответ #4 : Август 23, 2021, 12:16 »

Код
Python
   MainWindow = QtWidgets.QMainWindow()
   ui = Ui_MainWindow()
   ui.setupUi(MainWindow)
   MainWindow.show()
этот твой код создает и показывает окно, тебе надо написать аналогичное (для начала можешь даже просто скопипастить)


Уппсс!!!
При копипасте, при нажатии на кнопку вызывается НЕ ВТОРОЕ, а ПЕРВОЕ окно.
И оно резко исчезает.
Не получилось.
Может быть чего-то не хватает?

Исправил. При нажатии на кнопку, появляется второе окно.
Но осталась проблема с тем, что оно ИСЧЕЗАЕТ!
Чего не хватает?

Или подскажите видео или сайт, который показывает как это сделать ПОШАГОВО.
Заранее благодарю!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.397 секунд. Запросов: 22.