1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- from ui import Ui_MainWindow
- from PyQt5 import QtCore, QtGui, QtWidgets
- class MainWindow(Ui_MainWindow):
- """ BaangtUI : Logic implementation file for uidesign
- """
- switch_window = QtCore.pyqtSignal(str)
- def __init__(self):
- ''' Init the super class '''
- super().__init__()
- def setupUi(self, MainWindow, directory=None):
- ''' Setup the UI for super class and Implement the
- logic here we want to do with User Interface
- '''
- super().setupUi(MainWindow)
- self.filterButton.clicked.connect(self.filterDialog)
- self.row_list = []
- self.filters = {}
- def filterDialog(self):
- self.filter_dialog = QtWidgets.QDialog(self.centralwidget)
- #sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
- #sizePolicy.setHorizontalStretch(0)
- #sizePolicy.setVerticalStretch(0)
- #sizePolicy.setHeightForWidth(self.filter_dialog.sizePolicy().hasHeightForWidth())
- #self.filter_dialog.setSizePolicy(sizePolicy)
- self.filter_dialog.setWindowTitle("Filters")
- self.filter_dialog.setWindowTitle("Cleanup")
- self.vlay = QtWidgets.QVBoxLayout()
- hori = QtWidgets.QHBoxLayout()
- hori.setSpacing(10)
- add_button = QtWidgets.QPushButton("Add", self.filter_dialog)
- remove_button = QtWidgets.QPushButton("Remove", self.filter_dialog)
- save_button = QtWidgets.QPushButton("Save", self.filter_dialog)
- hori.addWidget(add_button)
- hori.addWidget(remove_button)
- hori.addWidget(save_button)
- self.vlay.addLayout(hori)
- self.filter_dialog.setLayout(self.vlay)
- add_button.clicked.connect(self.add_row)
- remove_button.clicked.connect(self.remove_row)
- save_button.clicked.connect(self.save_filters)
- self.filter_dialog.exec_()
- def add_row(self):
- hr = QtWidgets.QHBoxLayout()
- hr.setSpacing(10)
- cb = QtWidgets.QComboBox()
- cb.setMinimumSize(QtCore.QSize(200, 0))
- cb.setMaximumSize(QtCore.QSize(250, 16777215))
- cb.setStyleSheet("background-color: rgb(255, 255, 255);")
- line = QtWidgets.QLineEdit()
- line.setMinimumSize(QtCore.QSize(300, 0))
- line.setMaximumSize(QtCore.QSize(350, 16777215))
- line.setStyleSheet("background-color: rgb(255, 255, 255);")
- hr.addWidget(cb)
- hr.addWidget(line)
- self.vlay.addLayout(hr)
- self.row_list.append([cb, line, hr])
- def remove_row(self):
- if self.row_list:
- last = self.row_list.pop()
- last[0].deleteLater()
- last[1].deleteLater()
- last[2].deleteLater()
- def save_filters(self):
- filters = {}
- if self.row_list:
- for row in self.row_list:
- filters[row[0].currentText()] = row[1].text()
- self.filters = filters
- class MainController:
- def __init__(self):
- self.widget = QtWidgets.QWidget()
- self.window = QtWidgets.QMainWindow()
- self.main = MainWindow()
- def show_main(self):
- self.main = MainWindow()
- self.main.setupUi(self.window)
- self.window.show()
- if __name__ == "__main__":
- import sys
- app = QtWidgets.QApplication(sys.argv)
- controller = MainController()
- controller.show_main()
- sys.exit(app.exec_())
|