Aug-03-2021, 01:34 PM
This an example using Layouts, (removed all setGeometry)
password should use echoMode 2.
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_())