Esempio n. 1
0
    def makeContent(self):

        layout = QVBoxLayout()

        self.table = QTableWidget()
        layout.addWidget(self.table)

        return layout
Esempio n. 2
0
 def __init__(self):
     ####
     logger.info('Inside MenuDetails')
     self.menudetail_tab_1 = QWidget()
     self.menudetail_tab_1.setObjectName("menudetail_tab_1")
     self.gridLayout_20 = QGridLayout(self.menudetail_tab_1)
     self.gridLayout_20.setObjectName("gridLayout_20")
     self.menu_table = QTableWidget(self.menudetail_tab_1)
     self.menu_table.setSortingEnabled(True)
     self.menu_table.setObjectName("menu_table")
     self.menu_table.setColumnCount(4)
     self.menu_table.setRowCount(0)
     item = QTableWidgetItem()
     self.menu_table.setHorizontalHeaderItem(0, item)
     item = QTableWidgetItem()
     self.menu_table.setHorizontalHeaderItem(1, item)
     item = QTableWidgetItem()
     self.menu_table.setHorizontalHeaderItem(2, item)
     item = QTableWidgetItem()
     self.menu_table.setHorizontalHeaderItem(3, item)
     self.menu_table.horizontalHeader().setCascadingSectionResizes(False)
     self.menu_table.horizontalHeader().setStretchLastSection(True)
     self.menu_table.verticalHeader().setVisible(True)
     self.menu_table.verticalHeader().setCascadingSectionResizes(True)
     self.gridLayout_20.addWidget(self.menu_table, 0, 0, 1, 2)
     spacerItem22 = QSpacerItem(612, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
     self.gridLayout_20.addItem(spacerItem22, 1, 0, 1, 1)
     self.menu_table_add_button = QPushButton(self.menudetail_tab_1)
     self.menu_table_add_button.setObjectName("menu_table_add_button")
     self.gridLayout_20.addWidget(self.menu_table_add_button, 1, 1, 1, 1)
     ####retranslate
     self.menu_table.horizontalHeaderItem(0).setText(
         QApplication.translate("MainWindow", "Code", None, QApplication.UnicodeUTF8))
     self.menu_table.horizontalHeaderItem(1).setText(
         QApplication.translate("MainWindow", "Item", None, QApplication.UnicodeUTF8))
     self.menu_table.horizontalHeaderItem(2).setText(
         QApplication.translate("MainWindow", "Category", None, QApplication.UnicodeUTF8))
     self.menu_table.horizontalHeaderItem(3).setText(
         QApplication.translate("MainWindow", "Rate", None, QApplication.UnicodeUTF8))
     self.menu_table_add_button.setText(
         QApplication.translate("MainWindow", "Add New Dish", None, QApplication.UnicodeUTF8))
     # self.menu_table_add_button.setShortcut(
     # QApplication.translate("MainWindow", "Ctrl+E", None, QApplication.UnicodeUTF8))
     ###signals and slots && other stuffs
     # self.mainwindow = Ui_MainWindow  # just for the ease of finding the attributes in pycharm
     self.menu = MenuProduct()
     self.menu_table_add_button.clicked.connect(self.add_menu)
     self.menu_table.itemDoubleClicked.connect(self.popup_edit)
     self.menu_table.setSelectionBehavior(QAbstractItemView.SelectRows)
     self.menu_table.setEditTriggers(QAbstractItemView.NoEditTriggers)
     self.menu_table.setShowGrid(False)
     self.menu_table.setAlternatingRowColors(True)
     self.update_menu()
     self.popup = object
     self.menudetail_tab_1.setFocusPolicy(Qt.StrongFocus)
     self.menudetail_tab_1.focusInEvent = self.load_rows
     self.assign_shortcuts()
    def __init__(self, hyperdeck, state, mainWindow):
        super(RecorderClipSelectionScreen, self).__init__()
        self.hyperdeck = hyperdeck
        self.state = state
        self.mainWindow = mainWindow

        self.selected_clip = None

        layout = QGridLayout()

        lblTitle = TitleLabel("Select clip")
        layout.addWidget(lblTitle, 0, 0, 1, 3)

        self.clipTable = QTableWidget()
        self.clipTable.setColumnCount(2)
        self.clipTable.setHorizontalHeaderLabels(['ID', 'Clip name'])
        self.clipTable.horizontalHeader().setStretchLastSection(True)
        self.clipTable.setSelectionBehavior(
            QAbstractItemView.SelectionBehavior.SelectRows)

        self.clipTable.itemSelectionChanged.connect(self._onClipSelected)

        layout.addWidget(self.clipTable, 1, 0, 1, 3)

        b = ExpandingButton()
        b.setText("Back")
        b.setIcon(QIcon(":icons/go-previous"))
        b.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonTextBesideIcon)
        b.clicked.connect(mainWindow.stepBack)
        layout.addWidget(b, 2, 0)

        btnRefresh = ExpandingButton()
        btnRefresh.setText('Refresh')
        btnRefresh.setIcon(QIcon(':icons/refresh'))
        btnRefresh.setToolButtonStyle(
            Qt.ToolButtonStyle.ToolButtonTextBesideIcon)

        def refresh():
            self.populateClipsList({})
            hyperdeck.broadcastClipsList()

        btnRefresh.clicked.connect(refresh)

        layout.addWidget(btnRefresh, 2, 1)

        self.btnSelect = ExpandingButton()
        self.btnSelect.setText("Cue clip")
        self.btnSelect.clicked.connect(self._cueClip)
        layout.addWidget(self.btnSelect, 2, 2)

        layout.setRowStretch(0, 0)
        layout.setRowStretch(1, 1)
        layout.setRowStretch(2, 0)

        self.setLayout(layout)

        self.populateClipsList(state.clip_listing)
Esempio n. 4
0
    def __init__(self, variable_setting, parent=None):
        super(FoamDictWidget, self).__init__(parent)

        self.buttonLayout = QHBoxLayout()
        self.pushButtonInsert = QPushButton("Add new row")
        self.pushButtonRemove = QPushButton("Del selected row")
        self.pushButtonRestore = QPushButton("Restore table")
        self.pushButtonClear = QPushButton("Clear table")

        self.buttonLayout.addWidget(self.pushButtonInsert)
        self.buttonLayout.addWidget(self.pushButtonRemove)
        self.buttonLayout.addWidget(self.pushButtonRestore)
        self.buttonLayout.addWidget(self.pushButtonClear)

        self.tableWidget = QTableWidget()
        # header, should not sort, has vertical scrollbar
        # set column count, fixed to 2, size of TableItem
        self.tableWidget.setColumnCount(2)
        # self.tableWidget.setHorizontalHeaderItem(0, )
        self.tableWidget.setHorizontalHeaderLabels(['key', 'value text'])
        # set a default row count, insert as needed
        self.tableWidget.setRowCount(0)

        self.buttonPreview = QPushButton('Preview FoamFile write-out')
        # self.buttonLoad = QPushButton('load dict from existing case ')
        self.buttonCustomize = QPushButton('Customize (convert into raw)')

        self.textPreview = QTextEdit('')
        self.textPreview.setVisible(False)
        self.textPreview.setEnabled(False)

        #PySide has different name other than @QtCore.pyqtSlot, but PySide.QtCore.SLOT
        #PySide has different name other than @QtCore.pyqtSlot, but PySide.QtCore.SLOT
        self.pushButtonInsert.clicked.connect(self.insertRow)
        self.pushButtonRemove.clicked.connect(self.removeRow)
        self.pushButtonRestore.clicked.connect(self.restoreDict)
        self.pushButtonClear.clicked.connect(self.clearDict)
        #
        self.tableWidget.doubleClicked.connect(
            self.showPreview)  # does not work for PySide
        self.buttonPreview.clicked.connect(self.showPreview)
        self.buttonCustomize.clicked.connect(self.customizeDict)
        self._previewing = False

        self.settings = variable_setting
        self.previous_settings = self.settings
        #self.restoreDict()
        self.updateDictView(self.settings)

        self.myLayout = QVBoxLayout()
        self.myLayout.addLayout(self.buttonLayout)
        self.myLayout.addWidget(self.tableWidget)
        self.myLayout.addWidget(self.buttonPreview)
        self.myLayout.addWidget(self.textPreview)
        self.setLayout(self.myLayout)
Esempio n. 5
0
 def createTable(self):
     self.table = QTableWidget()
     self.table.setRowCount(1000)
     self.table.setColumnCount(len(self.columnList))
     self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
     self.table.setHorizontalHeaderLabels(self.columnList)
     #self.pnLTableWidget.resizeColumnsToContents()
     self.table.sortItems(Constant.CONST_COLUMN_REPORT_MOVEMENT_EVENT_DATE)
     self.table.resizeRowsToContents()
     self.table.setFixedSize(1100, 900)
     return self.table
Esempio n. 6
0
 def createPnLTable(self):
     self.pnLTableWidget = QTableWidget()
     self.pnLTableWidget.setRowCount(6)
     self.pnLTableWidget.setColumnCount(len(self.pnLColumnList))
     self.pnLTableWidget.setEditTriggers(
         QtGui.QAbstractItemView.NoEditTriggers)
     self.pnLTableWidget.setHorizontalHeaderLabels(self.pnLColumnList)
     #self.pnLTableWidget.resizeColumnsToContents()
     self.pnLTableWidget.resizeRowsToContents()
     self.pnLTableWidget.setFixedSize(1100, 150)
     return self.pnLTableWidget
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.ui = Ui_SubscriberDialog()
        self.ui.setupUi(self)

        self.subscriber = None
        self.tableWidget = None
        self.listWidget = None

        if USE_MAEMO_5:
            switchButton = self.ui.buttonBox.addButton(
                self.tr('Switch'), QDialogButtonBox.ActionRole)
            switchButton.clicked.connect(self.switchRequested)

            self.tableWidget = self.ui.tableWidget
            headerLabels = ('Key', 'Value', 'Type')
            self.tableWidget.setColumnCount(3)
            self.tableWidget.setHorizontalHeaderLabels(headerLabels)
            horizontalHeader = self.tableWidget.horizontalHeader()
            horizontalHeader.setStretchLastSection(True)
            verticalHeader = self.tableWidget.verticalHeader()
            verticalHeader.setVisible(False)
            self.tableWidget.setColumnWidth(0, 200)
            self.tableWidget.setColumnWidth(1, 400)
        else:
            desktopWidget = QDesktopWidget()
            if desktopWidget.availableGeometry().width() < 400:
                # Screen is too small to fit a table widget without scrolling, use a list widget instead.
                self.listWidget = QListWidget()
                self.listWidget.setAlternatingRowColors(True)
                self.ui.verticalLayout.insertWidget(2, self.listWidget)
            else:
                self.tableWidget = QTableWidget()
                headerLabels = ('Key', 'Value', 'Type')
                self.tableWidget.setColumnCount(3)
                self.tableWidget.setHorizontalHeaderLabels(headerLabels)
                horizontalHeader = self.tableWidget.horizontalHeader()
                horizontalHeader.setStretchLastSection(True)
                self.tableWidget.verticalHeader()
                self.setVisible(False)
                self.ui.verticalLayout.insertWidget(2, self.tableWidget)

        self.ui.connectButton.clicked.connect(self.changeSubscriberPath)
        self.changeSubscriberPath()

        # if the default path does not exist reset it to /
        value = self.subscriber.value()
        subPaths = self.subscriber.subPaths()
        if not value and not subPaths:
            self.ui.basePath.setText('/')
            self.changeSubscriberPath()
Esempio n. 8
0
 def __init__(self, movementList):
     QWidget.__init__(self)
     self.layout = QtGui.QGridLayout(self)
     self.positionTableWidget = QTableWidget()
     self.resize(800, 400)
     self.positionTableWidget.setRowCount(10000)
     self.positionTableWidget.setColumnCount(len(self.columnList))
     self.positionTableWidget.setHorizontalHeaderLabels(self.columnList)
     self.positionTableWidget.resizeColumnsToContents()
     self.positionTableWidget.resizeRowsToContents()
     self.layout.addWidget(self.positionTableWidget, 1, 0)
     for (movement) in movementList:
         self.renderMovements(movement)
     self.positionTableWidget.setRowCount(self.row)
 def createTable(self):
     self.table = QTableWidget()
     self.table.setRowCount(1000)
     self.table.setColumnCount(len(self.columnList) + 1)
     self.table.setColumnHidden(
         Constant.CONST_COLUMN_IMPORT_MOVEMENT_HIDDEN_ID, True)
     self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
     self.table.setHorizontalHeaderLabels(self.columnList)
     #self.pnLTableWidget.resizeColumnsToContents()
     self.table.sortItems(Constant.CONST_COLUMN_IMPORT_MOVEMENT_EVENT_DATE)
     self.table.doubleClicked.connect(self.doImportOrDelete)
     self.table.resizeRowsToContents()
     self.table.setFixedSize(1100, 900)
     return self.table
Esempio n. 10
0
 def createSummaryTable(self):
     self.summaryTableWidget = QTableWidget()
     self.summaryTableWidget.setRowCount(7)
     self.summaryTableWidget.setColumnCount(len(self.summaryColumnList))
     self.summaryTableWidget.setEditTriggers(
         QtGui.QAbstractItemView.NoEditTriggers)
     self.summaryTableWidget.setHorizontalHeaderLabels(
         self.summaryColumnList)
     #self.summaryTableWidget.setSortingEnabled(True)
     #self.summaryTableWidget.sortItems(0)
     self.summaryTableWidget.resizeColumnsToContents()
     self.summaryTableWidget.resizeRowsToContents()
     self.summaryTableWidget.setFixedSize(800, 200)
     self.layout.addWidget(self.summaryTableWidget, 1, 1)
Esempio n. 11
0
 def createTable(self):
     self.positionTableWidget = QTableWidget()
     self.positionTableWidget.setRowCount(27)
     self.positionTableWidget.setColumnCount(
         len(self.positionColumnList) + 1)
     self.positionTableWidget.setColumnHidden(
         Constant.CONST_COLUMN_POSITION_HIDDEN_ID, True)
     self.positionTableWidget.setEditTriggers(
         QtGui.QAbstractItemView.NoEditTriggers)
     self.positionTableWidget.setHorizontalHeaderLabels(
         self.positionColumnList)
     #self.positionTableWidget.setSortingEnabled(True)
     #self.positionTableWidget.sortItems(0)
     self.positionTableWidget.doubleClicked.connect(self.openMovementView)
     self.positionTableWidget.resizeColumnsToContents()
     self.positionTableWidget.resizeRowsToContents()
     self.layout.addWidget(self.positionTableWidget, 2, 0, 3, 3)
Esempio n. 12
0
    def __init__(self, variable_setting, parent=None):
        super(FoamDictWidget, self).__init__(parent)

        self.buttonLayout = QHBoxLayout()
        self.pushButtonInsert = QPushButton("Insert")
        #self.pushButtonLoad = QPushButton("Load default")
        self.pushButtonRestore = QPushButton("Restore")
        self.pushButtonClear = QPushButton("Clear")
        self.buttonLayout.addWidget(self.pushButtonInsert)
        #self.buttonLayout.addWidget(self.pushButtonLoad)
        self.buttonLayout.addWidget(self.pushButtonRestore)
        self.buttonLayout.addWidget(self.pushButtonClear)

        self.buttonPreview = QPushButton('Preview FoamFile write-out')
        self.textPreview = QTextEdit('')
        self.textPreview.setVisible(False)
        self.textPreview.setEnabled(False)

        self.tableWidget = QTableWidget()
        #header, should not sort, has vertical scrollbar
        # set column count, fixed to 2, size of TableItem
        self.tableWidget.setColumnCount(2)
        #5self.tableWidget.setHorizontalHeaderItem(0, )
        self.tableWidget.setHorizontalHeaderLabels(['key', 'value text'])
        # set a default row count, insert as needed
        self.tableWidget.setRowCount(0)

        #PySide has different name other than @QtCore.pyqtSlot, but PySide.QtCore.SLOT
        QtCore.QObject.connect(self.pushButtonInsert, QtCore.SIGNAL("clicked()"), self.insertRow)
        QtCore.QObject.connect(self.pushButtonRestore, QtCore.SIGNAL("clicked()"), self.restoreDict)
        QtCore.QObject.connect(self.pushButtonClear, QtCore.SIGNAL("clicked()"), self.clearDict)
        #
        QtCore.QObject.connect(self.tableWidget, QtCore.SIGNAL("doubleClicked()"), self.showPreview)  # does not work for PySide
        QtCore.QObject.connect(self.buttonPreview, QtCore.SIGNAL("clicked()"), self.showPreview)
        self._previewing = False

        self.settings = variable_setting
        self.restoreDict()

        self.myLayout = QVBoxLayout()
        self.myLayout.addLayout(self.buttonLayout)
        self.myLayout.addWidget(self.tableWidget)
        self.myLayout.addWidget(self.buttonPreview)
        self.myLayout.addWidget(self.textPreview)
        self.setLayout(self.myLayout)
Esempio n. 13
0
    def _createOutputTable(self):
        """
        A vanilla QTableWidget. Callbacks modify
        its properties, like number of columns, etc.
        """
        self.table_label = QtGui.QLabel('Table Output')

        self.table = QTableWidget()
        self.table.setColumnCount(3)
        self.table.setColumnWidth(0, 100)
        self.table.setColumnWidth(1, 300)
        self.table.setColumnWidth(2, 300)

        self.table.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)

        # Connect signals to slots
        self.table.customContextMenuRequested.connect(self._tablePopup)
        self.table.horizontalHeader().sectionDoubleClicked.connect(
            self._tableHeaderDoubleClicked)
        self.table.cellDoubleClicked.connect(self._tableCellDoubleClicked)
Esempio n. 14
0
    def setup_ui(self):
        splitter = QSplitter(self)
        left = QWidget(splitter)
        left.setLayout(QVBoxLayout(left))
        left.layout().addWidget(QLabel('QTableView', left))
        tableview = QTableView(left)
        tableview.setModel(TableModel(tableview))
        left.layout().addWidget(tableview)
        splitter.addWidget(left)
        right = QWidget(splitter)
        right.setLayout(QVBoxLayout(right))
        right.layout().addWidget(QLabel('QTableWidget', right))
        # create a table widget for DATA
        tablewidget = QTableWidget(len(DATA), len(DATA[1]), right)
        right.layout().addWidget(tablewidget)
        splitter.addWidget(right)
        self.setCentralWidget(splitter)

        # add tablewidget data
        self.add_data(tablewidget)
Esempio n. 15
0
 def setupUI(self):
     self.setWindowTitle(windowTital)
     self.resize(640, 480)
     self.table = QTableWidget(self)
     self.btn_add = QPushButton(u'增加')
     self.btn_del = QPushButton(u'删除')
     self.btn_modify = QPushButton(u'可以编辑')
     self.btn_select_line = QPushButton(u'选择整行')
     self.btn_select_single = QPushButton(u'禁止选多行')
     self.btn_sort = QPushButton(u'以分数排序')
     self.btn_set_header = QPushButton(u'标头设置')
     self.btn_set_middle = QPushButton(u'文字居中加颜色')
     self.btn_noframe = QPushButton(u'取消边框颜色交替')
     self.spacerItem = QSpacerItem(20, 20, QSizePolicy.Minimum,
                                   QSizePolicy.Expanding)
     self.vbox = QVBoxLayout()
     self.vbox.addWidget(self.btn_add)
     self.vbox.addWidget(self.btn_del)
     self.vbox.addWidget(self.btn_modify)
     self.vbox.addWidget(self.btn_select_line)
     self.vbox.addWidget(self.btn_select_single)
     self.vbox.addWidget(self.btn_sort)
     self.vbox.addWidget(self.btn_set_header)
     self.vbox.addWidget(self.btn_set_middle)
     self.vbox.addWidget(self.btn_noframe)
     self.vbox.addSpacerItem(
         self.spacerItem)  #可以用addItem也可以用addSpacerItem方法添加,没看出哪里不一样
     self.txt = QLabel()
     self.txt.setMinimumHeight(50)
     self.vbox2 = QVBoxLayout()
     self.vbox2.addWidget(self.table)
     self.vbox2.addWidget(self.txt)
     self.hbox = QHBoxLayout()
     self.hbox.addLayout(self.vbox2)
     self.hbox.addLayout(self.vbox)
     self.setLayout(self.hbox)
     self.table.setColumnCount(4)  ##设置列数
     self.headers = [u'id', u'选择', u'姓名', u'成绩', u'住址']
     self.table.setHorizontalHeaderLabels(self.headers)
     self.show()
Esempio n. 16
0
    def testItemModel(self):
        tv = QTableWidget()

        self.assertEqual(type(tv.model()), QAbstractTableModel)
Esempio n. 17
0
 def __init__(self, code=None, parent=None):
     logger.info('Inside ReportEmployeeTestDialogue')
     super(ReportEmployeeTestDialogue, self).__init__(parent)
     self.resize(500, 500)
     self.vertical_23 = QVBoxLayout(self)
     self.vertical_23.setObjectName("vertical_23")
     self.label_1 = QLabel(self)
     self.vertical_23.addWidget(self.label_1)
     self.report_health_table = QTableWidget(self)
     self.report_health_table.setObjectName("report_health_table")
     self.report_health_table.setColumnCount(5)
     self.report_health_table.setRowCount(0)
     self.report_health_table.setSelectionBehavior(
         QAbstractItemView.SelectRows)
     item = QTableWidgetItem()
     self.report_health_table.setHorizontalHeaderItem(0, item)
     item = QTableWidgetItem()
     self.report_health_table.setHorizontalHeaderItem(1, item)
     item = QTableWidgetItem()
     self.report_health_table.setHorizontalHeaderItem(2, item)
     item = QTableWidgetItem()
     self.report_health_table.setHorizontalHeaderItem(3, item)
     item = QTableWidgetItem()
     self.report_health_table.setHorizontalHeaderItem(4, item)
     self.report_health_table.horizontalHeader().setCascadingSectionResizes(
         True)
     self.report_health_table.horizontalHeader().setStretchLastSection(True)
     self.report_health_table.verticalHeader().setCascadingSectionResizes(
         True)
     self.vertical_23.addWidget(self.report_health_table)
     self.horizontal_21 = QHBoxLayout()
     self.report_health_newrow_buttuon = QPushButton(self)
     self.report_health_newrow_buttuon.setObjectName(
         "report_health_newrow_buttuon")
     self.horizontal_21.addWidget(self.report_health_newrow_buttuon)
     spacerItem23 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                QSizePolicy.Minimum)
     self.horizontal_21.addItem(spacerItem23)
     self.vertical_23.addLayout(self.horizontal_21)
     ### retanslate
     self.setWindowTitle(
         QApplication.translate("MainWindow", "Health Report", None,
                                QApplication.UnicodeUTF8))
     self.label_1.setText(
         QApplication.translate("MainWindow", "Health Report", None,
                                QApplication.UnicodeUTF8))
     self.report_health_table.horizontalHeaderItem(0).setText(
         QApplication.translate("MainWindow", "Code", None,
                                QApplication.UnicodeUTF8))
     self.report_health_table.horizontalHeaderItem(1).setText(
         QApplication.translate("MainWindow", "Date", None,
                                QApplication.UnicodeUTF8))
     self.report_health_table.horizontalHeaderItem(2).setText(
         QApplication.translate("MainWindow", "Organization Name", None,
                                QApplication.UnicodeUTF8))
     self.report_health_table.horizontalHeaderItem(3).setText(
         QApplication.translate("MainWindow", "Test", None,
                                QApplication.UnicodeUTF8))
     self.report_health_table.horizontalHeaderItem(4).setText(
         QApplication.translate("MainWindow", "Description", None,
                                QApplication.UnicodeUTF8))
     self.report_health_newrow_buttuon.setText(
         QApplication.translate("MainWindow", "New Row", None,
                                QApplication.UnicodeUTF8))
     ###signals and slots && other stuffs
     self.health = Health(emp_id=code)
     self.report_health_table.setEditTriggers(
         QAbstractItemView.NoEditTriggers)
     self.load_table_rows()
     self.report_health_table.itemDoubleClicked.connect(
         self.popup_health_edit)
     self.report_health_newrow_buttuon.clicked.connect(self.new_healthTest)
     self.focusInEvent = self.load_rows
Esempio n. 18
0
    def setup_ui(self):
        # main window width hand height
        # self.setMinimumWidth(600)
        self.setMaximumWidth(800)
        self.setMinimumHeight(600)
        # main window title
        self.setWindowTitle(static.title)
        # file menu bar
        self.menuBar = QMenuBar()
        self.menuBar.setMaximumHeight(23)
        # self.menuFile = self.menuBar.addMenu(static.menuFile)
        # self.importAction = QAction(QIcon(static.importPNG), static.importFile, self)
        # self.exportAction = QAction(QIcon(static.exportPNG), static.exportFile, self)
        # self.menuFile.addAction(self.importAction)
        # self.menuFile.addAction(self.exportAction)
        self.setEnvActioin = QAction(QIcon(static.setPNG), static.pcSet, self)
        self.menuSet = self.menuBar.addMenu(static.menuSet)
        self.menuSet.addAction(self.setEnvActioin)

        self.setAbout = QAction(QIcon(static.setPNG), static.menuAbout, self)
        self.setAbout.setStatusTip('About')  # 状态栏提示
        self.menuHelp = self.menuBar.addMenu(static.menuHelp)
        self.menuHelp.addAction(self.setAbout)



        # set all layout
        self.hbox = QHBoxLayout(self)

        # device ========
        self.topLeft = QFrame(self)
        self.topLeft.setMaximumSize(218, 300)
        self.topLeft.setMinimumSize(218, 200)
        self.topLeft.setFrameShape(QFrame.StyledPanel)
        self.topLeftLayout = QVBoxLayout(self.topLeft)
        self.toolBar = QToolBar()
        # self.androidDeviceAction = QRadioButton('Android', self)
        # self.androidDeviceAction.setFocusPolicy(Qt.NoFocus)
        # self.ipDeviceAction = QRadioButton('IP', self)
        # self.ipDeviceAction.setFocusPolicy(Qt.NoFocus)
        # self.ipDeviceAction.move(10, 10)
        # self.ipDeviceAction.toggle()
        self.findDeviceAction = QAction(QIcon(static.findDevice), static.findDeviceButton, self)
        self.deleteDeviceAction = QAction(QIcon(static.deleteDevice), static.deleteDeviceButton, self)
        # self.toolBar.addWidget(self.androidDeviceAction)
        # self.toolBar.addWidget(self.ipDeviceAction)
        self.toolBar.addAction(self.findDeviceAction)
        self.toolBar.addAction(self.deleteDeviceAction)
        self.deviceLab = QLabel(static.deviceName, self)
        self.device = QTableWidget(1, 2)
        self.device.setHorizontalHeaderLabels(['name', 'status'])
        self.device.setColumnWidth(0, 100)
        self.device.setColumnWidth(1, 80)
        self.topLeftLayout.addWidget(self.deviceLab)
        self.topLeftLayout.addWidget(self.toolBar)

        self.topLeftLayout.addWidget(self.device)


        # set button or other for running monkey or not and status of device and log ========
        self.topRight = QFrame(self)
        self.topRight.setFrameShape(QFrame.StyledPanel)
        self.topRight.setMaximumHeight(40)
        self.startButton = QPushButton(QIcon(static.startPNG), "")
        self.stopButton = QPushButton(QIcon(static.stopPNG), "")

        self.status = QLabel(static.status)
        self.statusEdit = QLineEdit(self)
        self.statusEdit.setReadOnly(True)
        self.statusEdit.setMaximumWidth(80)
        self.statusEdit.setMinimumWidth(80)
        self.statusEdit.setText("")
        # check log
        self.checkLogButton = QPushButton(static.checkLog)
        self.checkLogButton.setMaximumHeight(20)
        self.checkLogButton.setMinimumHeight(20)
        self.checkLogButton.setMaximumWidth(60)
        self.selectLog = QLabel(static.selectlog)
        self.logfile = QComboBox()
        self.dirlist = os.listdir(os.path.join(DIR, "Result"))
        for d in self.dirlist:
            if d != "AutoMonkey.log":
                self.logfile.insertItem(0, d)
        self.logfile.setMaximumWidth(150)
        self.logfile.setMaximumHeight(20)
        self.logfile.setMinimumHeight(20)
        self.topLayout = QHBoxLayout(self.topRight)
        self.topLayout.addWidget(self.startButton)
        self.topLayout.addWidget(self.stopButton)
        self.topLayout.addWidget(self.status)
        self.topLayout.addWidget(self.statusEdit)
        self.topLayout.addWidget(self.selectLog)
        self.topLayout.addWidget(self.logfile)
        self.topLayout.addWidget(self.checkLogButton)

        # set parameter for monkey =======
        self.midRight = QFrame(self)
        self.midRight.setMaximumSize(555, 200)
        self.midRight.setMinimumSize(555, 200)
        self.midRight.setFrameShape(QFrame.StyledPanel)
        self.midRightLayout = QVBoxLayout(self.midRight)
        self.subLayout0 = QVBoxLayout()
        self.subLayout1 = QVBoxLayout()
        self.subLayout2 = QHBoxLayout()
        self.subLayout3 = QVBoxLayout()
        self.subLayout4 = QVBoxLayout()
        self.subLayout5 = QHBoxLayout()
        self.subLayout6 = QHBoxLayout()
        self.toolBar = QToolBar()
        # self.storeAction = QAction(QIcon(static.storePNG), static.storeButton, self)
        self.startAction = QAction(QIcon(static.startPNG), static.startButton, self)
        self.stopAction = QAction(QIcon(static.stopPNG), static.stopButton, self)
        # self.toolBar.addAction(self.storeAction)
        self.toolBar.addAction(self.startAction)
        self.toolBar.addAction(self.stopAction)
        self.timeLongLbl = QLabel(static.timeString, self)
        self.timeLong = QLineEdit(self)
        self.timeLong.setMaximumWidth(100)
        self.timeLong.setMinimumWidth(100)
        self.timeLong.setPlaceholderText(static.timeLong)
        self.timeLongUnit = QLabel("H")
        self.etSetLbl = QLabel(static.eventTypeSet)
        self.etSet = QTableWidget(2, 2)
        self.etSet.setMaximumHeight(150)
        self.etSet.setHorizontalHeaderLabels(['option', 'value'])
        self.etSet.horizontalHeader().setStretchLastSection(True)
        self.etSet.setItem(0, 0, QTableWidgetItem("--throttle"))
        self.etSet.setItem(0, 1, QTableWidgetItem(str(static.eventType["--throttle"])))
        # set event type percent
        self.etPercentLbl = QLabel(static.eventTpyePercent, self)
        self.etPercent = QTableWidget(2, 2)
        self.etPercent.setMaximumHeight(150)
        self.etPercent.setHorizontalHeaderLabels(['option', 'value'])
        self.etPercent.horizontalHeader().setStretchLastSection(True)
        self.etPercent.setItem(0, 0, QTableWidgetItem("--pct-touch"))
        self.etPercent.setItem(0, 1, QTableWidgetItem(str(static.eventPercent["--pct-touch"])))
        self.etPercent.setItem(1, 0, QTableWidgetItem("--pct-motion"))
        self.etPercent.setItem(1, 1, QTableWidgetItem(str(static.eventPercent["--pct-motion"])))
        # self.storeButton = QPushButton(QIcon(static.storePNG), static.storeButton)
        # self.storeButton.setToolTip(static.storeButton)
        self.exportButton = QPushButton(QIcon(static.exportPNG), static.exportFile)
        self.exportButton.setToolTip(static.exportFile)
        self.importButton = QPushButton(QIcon(static.importPNG), static.importFile)
        self.importButton.setToolTip(static.importFile)
        self.subLayout2.addWidget(self.timeLongLbl)
        self.subLayout2.addWidget(self.timeLong)
        self.subLayout2.addWidget(self.timeLongUnit)
        self.subLayout2.addWidget(QLabel(" " * 300))
        # self.subLayout2.addWidget(self.storeButton)
        self.subLayout2.addWidget(self.exportButton)
        self.subLayout2.addWidget(self.importButton)

        self.subLayout0.addLayout(self.subLayout2)
        self.subLayout3.addWidget(self.etSetLbl)
        self.subLayout3.addWidget(self.etSet)
        self.subLayout4.addWidget(self.etPercentLbl)
        self.subLayout4.addWidget(self.etPercent)
        self.subLayout5.addLayout(self.subLayout0)
        self.subLayout6.addLayout(self.subLayout3)
        self.subLayout6.addLayout(self.subLayout4)
        self.midRightLayout.addLayout(self.subLayout5)
        self.midRightLayout.addLayout(self.subLayout6)

        # log ========
        self.bottom = QFrame(self)
        self.bottom.setFrameShape(QFrame.StyledPanel)
        # log information
        self.logInfo = QLabel(static.logInfo)
        # information filter
        self.logFilter = QLabel(static.logFilter)
        self.monkeyButton = QPushButton(static.openMonkeyLog)
        self.combo = QComboBox()
        for i in range(len(static.logLevel)):
            self.combo.addItem(static.logLevel[i])
        self.combo.setMaximumWidth(55)
        self.combo.setMaximumHeight(20)
        self.combo.setMinimumHeight(20)
        # information details
        self.bottomLayout = QVBoxLayout(self.bottom)
        self.subLayout = QHBoxLayout()
        self.subLayout.addWidget(self.logInfo)
        for i in range(10):
            self.subLayout.addWidget(QLabel(""))
        self.subLayout.addWidget(self.monkeyButton)
        self.subLayout.addWidget(self.logFilter)
        self.subLayout.addWidget(self.combo)
        self.bottomLayout.addLayout(self.subLayout)
        self.tabwidget = TabWidget()
        self.tabwidget.setMinimumHeight(100)
        self.bottomLayout.addWidget(self.tabwidget)

        # splitter mainWindow ++++++++++++++++++++++++++++++++++++
        self.splitter2 = QSplitter(Qt.Vertical)
        self.splitter2.addWidget(self.topRight)
        self.splitter2.addWidget(self.midRight)
        self.splitter0 = QSplitter(Qt.Horizontal)
        self.splitter0.addWidget(self.topLeft)
        self.splitter0.addWidget(self.splitter2)
        self.splitter1 = QSplitter(Qt.Vertical)
        self.splitter1.addWidget(self.menuBar)
        self.splitter1.addWidget(self.splitter0)
        self.splitter1.addWidget(self.bottom)
        self.hbox.addWidget(self.splitter1)
        self.setLayout(self.hbox)
        self.show()
Esempio n. 19
0
    def __init__(self):

        url = QLineEdit()
        urlLabel = QLabel('Url')
        messages = QTextEdit()
        messagesLabel = QLabel('Messages')
        links = QTableWidget(0, 2)
        linksLabel = QLabel('Links')
        clearMessages = QPushButton('Clear Messages')
        checkIfOnline = QPushButton('Check If Online')
        addSelectedLink = QPushButton('Add Link')
        removeSelectedLink = QPushButton('Remove Selected Link')

        messages.setReadOnly(True)

        links.setHorizontalHeaderLabels(['Url', 'Status'])
        links.horizontalHeader().setResizeMode(QHeaderView.Stretch)
        links.horizontalHeader().setResizeMode(1, QHeaderView.Fixed)

        # set the events

        url.returnPressed.connect(self.select_stream_from_entry)
        links.itemDoubleClicked.connect(self.select_stream_from_link)
        clearMessages.clicked.connect(self.clear_messages)
        checkIfOnline.clicked.connect(self.check_if_online)
        addSelectedLink.clicked.connect(self.add_selected_link)
        removeSelectedLink.clicked.connect(self.remove_selected_link)

        # set the layouts

        mainLayout = QGridLayout()

        # first row
        mainLayout.addWidget(urlLabel, 0, 0, 1, 2)  # spans 2 columns
        mainLayout.addWidget(linksLabel, 0, 2, 1, 3)  # spans 3 columns

        # second row  (links widget occupies 2 rows and 2 columns)
        mainLayout.addWidget(url, 1, 0, 1, 2)  # spans 2 columns
        mainLayout.addWidget(links, 1, 2, 2, 3)  # spans 3 columns

        # third row (messages widget occupies 2 columns)
        mainLayout.addWidget(messages, 2, 0, 1, 2)

        # fourth row
        mainLayout.addWidget(messagesLabel, 3, 0)
        mainLayout.addWidget(clearMessages, 3, 1)
        mainLayout.addWidget(checkIfOnline, 3, 2)
        mainLayout.addWidget(addSelectedLink, 3, 3)
        mainLayout.addWidget(removeSelectedLink, 3, 4)

        window = QWidget()

        window.setLayout(mainLayout)
        window.setWindowTitle('Live Streamer')
        window.resize(700, 350)
        window.show()

        self.url_ui = url
        self.messages_ui = messages
        self.links_ui = links
        self.window_ui = window

        self.links = set()
Esempio n. 20
0
        # The commitData signal must be emitted when we've finished editing
        # and need to write our changed back to the model.
        self.commitData.emit(editor)
        self.closeEditor.emit(editor)


if __name__ == "__main__":
    """ Run the application. """
    from PySide.QtGui import (QApplication, QTableWidget, QTableWidgetItem,
                              QAbstractItemView)
    import sys

    app = QApplication(sys.argv)

    # Create and populate the tableWidget
    tableWidget = QTableWidget(4, 4)
    tableWidget.setItemDelegate(StarDelegate())
    tableWidget.setEditTriggers(QAbstractItemView.DoubleClicked
                                | QAbstractItemView.SelectedClicked)
    tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
    tableWidget.setHorizontalHeaderLabels(
        ["Title", "Genre", "Artist", "Rating"])

    data = [["Mass in B-Minor", "Baroque", "J.S. Bach", 5],
            ["Three More Foxes", "Jazz", "Maynard Ferguson", 4],
            ["Sex Bomb", "Pop", "Tom Jones", 3],
            ["Barbie Girl", "Pop", "Aqua", 5]]

    for r in range(len(data)):
        tableWidget.setItem(r, 0, QTableWidgetItem(data[r][0]))
        tableWidget.setItem(r, 1, QTableWidgetItem(data[r][1]))
Esempio n. 21
0
 def __init__(self):
     #####
     logger.info('Inside PurchaseSchedule')
     self.notificationTab_tab_4 = QWidget()
     self.notificationTab_tab_4.setObjectName("notificationTab_tab_4")
     self.gridLayout_19 = QGridLayout(self.notificationTab_tab_4)
     self.gridLayout_19.setObjectName("gridLayout_19")
     ##
     self.horizontalLayout = QHBoxLayout()
     self.horizontalLayout.setObjectName("horizontalLayout")
     self.title_label = QLabel(self.notificationTab_tab_4)
     self.title_label.setObjectName("title_label")
     self.horizontalLayout.addWidget(self.title_label)
     self.gridLayout_19.addLayout(self.horizontalLayout, 0, 0, 1, 1)
     ##
     self.horizontalLayout_6 = QHBoxLayout()
     self.horizontalLayout_6.setObjectName("horizontalLayout_6")
     self.id_label = QLabel(self.notificationTab_tab_4)
     self.id_label.setObjectName("id_label")
     self.horizontalLayout_6.addWidget(self.id_label)
     self.id_line = QLineEdit(self.notificationTab_tab_4)
     self.id_line.setObjectName("id_line")
     self.horizontalLayout_6.addWidget(self.id_line)
     self.notification_schedule_fromdate_label = QLabel(
         self.notificationTab_tab_4)
     self.notification_schedule_fromdate_label.setObjectName(
         "notification_schedule_fromdate_label")
     self.horizontalLayout_6.addWidget(
         self.notification_schedule_fromdate_label)
     self.notification_schedule_fromdate_dateedit = QDateEdit(
         self.notificationTab_tab_4)
     self.notification_schedule_fromdate_dateedit.setMaximumDate(
         QDate.currentDate())
     self.notification_schedule_fromdate_dateedit.setDate(
         QDate.currentDate())
     self.notification_schedule_fromdate_dateedit.setCalendarPopup(True)
     self.notification_schedule_fromdate_dateedit.setObjectName(
         "notification_schedule_fromdate_dateedit")
     self.horizontalLayout_6.addWidget(
         self.notification_schedule_fromdate_dateedit)
     self.notification_schedule_todate_label = QLabel(
         self.notificationTab_tab_4)
     self.notification_schedule_todate_label.setObjectName(
         "notification_schedule_todate_label")
     self.horizontalLayout_6.addWidget(
         self.notification_schedule_todate_label)
     self.notification_schedule_todate_dateedit = QDateEdit(
         self.notificationTab_tab_4)
     self.notification_schedule_todate_dateedit.setMaximumDate(
         QDate.currentDate())
     self.notification_schedule_todate_dateedit.setDate(QDate.currentDate())
     self.notification_schedule_todate_dateedit.setCalendarPopup(True)
     self.notification_schedule_todate_dateedit.setObjectName(
         "notification_schedule_todate_dateedit")
     self.horizontalLayout_6.addWidget(
         self.notification_schedule_todate_dateedit)
     self.type_label = QLabel(self.notificationTab_tab_4)
     self.type_label.setObjectName("type_label")
     self.horizontalLayout_6.addWidget(self.type_label)
     self.notification_states = QComboBox(self.notificationTab_tab_4)
     self.notification_states.setObjectName("notification_states")
     self.horizontalLayout_6.addWidget(self.notification_states)
     self.batch_label = QLabel(self.notificationTab_tab_4)
     self.batch_label.setObjectName("batch_label")
     self.horizontalLayout_6.addWidget(self.batch_label)
     self.notification_results = QComboBox(self.notificationTab_tab_4)
     self.notification_results.setObjectName("notification_results")
     self.horizontalLayout_6.addWidget(self.notification_results)
     self.gridLayout_19.addLayout(self.horizontalLayout_6, 1, 0, 1, 1)
     self.gridLayout_8 = QGridLayout()
     self.gridLayout_8.setObjectName("gridLayout_8")
     self.notification_schedule_table = QTableWidget(
         self.notificationTab_tab_4)
     self.notification_schedule_table.setObjectName(
         "notification_schedule_table")
     self.notification_schedule_table.setColumnCount(5)
     self.notification_schedule_table.setRowCount(0)
     self.notification_schedule_table.setWordWrap(True)
     item = QTableWidgetItem()
     self.notification_schedule_table.setHorizontalHeaderItem(0, item)
     item = QTableWidgetItem()
     self.notification_schedule_table.setHorizontalHeaderItem(1, item)
     item = QTableWidgetItem()
     self.notification_schedule_table.setHorizontalHeaderItem(2, item)
     item = QTableWidgetItem()
     self.notification_schedule_table.setHorizontalHeaderItem(3, item)
     item = QTableWidgetItem()
     self.notification_schedule_table.setHorizontalHeaderItem(4, item)
     self.notification_schedule_table.horizontalHeader(
     ).setCascadingSectionResizes(True)
     self.notification_schedule_table.horizontalHeader(
     ).setStretchLastSection(True)
     self.notification_schedule_table.verticalHeader().setVisible(False)
     self.notification_schedule_table.verticalHeader(
     ).setCascadingSectionResizes(True)
     self.notification_schedule_table.verticalHeader(
     ).setStretchLastSection(False)
     self.gridLayout_8.addWidget(self.notification_schedule_table, 0, 0, 1,
                                 5)
     self.notification_search_button = QPushButton(
         self.notificationTab_tab_4)
     self.notification_search_button.setObjectName(
         "notification_search_button")
     self.gridLayout_8.addWidget(self.notification_search_button, 1, 0, 1,
                                 1)
     spacerItem10 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                QSizePolicy.Minimum)
     self.gridLayout_8.addItem(spacerItem10, 1, 2, 1, 1)
     self.notification_reset_button = QPushButton(
         self.notificationTab_tab_4)
     self.notification_reset_button.setObjectName(
         "notification_reset_button")
     self.gridLayout_8.addWidget(self.notification_reset_button, 1, 3, 1, 1)
     self.notification_load_more_button = QPushButton(
         self.notificationTab_tab_4)
     self.notification_load_more_button.setObjectName(
         "notification_load_more_button")
     self.gridLayout_8.addWidget(self.notification_load_more_button, 1, 4,
                                 1, 1)
     self.gridLayout_19.addLayout(self.gridLayout_8, 2, 0, 1, 1)
     ###retranslate
     self.title_label.setText(
         QApplication.translate(
             "MainWindow", "<html><head/><body><p align=\"center\">"
             "<span style=\" font-weight:600;font-size:20px\">"
             "<u>All Notifications</u></span></p></body></html>", None,
             QApplication.UnicodeUTF8))
     self.id_label.setText(
         QApplication.translate("MainWindow", "Message Id", None,
                                QApplication.UnicodeUTF8))
     self.notification_schedule_fromdate_label.setText(
         QApplication.translate("MainWindow", "From Date", None,
                                QApplication.UnicodeUTF8))
     self.notification_schedule_fromdate_dateedit.setDisplayFormat(
         QApplication.translate("MainWindow", "dd/MM/yyyy", None,
                                QApplication.UnicodeUTF8))
     self.notification_schedule_todate_label.setText(
         QApplication.translate("MainWindow", "To Date", None,
                                QApplication.UnicodeUTF8))
     self.notification_schedule_todate_dateedit.setDisplayFormat(
         QApplication.translate("MainWindow", "dd/MM/yyyy", None,
                                QApplication.UnicodeUTF8))
     self.type_label.setText(
         QApplication.translate("MainWindow", "Type", None,
                                QApplication.UnicodeUTF8))
     self.batch_label.setText(
         QApplication.translate("MainWindow", "Number of Notifications",
                                None, QApplication.UnicodeUTF8))
     self.notification_schedule_table.horizontalHeaderItem(0).setText(
         QApplication.translate("MainWindow", "Message Id", None,
                                QApplication.UnicodeUTF8))
     self.notification_schedule_table.horizontalHeaderItem(1).setText(
         QApplication.translate("MainWindow", "Date", None,
                                QApplication.UnicodeUTF8))
     self.notification_schedule_table.horizontalHeaderItem(2).setText(
         QApplication.translate("MainWindow", "From", None,
                                QApplication.UnicodeUTF8))
     self.notification_schedule_table.horizontalHeaderItem(3).setText(
         QApplication.translate("MainWindow", "Message", None,
                                QApplication.UnicodeUTF8))
     self.notification_schedule_table.horizontalHeaderItem(4).setText(
         QApplication.translate("MainWindow", "State", None,
                                QApplication.UnicodeUTF8))
     self.notification_search_button.setText(
         QApplication.translate("MainWindow", "Search", None,
                                QApplication.UnicodeUTF8))
     self.notification_reset_button.setText(
         QApplication.translate("MainWindow", "Reset All", None,
                                QApplication.UnicodeUTF8))
     self.notification_load_more_button.setText(
         QApplication.translate("MainWindow", "Load More", None,
                                QApplication.UnicodeUTF8))
     ##signals and slotts && other stuffs
     self.scheduletable_count = 0
     self.addtable_count = 0
     # self.mainwindow = Ui_MainWindow  # just for the ease of finding the attributes in pycharm
     self.notification_schedule_table.setEditTriggers(
         QAbstractItemView.NoEditTriggers)
     self.batch_number = None
     self.notification_results.addItems([str(i) for i in range(1, 50, 5)])
     self.notification_states.addItems(['All', 'New', 'To Do', 'Done'])
     self.message = Messaging()
     self.notification_load_more_button.clicked.connect(self.load_more)
     self.notification_search_button.clicked.connect(self.search_messages)
     self.notification_reset_button.clicked.connect(self.reset_all)
     self.notificationTab_tab_4.setFocusPolicy(Qt.StrongFocus)
     self.notificationTab_tab_4.focusInEvent = self.load_rows
Esempio n. 22
0
  def setupUi(self, MainWindow):
      MainWindow.setObjectName("MainWindow")
      MainWindow.setFixedSize(800, 600)
      self.centralwidget = QWidget(MainWindow)
      self.centralwidget.setObjectName("centralwidget")
      self.FilterLbl = QLabel(self.centralwidget)
      self.FilterLbl.setGeometry(QtCore.QRect(30, 150, 60, 15))
      self.FilterLbl.setObjectName("FilterLbl")
      self.FilterCB = QComboBox(self.centralwidget)
      self.FilterCB.setGeometry(QtCore.QRect(450, 150, 100, 22))
      self.FilterCB.setObjectName("FilterCB")
      self.FilterCB.addItem("")
      self.FilterCB.addItem("")
      self.FilterCB.addItem("")
      self.FilterCB.addItem("")         
      self.FilterTF = QLineEdit(self.centralwidget)
      self.FilterTF.setGeometry(QtCore.QRect(100, 150, 320, 20))        
      self.tableView = QTableWidget(self.centralwidget)
      self.tableView.setGeometry(QtCore.QRect(10, 180, 781, 511))
      self.tableView.setObjectName("tableView")
      self.tableView.setColumnCount(4)
      self.tableView.setRowCount(0)
      item = QTableWidgetItem("Cena za kg/l")
      self.tableView.setHorizontalHeaderItem(0, item)
      item = QTableWidgetItem("Cena ze kus")
      self.tableView.setHorizontalHeaderItem(1, item)
      item = QTableWidgetItem(u"Gramaž")
      self.tableView.setHorizontalHeaderItem(2, item)
      item = QTableWidgetItem("Popis")
      item.setTextAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter|QtCore.Qt.AlignCenter)
      font = QtGui.QFont()
      font.setPointSize(8)
      item.setFont(font)
      self.tableView.setHorizontalHeaderItem(3, item)
      self.tableView.horizontalHeader().setStretchLastSection(True)
      
      self.SaveBtn = QPushButton(self.centralwidget)
      self.SaveBtn.setGeometry(QtCore.QRect(30, 10, 100, 23))
      self.SaveBtn.setObjectName("SaveBtn")
      self.PrintSelectedToFileBtn = QPushButton(self.centralwidget)
      self.PrintSelectedToFileBtn.setGeometry(QtCore.QRect(225, 10, 100, 23))        
      self.PrintSelectedToFileBtn.setObjectName("PrintSelectedToFileBtn")
      self.PriceForUnitTF = QLineEdit(self.centralwidget)
      self.PriceForUnitTF.setGeometry(QtCore.QRect(100, 70, 113, 20))
      self.PriceForUnitTF.setObjectName("PriceForUnitTF")
      self.PriceForUnitLbl = QLabel(self.centralwidget)
      self.PriceForUnitLbl.setGeometry(QtCore.QRect(30, 70, 60, 13))
      self.PriceForUnitLbl.setObjectName("PriceForUnitLbl")
      self.ArtikelTF = QLineEdit(self.centralwidget)
      self.ArtikelTF.setGeometry(QtCore.QRect(100, 100, 113, 20))
      self.ArtikelTF.setObjectName("ArtikelTF")
      self.ArtikelLbl = QLabel(self.centralwidget)
      self.ArtikelLbl.setGeometry(QtCore.QRect(30, 100, 46, 13))
      self.ArtikelLbl.setObjectName("ArtikelLbl")
      self.DescriptionLbl = QLabel(self.centralwidget)
      self.DescriptionLbl.setGeometry(QtCore.QRect(455, 70, 75, 13))
      self.DescriptionLbl.setObjectName("DescriptionLbl")
      self.UnitLbl = QLabel(self.centralwidget)
      self.UnitLbl.setGeometry(QtCore.QRect(250, 70, 60, 15))
      self.UnitLbl.setObjectName("UnitLbl")
      self.WeightLbl = QLabel(self.centralwidget)
      self.WeightLbl.setGeometry(QtCore.QRect(250, 100, 60, 13))
      self.WeightLbl.setObjectName("UnitLbl")
      self.WeightTF = QLineEdit(self.centralwidget)
      self.WeightTF.setGeometry(QtCore.QRect(320, 100, 100, 20))
      self.WeightTF.setObjectName("WeightTF")        
      self.UnitCB = QComboBox(self.centralwidget)
      self.UnitCB.setGeometry(QtCore.QRect(320, 70, 100, 22))
      self.UnitCB.setObjectName("UnitCB")
      self.UnitCB.addItem("")
      self.UnitCB.addItem("")
      self.DescriptionTE = QPlainTextEdit(self.centralwidget)
      self.DescriptionTE.setGeometry(QtCore.QRect(540, 30, 241, 61))
      self.DescriptionTE.setObjectName("DescriptionTE")
      self.PrintToFileBtn = QPushButton(self.centralwidget)
      self.PrintToFileBtn.setGeometry(QtCore.QRect(140, 10, 75, 23))
      self.PrintToFileBtn.setObjectName("PrintToFileBtn")
      self.AddRecordBtn = QPushButton(self.centralwidget)
      self.AddRecordBtn.setGeometry(QtCore.QRect(450, 100, 75, 23))
      self.AddRecordBtn.setObjectName("AddRecordBtn")        
      self.SaveChangeBtn = QPushButton(self.centralwidget)
      self.SaveChangeBtn.setGeometry(QtCore.QRect(550, 100, 75, 23))
      self.SaveChangeBtn.setObjectName("SaveChangeBtn")
      self.DeleteRecordBtn = QPushButton(self.centralwidget)
      self.DeleteRecordBtn.setGeometry(QtCore.QRect(650, 100, 75, 23))
      self.DeleteRecordBtn.setObjectName("DeleteRecordBtn")
      MainWindow.setCentralWidget(self.centralwidget)
      self.menubar = QMenuBar(MainWindow)
      self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 21))
      self.menubar.setObjectName("menubar")
      MainWindow.setMenuBar(self.menubar)
      self.statusbar = QStatusBar(MainWindow)
      self.statusbar.setObjectName("statusbar")
 
      self.FilterTF.textChanged.connect(self.on_lineEdit_textChanged)
      self.FilterCB.currentIndexChanged.connect(self.on_comboBox_currentIndexChanged)
      self.retranslateUi(MainWindow)
      QtCore.QMetaObject.connectSlotsByName(MainWindow)
Esempio n. 23
0
 def __init__(self):
     ####
     logger.info('Inside Hygiene')
     self.reporthygiene_tab_2 = QWidget()
     self.reporthygiene_tab_2.setObjectName("reporthygiene_tab_2")
     self.vertical_23 = QVBoxLayout(self.reporthygiene_tab_2)
     self.vertical_23.setObjectName("vertical_23")
     self.label_1 = QLabel(self.reporthygiene_tab_2)
     self.vertical_23.addWidget(self.label_1)
     self.report_hyginepest_table = QTableWidget(self.reporthygiene_tab_2)
     self.report_hyginepest_table.setObjectName("report_hyginepest_table")
     self.report_hyginepest_table.setColumnCount(5)
     self.report_hyginepest_table.setRowCount(0)
     self.report_hyginepest_table.setSelectionBehavior(
         QAbstractItemView.SelectRows)
     item = QTableWidgetItem()
     self.report_hyginepest_table.setHorizontalHeaderItem(0, item)
     item = QTableWidgetItem()
     self.report_hyginepest_table.setHorizontalHeaderItem(1, item)
     item = QTableWidgetItem()
     self.report_hyginepest_table.setHorizontalHeaderItem(2, item)
     item = QTableWidgetItem()
     self.report_hyginepest_table.setHorizontalHeaderItem(3, item)
     item = QTableWidgetItem()
     self.report_hyginepest_table.setHorizontalHeaderItem(4, item)
     self.report_hyginepest_table.horizontalHeader(
     ).setCascadingSectionResizes(True)
     self.report_hyginepest_table.horizontalHeader().setStretchLastSection(
         True)
     self.report_hyginepest_table.verticalHeader(
     ).setCascadingSectionResizes(True)
     self.vertical_23.addWidget(self.report_hyginepest_table)
     self.horizontal_21 = QHBoxLayout()
     self.report_hyginepest_newrow_buttuon = QPushButton(
         self.reporthygiene_tab_2)
     self.report_hyginepest_newrow_buttuon.setObjectName(
         "report_hyginepest_newrow_buttuon")
     self.horizontal_21.addWidget(self.report_hyginepest_newrow_buttuon)
     spacerItem23 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                QSizePolicy.Minimum)
     self.horizontal_21.addItem(spacerItem23)
     # self.report_hyginepest_save_button = QPushButton(self.reporthygiene_tab_2)
     # self.report_hyginepest_save_button.setObjectName("report_hyginepest_save_button")
     # self.horizontal_21.addWidget(self.report_hyginepest_save_button)
     self.vertical_23.addLayout(self.horizontal_21)
     self.label_2 = QLabel(self.reporthygiene_tab_2)
     self.vertical_23.addWidget(self.label_2)
     self.report_hyginewater_table = QTableWidget(self.reporthygiene_tab_2)
     self.report_hyginewater_table.setObjectName("report_hyginewater_table")
     self.report_hyginewater_table.setColumnCount(5)
     self.report_hyginewater_table.setRowCount(0)
     self.report_hyginewater_table.setSelectionBehavior(
         QAbstractItemView.SelectRows)
     item = QTableWidgetItem()
     self.report_hyginewater_table.setHorizontalHeaderItem(0, item)
     item = QTableWidgetItem()
     self.report_hyginewater_table.setHorizontalHeaderItem(1, item)
     item = QTableWidgetItem()
     self.report_hyginewater_table.setHorizontalHeaderItem(2, item)
     item = QTableWidgetItem()
     self.report_hyginewater_table.setHorizontalHeaderItem(3, item)
     item = QTableWidgetItem()
     self.report_hyginewater_table.setHorizontalHeaderItem(4, item)
     self.report_hyginewater_table.horizontalHeader(
     ).setCascadingSectionResizes(True)
     self.report_hyginewater_table.horizontalHeader().setStretchLastSection(
         True)
     self.report_hyginewater_table.verticalHeader(
     ).setCascadingSectionResizes(True)
     self.vertical_23.addWidget(self.report_hyginewater_table)
     self.horizontal_22 = QHBoxLayout()
     self.report_hyginewater_newrow_buttuon = QPushButton(
         self.reporthygiene_tab_2)
     self.report_hyginewater_newrow_buttuon.setObjectName(
         "report_hyginewater_newrow_buttuon")
     self.horizontal_22.addWidget(self.report_hyginewater_newrow_buttuon)
     spacerItem24 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                QSizePolicy.Minimum)
     self.horizontal_22.addItem(spacerItem24)
     # self.report_hyginewater_save_button = QPushButton(self.reporthygiene_tab_2)
     # self.report_hyginewater_save_button.setObjectName("report_hyginewater_save_button")
     # self.horizontal_22.addWidget(self.report_hyginewater_save_button)
     self.vertical_23.addLayout(self.horizontal_22)
     ### retanslate
     self.label_1.setText(
         QApplication.translate("MainWindow", "Pest Test Report", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginepest_table.horizontalHeaderItem(0).setText(
         QApplication.translate("MainWindow", "Code", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginepest_table.horizontalHeaderItem(1).setText(
         QApplication.translate("MainWindow", "Date", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginepest_table.horizontalHeaderItem(2).setText(
         QApplication.translate("MainWindow", "Organization Name", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginepest_table.horizontalHeaderItem(3).setText(
         QApplication.translate("MainWindow", "Test", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginepest_table.horizontalHeaderItem(4).setText(
         QApplication.translate("MainWindow", "Description", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginepest_newrow_buttuon.setText(
         QApplication.translate("MainWindow", "New Row", None,
                                QApplication.UnicodeUTF8))
     # self.report_hyginepest_save_button.setText(
     # QApplication.translate("MainWindow", "Save", None, QApplication.UnicodeUTF8))
     self.label_2.setText(
         QApplication.translate("MainWindow", "Water Test Report", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginewater_table.horizontalHeaderItem(0).setText(
         QApplication.translate("MainWindow", "Code", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginewater_table.horizontalHeaderItem(1).setText(
         QApplication.translate("MainWindow", "Date", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginewater_table.horizontalHeaderItem(2).setText(
         QApplication.translate("MainWindow", "Organization Name", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginewater_table.horizontalHeaderItem(3).setText(
         QApplication.translate("MainWindow", "Test", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginewater_table.horizontalHeaderItem(4).setText(
         QApplication.translate("MainWindow", "Description", None,
                                QApplication.UnicodeUTF8))
     self.report_hyginewater_newrow_buttuon.setText(
         QApplication.translate("MainWindow", "New Row", None,
                                QApplication.UnicodeUTF8))
     # self.report_hyginewater_save_button.setText(
     #     QApplication.translate("MainWindow", "Save", None, QApplication.UnicodeUTF8))
     ###signals and slots && other stuffs
     self.pest = Pest()
     self.water = Water()
     self.report_hyginepest_table.setEditTriggers(
         QAbstractItemView.NoEditTriggers)
     self.report_hyginewater_table.setEditTriggers(
         QAbstractItemView.NoEditTriggers)
     self.load_table_rows()
     self.report_hyginepest_table.itemDoubleClicked.connect(
         self.popup_pest_edit)
     self.report_hyginewater_table.itemDoubleClicked.connect(
         self.popup_water_edit)
     self.reporthygiene_tab_2.focusInEvent = self.load_rows  # very important for focus
     self.report_hyginepest_newrow_buttuon.clicked.connect(
         self.new_pestTest)  # if no focus available then we need lambda
     self.report_hyginewater_newrow_buttuon.clicked.connect(
         self.new_waterTest)
Esempio n. 24
0
 def __init__(self):
     ###
     logger.info('Inside WasteDish')
     self.wastedetail_tab_1 = QWidget()
     self.wastedetail_tab_1.setObjectName("wastedetail_tab_1")
     self.verticalLayout_9 = QVBoxLayout(self.wastedetail_tab_1)
     self.verticalLayout_9.setObjectName("verticalLayout_9")
     self.verticalLayout_8 = QVBoxLayout()
     self.verticalLayout_8.setObjectName("verticalLayout_8")
     self.horizontalLayout_12 = QHBoxLayout()
     self.horizontalLayout_12.setObjectName("horizontalLayout_12")
     self.waste_fromdate_label = QLabel(self.wastedetail_tab_1)
     self.waste_fromdate_label.setObjectName('waste_fromdate_label')
     self.horizontalLayout_12.addWidget(self.waste_fromdate_label)
     self.waste_fromdate_dateedit = QDateEdit(self.wastedetail_tab_1)
     self.waste_fromdate_dateedit.setCalendarPopup(True)
     self.waste_fromdate_dateedit.setObjectName("waste_fromdate_dateedit")
     self.horizontalLayout_12.addWidget(self.waste_fromdate_dateedit)
     self.waste_todate_label = QLabel(self.wastedetail_tab_1)
     self.waste_todate_label.setObjectName('waste_todate_label')
     self.horizontalLayout_12.addWidget(self.waste_todate_label)
     self.waste_todate_dateedit = QDateEdit(self.wastedetail_tab_1)
     self.waste_todate_dateedit.setCalendarPopup(True)
     self.waste_todate_dateedit.setObjectName("waste_todate_dateedit")
     self.waste_todate_dateedit.setMaximumDate(QDate.currentDate())
     self.horizontalLayout_12.addWidget(self.waste_todate_dateedit)
     spacerItem28 = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                QSizePolicy.Minimum)
     self.horizontalLayout_12.addItem(spacerItem28)
     self.waste_table_search_button = QPushButton(self.wastedetail_tab_1)
     self.waste_table_search_button.setObjectName(
         "waste_table_search_button")
     self.horizontalLayout_12.addWidget(self.waste_table_search_button)
     self.verticalLayout_8.addLayout(self.horizontalLayout_12)
     self.waste_table = QTableWidget(self.wastedetail_tab_1)
     self.waste_table.setObjectName("waste_table")
     self.waste_table.setColumnCount(5)
     self.waste_table.setRowCount(0)
     item = QTableWidgetItem()
     self.waste_table.setHorizontalHeaderItem(0, item)
     item = QTableWidgetItem()
     self.waste_table.setHorizontalHeaderItem(1, item)
     item = QTableWidgetItem()
     self.waste_table.setHorizontalHeaderItem(2, item)
     item = QTableWidgetItem()
     self.waste_table.setHorizontalHeaderItem(3, item)
     item = QTableWidgetItem()
     self.waste_table.setHorizontalHeaderItem(4, item)
     self.waste_table.horizontalHeader().setCascadingSectionResizes(False)
     self.waste_table.horizontalHeader().setStretchLastSection(True)
     self.waste_table.verticalHeader().setVisible(False)
     self.waste_table.verticalHeader().setCascadingSectionResizes(False)
     self.waste_table.setSortingEnabled(True)
     self.verticalLayout_8.addWidget(self.waste_table)
     self.horizontalLayout_13 = QHBoxLayout()
     self.horizontalLayout_13.setObjectName("horizontalLayout_13")
     self.waste_table_newrow_button = QPushButton(self.wastedetail_tab_1)
     self.waste_table_newrow_button.setObjectName(
         "waste_table_newrow_button")
     self.horizontalLayout_13.addWidget(self.waste_table_newrow_button)
     spacerItem29 = QSpacerItem(612, 20, QSizePolicy.Expanding,
                                QSizePolicy.Minimum)
     self.horizontalLayout_13.addItem(spacerItem29)
     self.waste_table_discard_button = QPushButton(self.wastedetail_tab_1)
     self.waste_table_discard_button.setObjectName(
         "waste_table_discard_button")
     self.horizontalLayout_13.addWidget(self.waste_table_discard_button)
     self.verticalLayout_8.addLayout(self.horizontalLayout_13)
     self.verticalLayout_9.addLayout(self.verticalLayout_8)
     ##retranslate
     self.waste_fromdate_label.setText(
         QApplication.translate("MainWindow", "From Date", None,
                                QApplication.UnicodeUTF8))
     self.waste_fromdate_dateedit.setDisplayFormat(
         QApplication.translate("MainWindow", "dd/MM/yyyy", None,
                                QApplication.UnicodeUTF8))
     self.waste_todate_label.setText(
         QApplication.translate("MainWindow", "To Date", None,
                                QApplication.UnicodeUTF8))
     self.waste_todate_dateedit.setDisplayFormat(
         QApplication.translate("MainWindow", "dd/MM/yyyy", None,
                                QApplication.UnicodeUTF8))
     self.waste_table_search_button.setText(
         QApplication.translate("MainWindow", "Search", None,
                                QApplication.UnicodeUTF8))
     self.waste_table.horizontalHeaderItem(0).setText(
         QApplication.translate("MainWindow", "Code", None,
                                QApplication.UnicodeUTF8))
     self.waste_table.horizontalHeaderItem(1).setText(
         QApplication.translate("MainWindow", "Item", None,
                                QApplication.UnicodeUTF8))
     self.waste_table.horizontalHeaderItem(2).setText(
         QApplication.translate("MainWindow", "Category", None,
                                QApplication.UnicodeUTF8))
     self.waste_table.horizontalHeaderItem(3).setText(
         QApplication.translate("MainWindow", "Quantity", None,
                                QApplication.UnicodeUTF8))
     self.waste_table.horizontalHeaderItem(4).setText(
         QApplication.translate("MainWindow", "Reason", None,
                                QApplication.UnicodeUTF8))
     self.waste_table_newrow_button.setText(
         QApplication.translate("MainWindow", "New Row", None,
                                QApplication.UnicodeUTF8))
     self.waste_table_discard_button.setText(
         QApplication.translate("MainWindow", "Discard Item", None,
                                QApplication.UnicodeUTF8))
     self.wastedetail_tab_1.setTabOrder(self.waste_fromdate_dateedit,
                                        self.waste_todate_dateedit)
     self.wastedetail_tab_1.setTabOrder(self.waste_todate_dateedit,
                                        self.waste_table_search_button)
     ###signals and slots && other stuffs
     # self.mainwindow = Ui_MainWindow  # just for the ease of finding the attributes in pycharm
     self.schedule = SchedulePurchase()
     self.suplier = BusinessParty(category='Supplier')
     self.add = AddStockInventory()
     self.item = WasteMenu()
     self.waste_fromdate_dateedit.setDate(QDate.currentDate())
     self.waste_todate_dateedit.setDate(QDate.currentDate())
     self.waste_table.setEditTriggers(QAbstractItemView.NoEditTriggers)
     self.waste_table_newrow_button.clicked.connect(self.add_new_blank_rows)
     self.waste_table_discard_button.clicked.connect(self.discard)
     self.waste_table_search_button.clicked.connect(self.search_discard)
     self.wastedetail_tab_1.setFocusPolicy(Qt.StrongFocus)
     self.wastedetail_tab_1.focusInEvent = self.load_rows
Esempio n. 25
0
    def _updateDataTable(self, data):
        '''
        Updates the data table with data from the last integration.
        '''

        #prepare data
        self.dataTableHeaders = []
        self.dataTableColumnData = []
        self.dataTableRowCount = -1
        self.dataTableRowHeaders = None
        self.maxValue = -1
        for (entity, entityDataList) in data.items():
            for entityData in entityDataList:
                dataDescriptors = entityData.dataDescriptors
                if not self.dataTableRowHeaders:
                    self._setRowHeaders(dataDescriptors)
                elif len(self.dataTableRowHeaders) != len(dataDescriptors):
                    logging.debug(
                        "Different number of time points for two Species. Last Species (%s) will be skipped."
                        % entity)
                    continue

                # set header for first column (dataDescriptor/Timepoint col)
                # in first iteration
                if len(self.dataTableHeaders) == 0:
                    dataDescriptorName = entityData.dataDescriptorName
                    dataDescriptorUnit = entityData.dataDescriptorUnit
                    if not dataDescriptorUnit and "timepoint" in str(
                            dataDescriptorName).lower():
                        dataDescriptorUnit = self.host.optionTimeUnit
                    firstColHeader = ""
                    if dataDescriptorName:
                        if self.showUnits:
                            firstColHeader = "%s [%s]" % (dataDescriptorName,
                                                          dataDescriptorUnit)
                        elif dataDescriptorName:
                            firstColHeader = "%s" % dataDescriptorName
                    self.dataTableHeaders.append(firstColHeader)

                #self.dataTableHeaders.append("Time species %s [%s]" % (str(speciesID), self.lineEditTimeUnit.text()))
                #self.dataTableColumnData.append(timepoints)
                if len(dataDescriptors) > self.dataTableRowCount:
                    self.dataTableRowCount = len(dataDescriptors)

                #datapoints = entityData.datapoints
                datapoints = []

                # shorten datapoints
                for i, datapoint in enumerate(entityData.datapoints):
                    try:
                        #datapoints.append(round(float(datapoint), 4))
                        #                        valueString = "%g" % (float(datapoint))
                        floatValue = float(
                            datapoint)  # will jump to except if no float
                        valueString = "N/A" if math.isnan(
                            floatValue) else ' {0:-.4f}'.format(floatValue)
                        datapoints.append(valueString)

                        # preparing color computation
                        #                        logging.debug(entityData.dataDescriptorName)
                        #                        logging.debug(entityData.dataDescriptors[i] == settingsandvalues.SUBCONDITION_HEADER_ABSOLUTE)
                        if self._mode == MODE_SUBCONDITIONS\
                           and entityData.dataDescriptors[i] == settingsandvalues.SUBCONDITION_HEADER_ABSOLUTE\
                           and floatValue > self.maxValue\
                        and floatValue < self.colorThreshold:
                            self.maxValue = floatValue

                    except:
                        #                        datapoints.append(round(float("nan"), 4))
                        datapoints.append(str(datapoint))

                        #                logging.debug("TableWidgetController - datapoints: %s" % datapoints)   # too much overhead
                        #self.dataTableHeaders.append("Data species %s [%s]" % (str(speciesID), entityData.getUnit()))
                if self.showUnits:
                    #                    if type(entity) == str:
                    #                        self.dataTableHeaders.append("%s" % entity)
                    #                    else:
                    self.dataTableHeaders.append(
                        "%s [%s]" %
                        (entity.getCombinedId(), entityData.getUnit()))
                else:
                    self.dataTableHeaders.append("%s" % entity.getCombinedId())
                self.dataTableColumnData.append(datapoints)
            #                if len(datapoints) > self.dataTableRowCount:
            #                    self.dataTableRowCount = len(datapoints)

        # Put those labels into the actual data that would be the vertical/row labels.
        # We can't use .setVerticalHeaderLabers() because those labels don't get sorted together with the data.
        # Very weird but that seems to be the intended behaviour of Qt.
        if self.orientation == ORIENTATION_VERTICAL:
            #self.dataTableColumnData.insert(0, self.dataTableHeaders) # handle as if it were data so that sorting works

            self.dataTableHeaders = self.dataTableHeaders[
                1:]  # remove unnecessary dataDescriptor name
            for i in xrange(len(self.dataTableColumnData)):
                entry = self.dataTableColumnData[i]
                entry.insert(0, self.dataTableHeaders[i])
            self.dataTableRowHeaders.insert(0, "")
        else:
            self.dataTableColumnData.insert(0, self.dataTableRowHeaders)
            #self.dataTableHeaders.insert(0,"")

        if not self.dataTableWidget:  # create for the first time
            tableLayout = QVBoxLayout(self.tableWrapper)
            self.dataTableWidget = QTableWidget(self)
            tableLayout.addWidget(self.dataTableWidget)

        #prepare table
        self.dataTableWidget.setSortingEnabled(
            True
        )  # do here to avoid performance penalty (this actually does one sorting run)
        if self.orientation == ORIENTATION_HORIZONTAL:
            self.dataTableWidget.setColumnCount(len(self.dataTableHeaders))
            self.dataTableWidget.setRowCount(self.dataTableRowCount)
            self.dataTableWidget.setHorizontalHeaderLabels(
                self.dataTableHeaders)
        #            self.dataTableWidget.setVerticalHeaderLabels(
        #                self.dataTableRowHeaders)  # has to be called after setRowCount?
        elif self.orientation == ORIENTATION_VERTICAL:
            self.dataTableWidget.setRowCount(len(self.dataTableHeaders))
            self.dataTableWidget.setColumnCount(len(self.dataTableRowHeaders))
            #            self.dataTableWidget.setVerticalHeaderLabels(self.dataTableHeaders)
            self.dataTableWidget.setHorizontalHeaderLabels(
                self.dataTableRowHeaders
            )  # has to be called after setRowCount?

        #put data into table
        for col in xrange(len(self.dataTableColumnData)):
            for row in xrange(len(self.dataTableColumnData[col])):
                try:
                    value = self.dataTableColumnData[col][
                        row]  # don't touch "values"; they could be pre-formatted strings
                    newItem = SortedTableWidgetItem()  # use custom item class
                    newItem.setData(Qt.DisplayRole, value)
                    newItem.setTextAlignment(Qt.AlignRight)
                    newItem.setFont(QFont("Fixed"))
                    if self.isColored:
                        if not (self._mode == MODE_SUBCONDITIONS and row != 2
                                ):  #color only row 2 of subcondition tables
                            color = self._computeColor(value)
                            if color:
                                newItem.setBackground(QBrush(color))
                except Exception, e:
                    logging.debug(
                        "TableWidgetController._updateDataTable(): Could not put value into widget item: %s\nError: %s"
                        % (value, e))
                #                    newItem = SortedTableWidgetItem(str(self.dataTableColumnData[col][row]))
                #                    newItem.setTextAlignment(Qt.AlignRight)
                #                    newItem.setFont(QFont("Fixed"))
                if self.orientation == ORIENTATION_HORIZONTAL:
                    self.dataTableWidget.setItem(row, col, newItem)
                elif self.orientation == ORIENTATION_VERTICAL:
                    self.dataTableWidget.setItem(col, row, newItem)
Esempio n. 26
0
    def __init__(self):

        url = QLineEdit()
        quality = QLineEdit()
        urlLabel = QLabel('Url')
        qualityLabel = QLabel('Quality')
        messages = QTextEdit()
        messagesLabel = QLabel('Messages')
        links = QTableWidget(0, 2)
        linksLabel = QLabel('Links')
        clearMessages = QPushButton('Clear Messages')
        checkIfOnline = QPushButton('Check If Online')
        addSelectedLink = QPushButton('Add Link')
        removeSelectedLink = QPushButton('Remove Selected Link')

        messages.setReadOnly(True)

        links.setHorizontalHeaderLabels(['Url', 'Status'])
        links.horizontalHeader().setResizeMode(QHeaderView.Stretch)
        links.horizontalHeader().setResizeMode(1, QHeaderView.Fixed)

        # set the events

        url.returnPressed.connect(self.select_stream_from_entry)
        quality.returnPressed.connect(self.select_stream_from_entry)
        links.itemDoubleClicked.connect(self.select_stream_from_link)
        clearMessages.clicked.connect(self.clear_messages)
        checkIfOnline.clicked.connect(self.check_if_online)
        addSelectedLink.clicked.connect(self.add_selected_link)
        removeSelectedLink.clicked.connect(self.remove_selected_link)

        #set shortcut
        checkIfOnline.setShortcut(QKeySequence(Qt.Key_F5))

        # set the layouts

        mainLayout = QGridLayout()

        # first row
        mainLayout.addWidget(urlLabel, 0, 0, 1, 1)  # spans 1 column
        mainLayout.addWidget(qualityLabel, 0, 1, 1, 1)  # spans 1 column
        mainLayout.addWidget(linksLabel, 0, 2, 1, 3)  # spans 3 columns

        # second row  (links widget occupies 2 rows and 2 columns)
        mainLayout.addWidget(url, 1, 0, 1, 1)  # spans 1 column
        mainLayout.addWidget(quality, 1, 1, 1, 1)  # spans 1 column
        mainLayout.addWidget(links, 1, 2, 2, 3)  # spans 3 columns

        # third row (messages widget occupies 2 columns)
        mainLayout.addWidget(messages, 2, 0, 1, 2)

        # fourth row
        mainLayout.addWidget(messagesLabel, 3, 0)
        mainLayout.addWidget(clearMessages, 3, 1)
        mainLayout.addWidget(checkIfOnline, 3, 2)
        mainLayout.addWidget(addSelectedLink, 3, 3)
        mainLayout.addWidget(removeSelectedLink, 3, 4)

        window = QWidget()

        window.setLayout(mainLayout)
        window.setWindowTitle('Live Streamer')
        window.resize(700, 350)
        window.show()

        self.url_ui = url
        self.quality_ui = quality
        self.messages_ui = messages
        self.links_ui = links
        self.window_ui = window

        self.links = set()

        self.data_file = os.path.join(os.path.expanduser("~"), ".config",
                                      "livestreamer-ui", "data.txt")
        folder = os.path.dirname(self.data_file)
        if not os.path.exists(folder):
            os.makedirs(folder)