def __init__(self, parent=None): self.__users = None self.user_service = UserService(self) super(AdminWidget, self).__init__(parent) self.button_add_user = QPushButton('Add user') self.button_remove_user = QPushButton('Remove user') self.user_search_input = QLineEdit() self.user_list = QListWidget() self.button_logout = QPushButton('Logout') self.user_search_input.setPlaceholderText('Search users') self.user_list.setMinimumWidth(400) left_column = QVBoxLayout() left_column.addWidget(self.button_add_user) left_column.addWidget(self.button_remove_user) left_column.addStretch() left_column.addWidget(self.button_logout) right_column = QVBoxLayout() right_column.addWidget(self.user_search_input) right_column.addWidget(self.user_list) layout = QHBoxLayout() layout.addLayout(left_column) layout.addLayout(right_column) widget = QWidget() widget.setLayout(layout) self.addTab(widget, 'Users manager') self.addTab(UserWidget(parent), 'Books manager') self.button_add_user.clicked.connect(self.add_user) self.button_remove_user.clicked.connect( lambda: self.user_service.delete_user( self.__users[self.user_list.currentRow()] ) ) self.user_search_input.textChanged.connect(self.refresh) self.user_list.currentRowChanged.connect(self.user_choice) self.button_logout.clicked.connect(parent.request_logout)