Python Forum
[PyQt] Opening new window
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PyQt] Opening new window
#1
Hi!

I have a window, but i want to open another one, upon pushing a button. (so both of them should be open simultaneously)

import sys
from PyQt5.QtWidgets import *

class Window_No1(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(300, 300, 300, 300)
        self.setWindowTitle('Window 1')
        self.UI_change_button()
        self.show()

    def UI_change_button(self):
        changeButton = QPushButton('Start Win2', self)
        changeButton.move(150, 150)
        changeButton.clicked.connect(self.start_win2)

    def start_win2(self):
        import win2
        win2.main2()


if __name__ == '__main__':
    App = QApplication(sys.argv)
    window = Window_No1()
    sys.exit(App.exec_())
a py file named: win2:

import sys
from PyQt5.QtWidgets import *


class Window_No2(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(600, 600, 300, 300)
        self.setWindowTitle('Window 2')
        self.show()

def main2():
    App2 = QApplication(sys.argv)
    window2 = Window_No2()
    sys.exit(App2.exec_())


if __name__ == '__main__':
    main2()
Reply
#2
1

import sys
from PyQt5.QtWidgets import *
import win2
 
class Window_No1(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(300, 300, 300, 300)
        self.setWindowTitle('Window 1')
        self.UI_change_button()
        self.show()
 
    def UI_change_button(self):
        changeButton = QPushButton('Start Win2', self)
        changeButton.move(150, 150)
        changeButton.clicked.connect(self.start_win2)
 
    def start_win2(self):
        self.w = win2.Window_No2()
        self.w.show()
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window_No1()
    sys.exit(app.exec_())
win2.py

import sys
from PyQt5.QtWidgets import *
 
 
class Window_No2(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(600, 600, 300, 300)
        self.setWindowTitle('Window 2')

 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window_No2()
    window.show()
    sys.exit(app.exec_())
or all in one

import sys
from PyQt5.QtWidgets import *
import win2
 
class Window_No1(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(300, 300, 300, 300)
        self.setWindowTitle('Window 1')
        self.UI_change_button()
        self.show()
 
    def UI_change_button(self):
        changeButton = QPushButton('Start Win2', self)
        changeButton.move(150, 150)
        changeButton.clicked.connect(self.start_win2)
 
    def start_win2(self):
        self.w = Window_No2()
        self.w.show()
        
class Window_No2(QWidget):
    def __init__(self):
        super().__init__()
        self.setGeometry(600, 600, 300, 300)
        self.setWindowTitle('Window 2')
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Window_No1()
    sys.exit(app.exec_())
Reply
#3
Thank you! :)
Works great!
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Interaction between Matplotlib window, Python prompt and TKinter window NorbertMoussy 3 347 Mar-17-2024, 09:37 AM
Last Post: deanhystad
  [PyQt] My WIndow isnt opening at all. SovietMilkerGenerak 1 2,079 Apr-24-2021, 12:25 PM
Last Post: Yoriz
  tkinter window and turtle window error 1885 3 6,625 Nov-02-2019, 12:18 PM
Last Post: 1885
  update a variable in parent window after closing its toplevel window gray 5 8,978 Mar-20-2017, 10:35 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020