Exemple #1
0
    def setupUi(self, parent_window):
        self.central_widget = QtGui.QWidget(parent_window)
        parent_window.setCentralWidget(self.central_widget)
        # the basic layout:
        central_layout = QtGui.QGridLayout()
        central_splitter = QtGui.QSplitter(Qt.Qt.Vertical)  # Below tabbed area
        central_splitter.setSizes([300, 800])
        central_layout.addWidget(central_splitter)
        self.central_widget.setLayout(central_layout)
        self.tabbed_area = QtGui.QTabWidget()
        central_splitter.addWidget(self.tabbed_area)

        # Tabbed Area
        # Stock group
        self.grain_stock = QtGui.QTableWidget()
        self.grain_stock.setColumnCount(4)
        self.grain_stock.setRowCount(12)
        self.grain_stock.setHorizontalHeaderLabels(
            ['Grain', 'EBC', 'Extract L/Kg.', 'Kg.'])
        self.grain_stock.verticalHeader().setVisible(False)
        self.grain_stock.setAlternatingRowColors(True)
        self.grain_stock.setDragDropMode(QtGui.QAbstractItemView.DragOnly)
        gr_stck_header = self.grain_stock.horizontalHeader()
        gr_stck_header.setResizeMode(QtGui.QHeaderView.Stretch)
        self.hop_stock = QtGui.QTableWidget()
        self.hop_stock.setColumnCount(3)
        self.hop_stock.setRowCount(12)
        self.hop_stock.setHorizontalHeaderLabels(['Hop', 'Alpha', 'Grams'])
        self.hop_stock.verticalHeader().setVisible(False)
        self.hop_stock.setAlternatingRowColors(True)
        self.hop_stock.setDragDropMode(QtGui.QAbstractItemView.DragOnly)
        hop_stck_header = self.hop_stock.horizontalHeader()
        hop_stck_header.setResizeMode(QtGui.QHeaderView.Stretch)

        recipe_tab = QtGui.QWidget()
        self.tabbed_area.addTab(recipe_tab, 'Recipe')
        recipe_layout = QtGui.QVBoxLayout()
        recipe_tab.setLayout(recipe_layout)
        stock_layout = QtGui.QHBoxLayout()
        stock_layout.addWidget(self.grain_stock)
        stock_layout.addWidget(self.hop_stock)
        recipe_layout.addLayout(stock_layout)
        # Recipe
        self.recipe_box = QtGui.QGroupBox('Current Recipe')
        curr_recipe_layout = QtGui.QHBoxLayout()
        self.recipe_box.setLayout(curr_recipe_layout)
        self.rcg = ControlGroup('new')
        curr_recipe_layout.addWidget(self.rcg)
        recipe_layout.addWidget(self.recipe_box)

        # File group
        file_tab = QtGui.QWidget()
        self.tabbed_area.addTab(file_tab, 'Files')
        # Top button bar
        self.button_back = QtGui.QPushButton("<<")
        self.button_forward = QtGui.QPushButton(">>")
        self.label_year = QtGui.QLabel()
        top_button_widget = QtGui.QWidget()
        top_button_layout = QtGui.QHBoxLayout()
        top_button_widget.setLayout(top_button_layout)
        top_button_layout.addWidget(self.button_back)
        top_button_layout.addWidget(self.label_year)
        top_button_layout.addWidget(self.button_forward)
        self.label_year.setAlignment(Qt.Qt.AlignCenter)
        # Year view
        self.yearView = YearView(parent_window)

        file_layout = QtGui.QVBoxLayout()
        file_tab.setLayout(file_layout)
        file_layout.addWidget(top_button_widget)
        file_layout.addWidget(self.yearView)
        # Search
        search_layout = QtGui.QHBoxLayout()
        search_panel = QtGui.QWidget()
        label_search = QtGui.QLabel('Search For...')
        label_results = QtGui.QLabel('Results')
        label_filter = QtGui.QLabel('Filter By Rating')
        label_filter.setAlignment(QtCore.Qt.AlignRight)
        plus_minus = chr(0x00B1)
        label_plus_minus = QtGui.QLabel(plus_minus)
        font = label_plus_minus.font()
        font.setPixelSize(20)
        label_plus_minus.setFont(font)
        label_plus_minus.setAlignment(QtCore.Qt.AlignRight)
        self.search_box = QtGui.QLineEdit()
        self.results_box = QtGui.QLineEdit()
        self.button_clear = QtGui.QPushButton('Clear')
        self.rating_plus_minus = QtGui.QSpinBox()
        self.rating_input = QtGui.QSpinBox()
        self.button_search = QtGui.QPushButton('Search')
        self.button_search.setMinimumWidth(100)
        self.button_clear.setMinimumWidth(100)
        search_layout.addWidget(label_search)
        search_layout.addWidget(self.search_box)
        search_layout.addWidget(self.button_search)

        search_layout.addWidget(self.button_clear)
        search_layout.addWidget(label_filter)
        search_layout.addWidget(self.rating_input)
        search_layout.addWidget(label_plus_minus)
        search_layout.addWidget(self.rating_plus_minus)
        search_layout.addWidget(label_results)
        search_layout.addWidget(self.results_box)
        search_layout.addWidget(self.button_clear)

        search_panel.setLayout(search_layout)
        file_layout.addWidget(search_panel)

        # Settings Group
        settings_tab = QtGui.QWidget()
        self.tabbed_area.addTab(settings_tab, 'Settings')
        settings_layout = QtGui.QHBoxLayout()
        settings_tab.setLayout(settings_layout)
        # Next line has to be before preferences to all preferences to load
        # colour settings
        self.colourSettings = ColourSettings(parent_window)
        preferences = Preferences(parent_window)
        settings_layout.addWidget(preferences)
        preferences.setMaximumWidth(400)
        settings_layout.addWidget(self.colourSettings)
        self.colourSettings.setMaximumWidth(400)
        calculators = Calculators()
        settings_layout.addWidget(calculators)
        calculators.setMaximumWidth(400)

        spare_box = QtGui.QGroupBox()
        settings_layout.addWidget(spare_box)

        #######################################################################
        # History
        history_area = QtGui.QWidget()
        history_layout = QtGui.QVBoxLayout()
        history_area.setLayout(history_layout)
        central_splitter.addWidget(history_area)
        self.date_box = QtGui.QGroupBox('Date')
        date_layout = QtGui.QVBoxLayout()
        self.date_box.setLayout(date_layout)
        sel_recipe_layout = QtGui.QHBoxLayout()
        date_layout.addLayout(sel_recipe_layout)
        self.hcg = ControlGroup('history')
        sel_recipe_layout.addWidget(self.hcg)
        history_layout.addWidget(self.date_box)

        # Notes
        notes_layout = QtGui.QHBoxLayout()
        date_layout.addLayout(notes_layout)
        self.process_notes = QtGui.QTextEdit()
        proc_note_box = QtGui.QGroupBox('Process Notes')
        proc_notes_layout = QtGui.QVBoxLayout()
        proc_note_box.setLayout(proc_notes_layout)
        proc_notes_layout.addWidget(self.process_notes)
        notes_layout.addWidget(proc_note_box)

        self.tasting_notes = QtGui.QTextEdit()
        tast_note_box = QtGui.QGroupBox('Tasting Notes')
        tast_notes_layout = QtGui.QVBoxLayout()
        tast_note_box.setLayout(tast_notes_layout)
        tast_notes_layout.addWidget(self.tasting_notes)
        notes_layout.addWidget(tast_note_box)

        info_box = QtGui.QGroupBox()
        info_layout = QtGui.QVBoxLayout()
        info_box.setLayout(info_layout)
        notes_layout.addWidget(info_box)

        label_rating = QtGui.QLabel('Rating')
        self.rating = QtGui.QSpinBox()
        self.box_style = QtGui.QComboBox()
        self.box_style.setMinimumWidth(160)
        style_layout = QtGui.QHBoxLayout()
        style_layout.addWidget(self.box_style)
        style_layout.addWidget(label_rating)
        style_layout.addWidget(self.rating)
        info_layout.addLayout(style_layout)

        brew_date_box = QtGui.QGroupBox('Date Brewed')
        self.brew_date = QtGui.QLabel()
        bold_font = QtGui.QFont()
        bold_font.setBold(True)
        bold_font.setPixelSize(16)
        self.brew_date.setFont(bold_font)
        brew_date_layout = QtGui.QVBoxLayout()
        brew_date_box.setLayout(brew_date_layout)
        brew_date_layout.addWidget(self.brew_date)
        self.brew_date.setAlignment(QtCore.Qt.AlignCenter)
        since_brew_box = QtGui.QGroupBox('Time Since Brewing')
        self.since_brew = QtGui.QLabel()
        self.since_brew.setFont(bold_font)
        since_brew_layout = QtGui.QVBoxLayout()
        since_brew_box.setLayout(since_brew_layout)
        since_brew_layout.addWidget(self.since_brew)
        self.since_brew.setAlignment(QtCore.Qt.AlignCenter)
        info_layout.addWidget(brew_date_box)
        info_layout.addWidget(since_brew_box)
        self.brew_date.setStyleSheet("""QLabel{
                Background-color:#42464a}""")
        self.since_brew.setStyleSheet("""QLabel{
                Background-color:#42464a}""")