Python Forum
[PyQt] App crashes when reopening a subwindow
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[PyQt] App crashes when reopening a subwindow
#5
This an example using Layouts, (removed all setGeometry)

password should use echoMode 2.

#!/usr/bin/python3
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets
   
 
class SubWindowUsers(QtWidgets.QWidget):
    def __init__(self):
        super(SubWindowUsers, self).__init__()  
        
        self.setMinimumSize(QtCore.QSize(400, 300))
        self.setObjectName("subWindowUsers")
        self.setSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        layout = QtWidgets.QVBoxLayout()
        fields_box = QtWidgets.QVBoxLayout()
        btn_box_1 = QtWidgets.QHBoxLayout()
        btn_box_2 = QtWidgets.QHBoxLayout()
        btn_box_3 = QtWidgets.QHBoxLayout()
   
        self.pushButton_save_2 = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_DialogSaveButton), "Save", self)
        self.pushButton_save_2.setObjectName("pushButton_save_2")
   
        self.pushButton_previous = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_ArrowBack), "Previous", self)
        self.pushButton_previous.setObjectName("pushButton_previous")
   
        self.lineEdit_date = QtWidgets.QLineEdit(self, placeholderText = "Date")
        self.lineEdit_date.setObjectName("lineEdit_date")
   
        self.pushButton_edit = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_FileDialogListView), "Edit", self)
        self.pushButton_edit.setObjectName("pushButton_edit")
   
        self.pushButton_update = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_DialogApplyButton), "Update", self)
        self.pushButton_update.setObjectName("pushButton_update")
   
        self.pushButton_next = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_ArrowForward), "Next", self)
        self.pushButton_next.setObjectName("pushButton_next")
   
        self.pushButton_first = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_ArrowUp), "First", self)
        self.pushButton_first.setObjectName("pushButton_first")
   
        self.pushButton_last = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_ArrowDown), "Last", self)
        self.pushButton_last.setObjectName("pushButton_last")
   
        self.pushButton_add = QtWidgets.QPushButton("+  Add", self)
        self.pushButton_add.setObjectName("pushButton_add")
   
        self.pushButton_cancel = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_DialogCancelButton), "Cancel", self)
        self.pushButton_cancel.setObjectName("pushButton_cancel")
   
        self.lineEdit_login = QtWidgets.QLineEdit(self, placeholderText = "Login")
        self.lineEdit_login.setObjectName("lineEdit_login")
   
        self.lineEdit_name = QtWidgets.QLineEdit(self, placeholderText = "Name")
        self.lineEdit_name.setObjectName("lineEdit_name")
   
        self.pushButton_save = QtWidgets.QPushButton(self.style().standardIcon(QtWidgets.QStyle.SP_DialogSaveButton), "Save", self)
        self.pushButton_save.setObjectName("pushButton_save")
   
        self.lineEdit_number = QtWidgets.QLineEdit(self, placeholderText = "Number")
        self.lineEdit_number.setObjectName("lineEdit_number")
   
        self.lineEdit_pwd = QtWidgets.QLineEdit(self, placeholderText = "Password", echoMode = 2)
        self.lineEdit_pwd.setObjectName("lineEdit_pwd")
        
        fields_box.addWidget(self.lineEdit_number)
        fields_box.addWidget(self.lineEdit_date)
        fields_box.addWidget(self.lineEdit_name)
        fields_box.addWidget(self.lineEdit_login)
        fields_box.addWidget(self.lineEdit_pwd)
        
        btn_box_1.addWidget(self.pushButton_first, 1, QtCore.Qt.AlignLeft)
        btn_box_1.addWidget(self.pushButton_previous, 1, QtCore.Qt.AlignLeft)
        btn_box_1.addWidget(self.pushButton_next, 1, QtCore.Qt.AlignLeft)
        btn_box_1.addWidget(self.pushButton_last, 1, QtCore.Qt.AlignLeft)
        
        btn_box_2.addWidget(self.pushButton_add, 1, QtCore.Qt.AlignLeft)
        btn_box_2.addWidget(self.pushButton_update, 1, QtCore.Qt.AlignLeft)
        btn_box_2.addWidget(self.pushButton_edit, 1, QtCore.Qt.AlignLeft)
        btn_box_2.addWidget(self.pushButton_save_2, 1, QtCore.Qt.AlignLeft)

        btn_box_3.addWidget(self.pushButton_cancel, 1, QtCore.Qt.AlignLeft)
        btn_box_3.addWidget(self.pushButton_save, 1, QtCore.Qt.AlignLeft)
        
        layout.addLayout(fields_box)
        layout.addLayout(btn_box_1)
        layout.addLayout(btn_box_2)
        layout.addLayout(btn_box_3)
        self.setLayout(layout)
        
        #self.pushButton_cancel.hide()
        #self.pushButton_save.hide()
 
class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__()
   
        self.setObjectName("MainWindow")
        self.setWindowModality(QtCore.Qt.WindowModal)
        self.setGeometry(50, 50, 700, 500)
          
        self.mdiArea = QtWidgets.QMdiArea()
        self.mdiArea.setAutoFillBackground(True)
        self.mdiArea.setObjectName("mdiArea")
 
        self.setCentralWidget(self.mdiArea)
   
        bar = self.menuBar()
        self.menubar = bar.addMenu("Files")
        self.menubar.setObjectName("menubar")
   
        self.statusbar = self.statusBar()
        self.statusbar.setObjectName("statusbar")
        self.statusbar.showMessage("Ready", 0)
   
        self.actionFile_users = QtWidgets.QAction("Users")
        self.menubar.addAction(self.actionFile_users)
   
        QtCore.QMetaObject.connectSlotsByName(self)
   
        self.actionFile_users.triggered.connect(self.OpenUserForm)
   

    def OpenUserForm(self):
        self.swu = SubWindowUsers()
        self.mdiArea.addSubWindow(self.swu)
        self.swu.setWindowTitle("Users")
        self.swu.show()
        self.statusbar.showMessage("Users Window opened", 0)
   
   
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    mainwin = MainWindow()
    mainwin.show()
    sys.exit(app.exec_())
JayCee likes this post
Reply


Messages In This Thread
App crashes when reopening a subwindow - by JayCee - Aug-03-2021, 01:58 AM
RE: App crashes when reopening a subwindow - by Axel_Erfurt - Aug-03-2021, 01:34 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  GUI crashes flash77 3 1,104 Jul-26-2023, 05:09 PM
Last Post: flash77
  [Tkinter] Clicking on the button crashes the TK window ODOshmockenberg 1 2,379 Mar-10-2022, 05:18 PM
Last Post: deanhystad
  [PyQt] Subwindow catlessness 5 3,035 Oct-23-2021, 06:28 PM
Last Post: catlessness
  [PyQt] Can't neither setWindowFlags nor setFixedSize of a subwindow. JayCee 10 4,444 Aug-06-2021, 08:06 PM
Last Post: JayCee
  Running external Python file as a subwindow JayCee 13 4,228 Aug-05-2021, 05:47 AM
Last Post: ndc85430
  [PyGUI] My GUI crashes after command MLGpotato 1 2,016 Feb-21-2021, 03:17 PM
Last Post: deanhystad
  [PyQt] PyQT5 Thread crashes after a while Suresh 0 2,094 Jul-21-2020, 07:53 AM
Last Post: Suresh
  PyQt5 : Interpreter Crashes While Initializing Message Box iMuny 7 6,067 Aug-29-2019, 01:38 PM
Last Post: iMuny

Forum Jump:

User Panel Messages

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