示例#1
0
 def update_args_filter(self, row: int):
     txt = self.tableWidget.item(row, 0).text()
     args_str = "; ".join([f"{arg}={value}" for arg, value in self.func_dict[txt].items()])
     self.tableWidget.setItem(row, 1, QTableWidgetItem(args_str))
    def buscarB(self):
        print('funciona')

        for i in range(len(self.l)):
            for j in range(len(self.l[0])):
                self.table.setItem(i, j, QTableWidgetItem(str(self.l[i][j])))
示例#3
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(366, 520)
        MainWindow.setAttribute(Qt.WA_TranslucentBackground)
        MainWindow.setWindowFlag(Qt.FramelessWindowHint)
        MainWindow.setMaximumSize(QSize(420, 600))
        MainWindow.setStyleSheet("")
        self.Ventana = QWidget(MainWindow)
        self.Ventana.setMaximumSize(QSize(500, 600))
        self.Ventana.setStyleSheet("*{\n"
"    font-family:  century gothic;\n"
"\n"
"}\n"
"QSizeGrip{\n"
"background:transparent;\n"
"}\n"
"\n"
"QWidget#Ventana{\n"
"    background: transparent;\n"
"    border: none;\n"
"}\n"
"QLabel{\n"
"    color:white;\n"
"}\n"
"\n"
"")
        self.Ventana.setObjectName("Ventana")
        self.horizontalLayout = QHBoxLayout(self.Ventana)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setSpacing(0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.VentanaFrame = QFrame(self.Ventana)
        self.VentanaFrame.setStyleSheet("QFrame#VentanaFrame{\n"
" background-color: qlineargradient(spread:pad, x1:0.953, y1:1, x2:1, y2:0, stop:0 #075E54, stop:1 #128C7E); \n"
"    border-radius:5px;\n"
"}\n"
"")
        self.VentanaFrame.setFrameShape(QFrame.StyledPanel)
        self.VentanaFrame.setFrameShadow(QFrame.Raised)
        self.VentanaFrame.setObjectName("VentanaFrame")
        self.gridLayout_2 = QGridLayout(self.VentanaFrame)
        self.gridLayout_2.setContentsMargins(10, 15, 15, 5)
        self.gridLayout_2.setSpacing(0)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.Contenedor =  QFrame(self.VentanaFrame)
        self.Contenedor.setStyleSheet("QFrame#Contenedor{\n"
"     background-color: #128c7e;\n"
"        border-radius:20px;\n"
"}")
        self.Contenedor.setFrameShape(QFrame.StyledPanel)
        self.Contenedor.setFrameShadow(QFrame.Raised)
        self.Contenedor.setObjectName("Contenedor")
        self.gridLayout = QGridLayout(self.Contenedor)
        self.gridLayout.setObjectName("gridLayout")
        self.frameAcciones = QFrame(self.Contenedor)
        sizePolicy =QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frameAcciones.sizePolicy().hasHeightForWidth())
        self.frameAcciones.setSizePolicy(sizePolicy)
        self.frameAcciones.setStyleSheet("QFrame#frameAcciones{\n"
"    border:none;\n"
"}\n"
"QPushButton#btn_abrir{\n"
"    background-color: #ECF0F1;\n"
"    border-radius: 5px;\n"
"    color: #000;\n"
"}\n"
"\n"
"QPushButton#btn_abrir:hover{\n"
"    background-color: #BDC3C7;\n"
"    color: #000;\n"
"}")
        self.frameAcciones.setFrameShape(QFrame.StyledPanel)
        self.frameAcciones.setFrameShadow(QFrame.Raised)
        self.frameAcciones.setObjectName("frameAcciones")
        self.gridLayout_4 = QGridLayout(self.frameAcciones)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.btn_exportar = QPushButton(self.frameAcciones)
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.btn_exportar.sizePolicy().hasHeightForWidth())
        self.btn_exportar.setSizePolicy(sizePolicy)
        self.btn_exportar.setMinimumSize(QSize(100, 30))
        self.btn_exportar.setCursor(QCursor(Qt.PointingHandCursor))
        self.btn_exportar.setStyleSheet("QPushButton#btn_exportar{\n"
"    background-color: #ECF0F1;\n"
"    border-radius: 5px;\n"
"    color: #000;\n"
"}\n"
"\n"
"QPushButton#btn_exportar:hover{\n"
"    background-color: #BDC3C7;\n"
"    color: #000;\n"
"}")
        icon = QIcon()
        icon.addPixmap(QPixmap("Images/exportar.png"), QIcon.Normal, QIcon.Off)
        self.btn_exportar.setIcon(icon)
        self.btn_exportar.setObjectName("btn_exportar")
        self.gridLayout_4.addWidget(self.btn_exportar, 0, 2, 1, 1)
        self.btn_abrir = QPushButton(self.frameAcciones)
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.btn_abrir.sizePolicy().hasHeightForWidth())
        self.btn_abrir.setSizePolicy(sizePolicy)
        self.btn_abrir.setMinimumSize(QSize(100, 30))
        self.btn_abrir.setCursor(QCursor(Qt.PointingHandCursor))
        icon1 = QIcon()
        icon1.addPixmap(QPixmap("Images/anadir.png"), QIcon.Normal, QIcon.Off)
        self.btn_abrir.setIcon(icon1)
        self.btn_abrir.setObjectName("btn_abrir")
        self.gridLayout_4.addWidget(self.btn_abrir, 0, 1, 1, 1)
        spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.gridLayout_4.addItem(spacerItem, 0, 0, 1, 1)
        spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.gridLayout_4.addItem(spacerItem1, 0, 3, 1, 1)
        self.gridLayout.addWidget(self.frameAcciones, 2, 0, 1, 1)
        self.header = QFrame(self.Contenedor)
        sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.header.sizePolicy().hasHeightForWidth())
        self.header.setSizePolicy(sizePolicy)
        self.header.setStyleSheet("QFrame{\n"
" border: none;\n"
"}")
        self.header.setFrameShape(QFrame.StyledPanel)
        self.header.setFrameShadow(QFrame.Raised)
        self.header.setObjectName("header")
        self.boxFlags = QHBoxLayout(self.header)
        self.boxFlags.setContentsMargins(5, 0, 0, 5)
        self.boxFlags.setSpacing(5)
        self.boxFlags.setObjectName("boxFlags")
        self.btn_rojo = QPushButton(self.header)
        self.btn_rojo.setMaximumSize(QSize(16, 16))
        self.btn_rojo.setCursor(QCursor(Qt.PointingHandCursor))
        self.btn_rojo.setStyleSheet("QPushButton#btn_rojo{\n"
"border-radius: 8px;\n"
"background-color: red;\n"
"}\n"
"QPushButton#btn_rojo:hover{\n"
"border-radius: 8px;\n"
"background-color: #b60600;\n"
"}")
        self.btn_rojo.setText("")
        self.btn_rojo.setObjectName("btn_rojo")
        self.boxFlags.addWidget(self.btn_rojo)
        self.btn_verde = QPushButton(self.header)
        self.btn_verde.setMaximumSize(QSize(16, 16))
        self.btn_verde.setCursor(QCursor(Qt.PointingHandCursor))
        self.btn_verde.setStyleSheet("QPushButton#btn_verde{\n"
"border-radius: 8px;\n"
"background-color: #27ae60;\n"
"}\n"
"QPushButton#btn_verde:hover{\n"
"border-radius: 8px;\n"
"background-color: #7efc00;\n"
"}")
        self.btn_verde.setText("")
        self.btn_verde.setObjectName("btn_verde")
        self.boxFlags.addWidget(self.btn_verde)
        self.btn_amarillo = QPushButton(self.header)
        self.btn_amarillo.setMaximumSize(QSize(16, 16))
        self.btn_amarillo.setCursor(QCursor(Qt.PointingHandCursor))
        self.btn_amarillo.setStyleSheet("QPushButton#btn_amarillo{\n"
"border-radius: 8px;\n"
"background-color: yellow;\n"
"}\n"
"QPushButton#btn_amarillo:hover{\n"
"border-radius: 8px;\n"
"background-color: #f1c40f;\n"
"}")
        self.btn_amarillo.setText("")
        self.btn_amarillo.setObjectName("btn_amarillo")
        self.boxFlags.addWidget(self.btn_amarillo)
        spacerItem2 = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.boxFlags.addItem(spacerItem2)
        self.gridLayout.addWidget(self.header, 0, 0, 1, 1)
        self.frameLogo = QFrame(self.Contenedor)
        self.frameLogo.setStyleSheet("QFrame#frameLogo{\n"
"    border:none;\n"
"}\n"
"")
        self.frameLogo.setFrameShape(QFrame.StyledPanel)
        self.frameLogo.setFrameShadow(QFrame.Raised)
        self.frameLogo.setObjectName("frameLogo")
        self.gridLayout_3 = QGridLayout(self.frameLogo)
        self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_3.setSpacing(0)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.icon = QLabel(self.frameLogo)
        self.icon.setStyleSheet("")
        self.icon.setText("")
        self.icon.setPixmap(QPixmap("Images/whatsapp.png"))
        self.icon.setAlignment(Qt.AlignCenter)
        self.icon.setObjectName("icon")
        self.gridLayout_3.addWidget(self.icon, 0, 0, 1, 1)
        self.lblText = QLabel(self.frameLogo)
        font = QFont()
        font.setFamily("century gothic")
        font.setBold(True)
        font.setWeight(75)
        self.lblText.setFont(font)
        self.lblText.setStyleSheet("")
        self.lblText.setAlignment(Qt.AlignCenter)
        self.lblText.setObjectName("lblText")
        self.gridLayout_3.addWidget(self.lblText, 1, 0, 1, 1)
        self.gridLayout.addWidget(self.frameLogo, 1, 0, 1, 1)
        self.label = QLabel(self.Contenedor)
        font = QFont()
        font.setFamily("century gothic")
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setAlignment(Qt.AlignCenter)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 4, 0, 1, 1)
        self.frame_tabla = QFrame(self.Contenedor)
        sizePolicy = QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.frame_tabla.sizePolicy().hasHeightForWidth())
        self.frame_tabla.setSizePolicy(sizePolicy)
        self.frame_tabla.setStyleSheet("QFrame#frame_tabla{\n"
"    border:none;\n"
"}")
        self.frame_tabla.setFrameShape(QFrame.StyledPanel)
        self.frame_tabla.setFrameShadow(QFrame.Raised)
        self.frame_tabla.setObjectName("frame_tabla")
        self.horizontalLayout_2 = QHBoxLayout(self.frame_tabla)
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2.setSpacing(9)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        spacerItem3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem3)
        self.tabla = QTableWidget(self.frame_tabla)
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.tabla.sizePolicy().hasHeightForWidth())
        self.tabla.setSizePolicy(sizePolicy)
        self.tabla.setMinimumSize(QSize(250, 0))
        self.tabla.setStyleSheet("*{\n"
"color: #000;\n"
"}\n"
"QTableWidget#tabla:item{\n"
"    color: blue;\n"
"    font-family: bold;\n"
"}\n"
"\n"
"QTableWidget#tabla{\n"
"    border-radius:4px;\n"
"    background-color: #128c7e;\n"
"}\n"
"QScrollBar:vertical{\n"
"    border: 1px solid #999999;\n"
"    width: 12px;\n"
"    margin: 0px 0px 0px 0px;\n"
"}\n"
"QScrollBar::handle:vertical{\n"
"    min-height: 0px;\n"
"    border: 0px solid red;\n"
"    border-radius: 4px;\n"
"    background-color: #3a727f;\n"
"}    \n"
"QScrollBar::add-line:vertical{\n"
"    height: 0px;\n"
"    subcontrol-position: bottom;\n"
"    subcontrol-origin: margin;\n"
"}\n"
"QScrollBar::sub-line:vertical{\n"
"    height:0px;\n"
"    subcontrol-position:top;\n"
"    sucontrol-origin:margin;\n"
"}\n"
"QTableWidget:item:selected{\n"
"background : #08a785;\n"
"}\n"
"QTableCornerButton:section{\n"
"background-color: #00aa7f;\n"
"}\n"
"QHeaderView:section{\n"
"background-color: #00aa7f;\n"
"}\n"
"\n"
"")
        self.tabla.setRowCount(10)
        self.tabla.setObjectName("tabla")
        self.tabla.setColumnCount(2)
        item = QTableWidgetItem()
        self.tabla.setHorizontalHeaderItem(0, item)
        item = QTableWidgetItem()
        self.tabla.setHorizontalHeaderItem(1, item)
        self.horizontalLayout_2.addWidget(self.tabla)
        spacerItem4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem4)
        self.gridLayout.addWidget(self.frame_tabla, 3, 0, 1, 1)
        self.gridLayout_2.addWidget(self.Contenedor, 0, 1, 1, 1)
        self.Grip = QLabel(self.VentanaFrame)
        self.Grip.setMaximumSize(QSize(10, 10))
        self.Grip.setCursor(QCursor(Qt.SizeFDiagCursor))
        self.Grip.setLayoutDirection(Qt.RightToLeft)
        self.Grip.setStyleSheet("QLabel#Grip:hover{\n"
"    background: rgb(18,140,126);\n"
"    border-radius:5px;\n"
"}\n"
"QLabel#Grip{\n"
" background-color: qlineargradient(spread:pad, x1:0.953, y1:1, x2:1, y2:0, stop:0 #075E54, stop:1 #128C7E); \n"
"    border-radius:5px;\n"
"}")
        self.Grip.setText("")
        self.Grip.setObjectName("Grip")
        self.gridLayout_2.addWidget(self.Grip, 1, 1, 1, 1)
        self.horizontalLayout.addWidget(self.VentanaFrame)
        MainWindow.setCentralWidget(self.Ventana)

        self.retranslateUi(MainWindow)
        QMetaObject.connectSlotsByName(MainWindow)
示例#4
0
 def ToggleActiveRow(self, row, value="Playing"):
     ''' Toggle Active row manager video status '''
     self.VManager.setItem(
         row, 2,
         QTableWidgetItem(QCoreApplication.translate("ManagerDock", value)))
     return
示例#5
0
def populate_table(table, cols, vals, callback=None):
    """
    populates table with data in cols, vals

    converts numerical strings to numerical to make sorting word as expected
    table is a QTableWidget
    """

    N = len(vals)
    M = len(cols)

    clear_table(table)

    table.setRowCount(N)
    table.setColumnCount(M)

    for i, row in enumerate(vals):
        for j, col in enumerate(cols):

            val = vals[i][j]

            # if the value is a representation of null or empty str / just whitespace
            # display string [EMPTY] here, since it is needed in the update table at least
            if val != '[EMPTY]' and (is_null(val) or (isinstance(val, str)
                                                      and not val.strip())):
                continue

            if isinstance(val, datetime.datetime):

                # format 17-03-20 18:44:15
                val_str = val.strftime('%d-%m-%Y %H:%M:%S')

                # use int timestamp for sorting
                val = val.timestamp()

            elif isinstance(val, datetime.timedelta):

                val_str = str(val)
                val = val.total_seconds()

            else:
                val = convert_to_numeric(val)
                val_str = str(val)

            # QTableWidgetItem only accepts string values
            # the default implementation only sorts according to string values
            # SortableTableItem displays the first value,
            # and uses the second one for sorting
            item = SortableTableItem(val_str, val)

            table.setItem(i, j, item)

        # callback for each row
        if callback:
            callback(100 * i / (N * 1.1))

    # set the column header names
    for j, col in enumerate(cols):

        if callback:
            callback(97 - 5 * (1 - (j / M)))

        item = QTableWidgetItem(col)
        table.setHorizontalHeaderItem(j, item)

    if callback:
        callback(98)
    table.resizeColumnsToContents()

    if callback:
        callback(99)

    table.resizeRowsToContents()

    if callback:
        callback(100)
示例#6
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1227, 858)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.tableWidget_dropzone = QtWidgets.QTableWidget(self.centralwidget)
        self.tableWidget_dropzone.setMinimumSize(QtCore.QSize(602, 295))
        self.tableWidget_dropzone.setMaximumSize(QtCore.QSize(602, 295))
        self.tableWidget_dropzone.setObjectName("tableWidget_dropzone")
        self.tableWidget_dropzone.setColumnCount(3)
        self.tableWidget_dropzone.setRowCount(9)
        self.tableWidget_dropzone.setAcceptDrops(True)
        self.tableWidget_dropzone.setColumnWidth(0, 192)
        self.tableWidget_dropzone.setColumnWidth(1, 192)
        self.tableWidget_dropzone.setColumnWidth(2, 192)
        self.tableWidget_dropzone.setHorizontalHeaderLabels(['A1', 'A2', 'A3'])
        self.tableWidget_dropzone.setVerticalHeaderLabels(
            ['', 'R1', 'R2', 'R3', 'R4', 'R5', 'R6', 'R7', 'R8'])

        dpath = 'C:/'

        comboBox1 = DataCombo(dpath)
        comboBox2 = QtWidgets.QComboBox()
        comboBox3 = QtWidgets.QComboBox()

        self.tableWidget_dropzone.setCellWidget(0, 0, comboBox1)
        self.tableWidget_dropzone.setCellWidget(0, 1, comboBox2)
        self.tableWidget_dropzone.setCellWidget(0, 2, comboBox3)

        self.verticalLayout_2.addWidget(self.tableWidget_dropzone)
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setObjectName("label_2")
        self.verticalLayout_2.addWidget(self.label_2)
        self.textEdit_comment = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit_comment.setMinimumSize(QtCore.QSize(602, 0))
        self.textEdit_comment.setMaximumSize(QtCore.QSize(602, 16777215))
        self.textEdit_comment.setObjectName("textEdit_comment")
        self.verticalLayout_2.addWidget(self.textEdit_comment)
        self.horizontalLayout.addLayout(self.verticalLayout_2)
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setObjectName("label")
        self.verticalLayout_3.addWidget(self.label)
        self.comboBox = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox.setMinimumSize(QtCore.QSize(400, 0))
        self.comboBox.setObjectName("comboBox")
        self.verticalLayout_3.addWidget(self.comboBox)
        self.tableWidget_XLS = QtWidgets.QTableWidget(self.centralwidget)
        self.tableWidget_XLS.setObjectName("tableWidget_XLS")
        self.tableWidget_XLS.setColumnCount(30)
        self.tableWidget_XLS.setRowCount(100)

        self.check_change = False
        book = xlrd.open_workbook("C:/Users/parla/Documents/test.xls", 'r')
        sheet = book.sheet_by_index(0)
        self.tableWidget_XLS.setColumnCount(sheet.ncols + 10)

        for row_index in range(0, sheet.nrows):
            #            print(row_index)
            #row = self.rowCount()
            #self.insertRow(row)
            for col_index in range(0, sheet.ncols):
                #                print(col_index)
                content = sheet.cell(row_index, col_index).value
                item = QTableWidgetItem(content)
                #                print(content)
                self.tableWidget_XLS.setItem(row_index, col_index, item)
                self.tableWidget_XLS.setDragEnabled(True)
                #self.setAcceptDrops(True)
        self.check_change = True

        self.verticalLayout_3.addWidget(self.tableWidget_XLS)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_5.setObjectName("pushButton_5")
        self.horizontalLayout_2.addWidget(self.pushButton_5)
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setObjectName("pushButton_2")
        self.horizontalLayout_2.addWidget(self.pushButton_2)
        self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_4.setObjectName("pushButton_4")
        self.horizontalLayout_2.addWidget(self.pushButton_4)
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout_2.addWidget(self.pushButton)
        self.verticalLayout_3.addLayout(self.horizontalLayout_2)
        self.horizontalLayout.addLayout(self.verticalLayout_3)
        self.tableWidget_dropzone.raise_()
        self.comboBox.raise_()
        self.label.raise_()
        self.comboBox.raise_()
        self.textEdit_comment.raise_()
        self.pushButton.raise_()
        self.label_2.raise_()
        self.pushButton_4.raise_()
        self.pushButton_5.raise_()
        self.pushButton_2.raise_()
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1227, 21))
        self.menubar.setObjectName("menubar")
        self.menuFile = QtWidgets.QMenu(self.menubar)
        self.menuFile.setObjectName("menuFile")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.actionPreferences = QtWidgets.QAction(MainWindow)
        self.actionPreferences.setObjectName("actionPreferences")
        self.menuFile.addAction(self.actionPreferences)
        self.menubar.addAction(self.menuFile.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
示例#7
0
    def initial_TableWidget(self, list, style):
        self.tableWidget.clearContents()
        self.tableWidget.setRowCount(len(list))
        self.tableWidget.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)  #所有列自动拉伸,充满界面
        self.tableWidget.resizeColumnsToContents()  #设置列宽高按照内容自适应
        self.tableWidget.resizeRowsToContents()  #设置行宽和高按照内容自适应
        self.tableWidget.setSelectionMode(
            QAbstractItemView.SingleSelection)  # 设置只能选中一行
        self.tableWidget.setEditTriggers(QTableView.NoEditTriggers)  # 不可编辑
        self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)
        # 设置只有行选中, 整行选中

        if (style == 1):
            self.tableWidget.setColumnCount(6)
            self.tableWidget.setHorizontalHeaderLabels(
                ['任务简述', '创建时间', '计划完成时间', '实际完成时间', '状态', '备注'])
            #index = 0
            for index in range(len(list)):
                aTask = list[index]
                col = 0
                newItem = QTableWidgetItem(str(aTask.name))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aTask.date_created.datetime))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aTask.date_planed.datetime))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aTask.date_closed.datetime))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aTask.status))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aTask.note))
                self.tableWidget.setItem(index, col, newItem)
        elif (style == 2):
            self.tableWidget.setColumnCount(12)
            self.tableWidget.setHorizontalHeaderLabels([
                '项目', '阶段', '序号', '业务流内容简述', '输入', '输出', '负责人', 'Milestone',
                '计划完成时间', '实际完成时间', '状态', '备注'
            ])
            for index in range(len(list)):
                aWorkFlowItem = list[index]
                col = 0
                newItem = QTableWidgetItem(str(aWorkFlowItem.project))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.phase))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.index))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.name))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.imput))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.output))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.responsible))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.milestone))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.date_planed))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.date_closed))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.status))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aWorkFlowItem.note))
                self.tableWidget.setItem(index, col, newItem)
        elif (style == 3):
            self.tableWidget.setColumnCount(8)
            self.tableWidget.setHorizontalHeaderLabels(
                ['项目', 'G9', 'G8', 'G7', 'G6', 'G5', 'G4', 'G1'])
            for index in range(len(list)):
                aMainMileStone = list[index]
                col = 0
                newItem = QTableWidgetItem(str(aMainMileStone.project))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G9.date))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G8.date))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G7.date))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G6.date))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G5.date))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G4.date))
                self.tableWidget.setItem(index, col, newItem)
                '''
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G3.date))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G2.date))
                self.tableWidget.setItem(index, col, newItem)'''
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G1.date))
                self.tableWidget.setItem(index, col, newItem)
                '''
                col += 1
                newItem = QTableWidgetItem(str(aMainMileStone.G0.date))
                self.tableWidget.setItem(index, col, newItem)'''
        elif (style == 4):
            self.tableWidget.setColumnCount(6)
            self.tableWidget.setHorizontalHeaderLabels(
                ['项目', '数据&状态', '计划发布时间', '实际发布时间', '状态', '备注'])
            for index in range(len(list)):
                aDataReleasePlanItem = list[index]
                col = 0
                newItem = QTableWidgetItem(str(aDataReleasePlanItem.project))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aDataReleasePlanItem.name))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(
                    str(aDataReleasePlanItem.date_planed))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aDataReleasePlanItem.date_real))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aDataReleasePlanItem.status))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aDataReleasePlanItem.note))
                self.tableWidget.setItem(index, col, newItem)
        elif (style == 5):
            self.tableWidget.setColumnCount(13)
            self.tableWidget.setHorizontalHeaderLabels([
                '项目', '问题序号', '问题描述', '建议措施', '问题进展', '状态', 'TOP', '干系人',
                '创建时间', '计划关闭时间', '跟踪时间', '实际关闭时间', '专业区域'
            ])
            for index in range(len(list)):
                aSEProblem = list[index]
                col = 0
                newItem = QTableWidgetItem(str(aSEProblem.project))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aSEProblem.index))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aSEProblem.brief_and_reason))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aSEProblem.suggestion))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aSEProblem.detail_and_progress))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aSEProblem.status))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aSEProblem.top))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aSEProblem.stakeholder))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(
                    str(aSEProblem.date_created.datetime))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(
                    aSEProblem.date_planed.datetime))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(
                    str(aSEProblem.date_followed.datetime))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(
                    aSEProblem.date_closed.datetime))
                self.tableWidget.setItem(index, col, newItem)
                col += 1
                newItem = QTableWidgetItem(str(aSEProblem.area_division))
                self.tableWidget.setItem(index, col, newItem)
        else:
            QMessageBox.information(None, '消息', '非法的Table类型!',
                                    QMessageBox.Yes | QMessageBox.No)
示例#8
0
    def __init__(self):
        super().__init__()

        self.setWindowTitle('spectralUI')
        self.setMinimumSize(800, 600)

        # ---------------Menubar----------------

        self.main_menu = self.menuBar()
        self.main_menu.setNativeMenuBar(False)

        self.file_menu = self.main_menu.addMenu("File")
        self.settings_menu = self.main_menu.addMenu("Settings")
        self.help_menu = self.main_menu.addMenu("Help")

        self.open_action = QAction("Open", self)
        self.exit_action = QAction("Exit", self)
        self.settings_action = QAction("Settings", self)
        self.help_action = QAction("Help", self)
        self.about_action = QAction("About", self)

        self.open_action.setShortcut("Ctrl+O")
        self.exit_action.setShortcut("Ctrl+Q")
        self.settings_action.setShortcut("Ctrl+P")
        self.help_action.setShortcut("Ctrl+H")
        self.about_action.setShortcut("Ctrl+A")

        self.file_menu.addAction(self.open_action)
        self.file_menu.addAction(self.exit_action)
        self.settings_menu.addAction(self.settings_action)
        self.help_menu.addAction(self.help_action)
        self.help_menu.addAction(self.about_action)

        self.open_action.triggered.connect(self.open_file)
        self.exit_action.triggered.connect(self.close)

        # -------------------Main Layout-----------------

        self.main_widget = QWidget()
        self.setCentralWidget(self.main_widget)

        self.main_canvas = FigureCanvasQTAgg(Figure(figsize=(5, 3)))
        self.main_nav_toolbar = NavigationToolbar2QT(self.main_canvas,
                                                     self.main_widget)
        self.axes = self.main_canvas.figure.add_subplot()

        self.meta_data = QTableWidget()
        self.meta_data.setRowCount(9)
        self.meta_data.setColumnCount(2)
        self.meta_data.setEditTriggers(QTableWidget.NoEditTriggers)
        self.meta_data.setHorizontalHeaderItem(0, QTableWidgetItem("Property"))
        self.meta_data.setHorizontalHeaderItem(1, QTableWidgetItem("Value"))
        self.meta_data.setAlternatingRowColors(True)
        self.meta_data.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)

        self.meta_data.setItem(0, 0, QTableWidgetItem("Filename"))
        self.meta_data.setItem(1, 0, QTableWidgetItem("File Size"))
        self.meta_data.setItem(2, 0, QTableWidgetItem("Data"))
        self.meta_data.setItem(3, 0, QTableWidgetItem("Height"))
        self.meta_data.setItem(4, 0, QTableWidgetItem("Width"))
        self.meta_data.setItem(5, 0, QTableWidgetItem("No: of Bands"))
        self.meta_data.setItem(
            6, 0, QTableWidgetItem("Max. Intensity of Current Band"))
        self.meta_data.setItem(
            7, 0, QTableWidgetItem("Min. Intensity of Current Band"))
        self.meta_data.setItem(
            8, 0, QTableWidgetItem("Avg. Intensity of Current Band"))

        self.spectral_signature_canvas = FigureCanvasQTAgg(
            Figure(figsize=(5, 3)))
        self.spectral_axes = self.spectral_signature_canvas.figure.\
            add_subplot()
        self.spectral_nav_toolbar = NavigationToolbar2QT(
            self.spectral_signature_canvas, self.main_widget)

        self.vbox_layout = QVBoxLayout()
        self.vbox_layout_sub = QVBoxLayout()
        self.vbox_layout_spectral = QVBoxLayout()
        self.hbox_layout_sub = QHBoxLayout()
        self.hbox_layout_sub_sub = QHBoxLayout()

        self.label = QLabel("Choose Band ->")
        self.band_text = QLineEdit()
        self.button = QPushButton("Load Band")

        self.band_text.setEnabled(False)
        self.button.setEnabled(False)

        self.int_validator = QIntValidator()
        self.band_text.setValidator(self.int_validator)
        self.band_text.returnPressed.connect(self.load_new_band)
        self.button.clicked.connect(self.load_new_band)

        self.hbox_layout_sub_sub.addWidget(self.label)
        self.hbox_layout_sub_sub.addWidget(self.band_text)
        self.hbox_layout_sub_sub.addWidget(self.button)

        self.hbox_layout_sub.addWidget(self.main_nav_toolbar)
        self.hbox_layout_sub.addLayout(self.hbox_layout_sub_sub)

        self.vbox_layout_sub.addWidget(self.main_canvas)
        self.vbox_layout_sub.addLayout(self.hbox_layout_sub)

        self.vbox_layout_spectral.addWidget(self.spectral_signature_canvas)
        self.vbox_layout_spectral.addWidget(self.spectral_nav_toolbar)

        self.main_group_box = QGroupBox("Image Analysis Tool")
        self.main_group_box.setMinimumSize(400, 300)
        self.main_group_box.setLayout(self.vbox_layout_sub)

        self.meta_box_layout = QHBoxLayout()
        self.meta_box_layout.addWidget(self.meta_data)

        self.meta_group_box = QGroupBox("Metadata")
        self.meta_group_box.setLayout(self.meta_box_layout)

        self.spectral_group_box = QGroupBox("Spectral Signature")
        self.main_group_box.setMinimumSize(350, 300)
        self.spectral_group_box.setLayout(self.vbox_layout_spectral)

        self.splitter_top_horizontal = QSplitter(Qt.Horizontal)
        self.splitter_vertical = QSplitter(Qt.Vertical)

        self.splitter_top_horizontal.addWidget(self.main_group_box)
        self.splitter_top_horizontal.addWidget(self.meta_group_box)
        self.splitter_top_horizontal.setSizes([200, 200])

        self.splitter_vertical.addWidget(self.splitter_top_horizontal)
        self.splitter_vertical.addWidget(self.spectral_group_box)
        self.splitter_vertical.setSizes([200, 200])

        self.vbox_layout.addWidget(self.splitter_vertical)

        self.centralWidget().setLayout(self.vbox_layout)
 def __setData__(self):
     self.insertRow(0)
     item = QTableWidgetItem('일간합계')
     item.setFlags(Qt.ItemIsEditable)
     item.setTextAlignment(Qt.AlignCenter)
     self.setItem(0, 0, item)
示例#10
0
 def _append_str_row(self, fstr):
     row = self.rowCount()
     self.insertRow(row)
     self.setItem(row, 0, QTableWidgetItem(fstr))
示例#11
0
 def fill_row(self, row, data):
     for index, elem in enumerate(data):
         item = QTableWidgetItem(str(elem))
         self.table.setItem(row, index, item)
示例#12
0
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.setWindowTitle("application main window")

        self.file_menu = QtWidgets.QMenu('&File', self)
        self.file_menu.addAction('&Quit', self.fileQuit,
                                 QtCore.Qt.CTRL + QtCore.Qt.Key_Q)
        self.menuBar().addMenu(self.file_menu)

        self.help_menu = QtWidgets.QMenu('&Help', self)
        self.menuBar().addSeparator()
        self.menuBar().addMenu(self.help_menu)

        self.help_menu.addAction('&About', self.about)

        self.main_widget = QtWidgets.QWidget(self)

        l = QtWidgets.QVBoxLayout(self.main_widget)
        self.dc = MyDynamicMplCanvas(self.main_widget,
                                     width=5,
                                     height=4,
                                     dpi=100)
        l.addWidget(self.dc)

        self.main_widget.setFocus()
        self.setCentralWidget(self.main_widget)

        self.statusBar().showMessage("All hail matplotlib!", 2000)

        # LIST
        self.table = QTableWidget(6, 4)
        self.table.setFixedHeight(100)
        self.tableContent = {'subplot':['1','1','2','2','3','3'],
        'X subscriber':['/log/spectrum','/log/spectrum'\
                       ,'/log/spectrum','/log/spectrum'\
                       ,'/log/spectrum','/log/spectrum'
                      ],
        'Y subscriber':['/log/x_kspace_real','/log/x_kspace_imaginary'\
                      ,'/log/y_kspace_real','/log/y_kspace_imaginary'\
                      ,'/log/z_kspace_real','/log/z_kspace_imaginary'],
        'color':['b','r','b','r','b','r']}
        horHeaders = []
        for n, key in enumerate(
            ['subplot', 'X subscriber', 'Y subscriber', 'color']):
            horHeaders.append(key)
            for m, item in enumerate(self.tableContent[key]):
                newitem = QTableWidgetItem(item)
                self.table.setItem(m, n, newitem)
        self.table.setHorizontalHeaderLabels(horHeaders)

        # Buttons
        self.plot_button = QPushButton("start")
        self.isPlotting = False
        self.add_button = QPushButton("add")
        self.remove_button = QPushButton("remove")

        self.plot_button.clicked.connect(lambda: self.plotButtonCallback())
        self.add_button.clicked.connect(lambda: self.addButtonCallback())
        self.remove_button.clicked.connect(lambda: self.removeButtonCallback())

        l.addWidget(self.table)
        hbox = QHBoxLayout()
        hbox.addStretch(1)
        l.addLayout(hbox)
        hbox.addWidget(self.plot_button)
        hbox.addWidget(self.add_button)
        hbox.addWidget(self.remove_button)
示例#13
0
    def sel_color(self, s):
        global cards_data
        self.dict_curr_display.clear()
        if s == 0:
            self.ui.type_sel_card.clear()
            lens = len(self.all_cards)
            self.ui.sel_card_list.setRowCount(lens)
            i = -1
            for k, v in self.all_cards.items():
                i += 1
                self.ui.sel_card_list.setItem(i, 0, QTableWidgetItem(k))
                self.ui.sel_card_list.setItem(i, 1,
                                              QTableWidgetItem(v['NAME']))
                self.ui.sel_card_list.setItem(
                    i, 2, QTableWidgetItem(v['DESCRIPTION']))
        elif s == 1:
            self.ui.type_sel_card.clear()
            self.ui.type_sel_card.addItem('ALL')
            self.ui.type_sel_card.addItem('Attack')
            self.ui.type_sel_card.addItem('Skill')
            self.ui.type_sel_card.addItem('Power')
            for k, v in self.all_cards.items():
                if v.get('color') == 'red':
                    self.dict_curr_display[k] = v
            lens = len(self.dict_curr_display)
            self.ui.sel_card_list.setRowCount(lens)
            i = -1
            for k, v in self.dict_curr_display.items():
                i += 1
                self.ui.sel_card_list.setItem(i, 0, QTableWidgetItem(k))
                self.ui.sel_card_list.setItem(i, 1,
                                              QTableWidgetItem(v['NAME']))
                self.ui.sel_card_list.setItem(
                    i, 2, QTableWidgetItem(v['DESCRIPTION']))

        elif s == 2:
            self.ui.type_sel_card.clear()
            self.ui.type_sel_card.addItem('ALL')
            self.ui.type_sel_card.addItem('Attack')
            self.ui.type_sel_card.addItem('Skill')
            self.ui.type_sel_card.addItem('Power')
            for k, v in self.all_cards.items():
                if v.get('color') == 'blue':
                    self.dict_curr_display[k] = v
            lens = len(self.dict_curr_display)
            self.ui.sel_card_list.setRowCount(lens)
            i = -1
            for k, v in self.dict_curr_display.items():
                i += 1
                self.ui.sel_card_list.setItem(i, 0, QTableWidgetItem(k))
                self.ui.sel_card_list.setItem(i, 1,
                                              QTableWidgetItem(v['NAME']))
                self.ui.sel_card_list.setItem(
                    i, 2, QTableWidgetItem(v['DESCRIPTION']))

        elif s == 3:
            self.ui.type_sel_card.clear()
            self.ui.type_sel_card.addItem('ALL')
            self.ui.type_sel_card.addItem('Attack')
            self.ui.type_sel_card.addItem('Skill')
            self.ui.type_sel_card.addItem('Power')
            for k, v in self.all_cards.items():
                if v.get('color') == 'green':
                    self.dict_curr_display[k] = v
            lens = len(self.dict_curr_display)
            self.ui.sel_card_list.setRowCount(lens)
            i = -1
            for k, v in self.dict_curr_display.items():
                i += 1
                self.ui.sel_card_list.setItem(i, 0, QTableWidgetItem(k))
                self.ui.sel_card_list.setItem(i, 1,
                                              QTableWidgetItem(v['NAME']))
                self.ui.sel_card_list.setItem(
                    i, 2, QTableWidgetItem(v['DESCRIPTION']))

        elif s == 4:
            self.ui.type_sel_card.clear()
            self.ui.type_sel_card.addItem('ALL')
            self.ui.type_sel_card.addItem('Attack')
            self.ui.type_sel_card.addItem('Skill')
            self.ui.type_sel_card.addItem('Power')
            for k, v in self.all_cards.items():
                if v.get('color') == 'colorless':
                    self.dict_curr_display[k] = v
            lens = len(self.dict_curr_display)
            self.ui.sel_card_list.setRowCount(lens)
            i = -1
            for k, v in self.dict_curr_display.items():
                i += 1
                self.ui.sel_card_list.setItem(i, 0, QTableWidgetItem(k))
                self.ui.sel_card_list.setItem(i, 1,
                                              QTableWidgetItem(v['NAME']))
                self.ui.sel_card_list.setItem(
                    i, 2, QTableWidgetItem(v['DESCRIPTION']))

        else:
            self.ui.type_sel_card.clear()
            for k, v in self.all_cards.items():
                if v.get('color') == 'curse':
                    self.dict_curr_display[k] = v
            lens = len(self.dict_curr_display)
            self.ui.sel_card_list.setRowCount(lens)
            i = -1
            for k, v in self.dict_curr_display.items():
                i += 1
                self.ui.sel_card_list.setItem(i, 0, QTableWidgetItem(k))
                self.ui.sel_card_list.setItem(i, 1,
                                              QTableWidgetItem(v['NAME']))
                self.ui.sel_card_list.setItem(
                    i, 2, QTableWidgetItem(v['DESCRIPTION']))
示例#14
0
 def create_item(row: int, col: int, text: str):
     item = QTableWidgetItem(str(text))
     item.setFlags(Qt.ItemIsEnabled)
     self.table.setItem(row, col, item)
示例#15
0
    def give_role(self):

        sub_name = self.widj8.user.toPlainText()
        obj_name = self.widj8.obj.toPlainText()
        roles = self.widj8.r.toPlainText()

        parth = "data\\user.txt"
        file = open(parth, 'r', encoding='utf-8')
        file_user = file.read()
        file_user = file_user.split('\n')
        user = []
        for i in range(len(file_user)):
            user.append(file_user[i].split('|'))
        print(user)
        file.close()

        login = self.textLogin.toPlainText()

        current_log = ""
        komu = ""
        for i in range(len(user)):
            if (user[i][0] == login):
                current_log = i
            if (user[i][0] == sub_name):
                komu = i

        parth = "data\\file.txt"
        file = open(parth, 'r', encoding='utf-8')
        file_user = file.read()
        file_users = file_user.split('\n')
        file.close()

        kuda = ""
        for i in range(len(file_users)):
            if (file_users[i] == obj_name):
                kuda = i

        result = self.widj.table.item(current_log, kuda).text()

        if ("o" in result):

            t = QTableWidgetItem(roles)
            self.widj.table.setItem(komu, kuda, t)
            self.widj.table.item(komu,
                                 kuda).setBackground(QColor(230, 230, 230))
        else:
            self.widjError = QDialog()
            self.widjError.setGeometry(100, 100, 400, 300)
            self.widjError.lay = QGridLayout()
            self.widjError.label_user = QLabel("Ошибка, нет права!")

            self.widjError.lay.addWidget(self.widjError.label_user)

            self.widjError.setLayout(self.widjError.lay)
            self.widjError.show()

        parth2 = "data\\matrix.txt"
        file2 = open(parth2, 'w', encoding='utf-8')
        texts = []
        for i in range(len(user)):
            texts.append([])
            for j in range(len(file_users)):
                texts[i].append(self.widj.table.item(i, j).text())

        print(texts)
        result = []
        for i in range(len(texts)):
            str = ""
            for j in range(len(texts[i])):
                if (j != len(texts[i]) - 1):
                    str += texts[i][j] + "|"
                else:
                    str += texts[i][j]
            if (i != len(texts) - 1):
                str += "\n"
            result.append(str)

        print(result)
        file2.write("")
        for i in range(len(result)):
            file2.write(result[i])

        file2.close()

        print(1)
示例#16
0
 def add_row_to_table(self):
     last_row = self.tableWidget.rowCount()
     self.tableWidget.insertRow(last_row)
     self.tableWidget.setItem(last_row, 0, QTableWidgetItem("Hi mom"))
示例#17
0
    def done(self):

        parth = "data\\user.txt"
        file = open(parth, 'r', encoding='utf-8')
        file_user = file.read()
        file_user = file_user.split('\n')
        user = []
        for i in range(len(file_user)):
            user.append(file_user[i].split('|'))
        print(user)
        file.close()

        parth = "data\\file.txt"
        file = open(parth, 'r', encoding='utf-8')
        file_user = file.read()
        file_users = file_user.split('\n')
        file.close()

        login = self.textLogin.toPlainText()
        password = self.textPass.toPlainText()

        current_log = ""

        for i in range(len(user)):
            if (user[i][0] == login):
                current_log = i

        give_log = 1

        for j in range(len(file_users)):
            if ('o' in self.widj.table.item(int(current_log), j).text()):
                newstr = self.widj.table.item(int(current_log),
                                              j).text().replace('o,', '')
                t = QTableWidgetItem(newstr)
                self.widj.table.setItem(give_log, j, t)

        parth2 = "data\\matrix.txt"
        file2 = open(parth2, 'w', encoding='utf-8')
        texts = []
        for i in range(len(user)):
            texts.append([])
            for j in range(len(file_users)):
                texts[i].append(self.widj.table.item(i, j).text())

        print(texts)
        result = []
        for i in range(len(texts)):
            str = ""
            for j in range(len(texts[i])):
                if (j != len(texts[i]) - 1):
                    str += texts[i][j] + "|"
                else:
                    str += texts[i][j]
            if (i != len(texts) - 1):
                str += "\n"
            result.append(str)

        print(result)
        file2.write("")
        for i in range(len(result)):
            file2.write(result[i])

        file2.close()

        print(1)
示例#18
0
 def set(self, x, y, text):
     self.setItem(x, y, QTableWidgetItem(text))
示例#19
0
    def set_information(self, mode: int):
        # Presets
        decoderEdit = False
        self.ui.optionWidget.setCurrentIndex(0)
        txt = ""

        # Determine selected element
        if mode == 0:
            element = self.ui.basefunctions.currentItem().text()
            txt += element + ":\n"
        elif mode == 1:
            element = self.ui.additionalfunctions.currentItem().text()
            txt += element + ":\n"
        elif mode == 2:
            decoderEdit = True
            txt = "## DECODING PROCESS ##\n\n"
            element = self.ui.decoderchain.currentItem().text()
            if element[-1] == " ":
                elementname = element[0:-1]
            else:
                elementname = element
            txt += elementname + ":\n"
            self.active_message = element

        # Remove "[Disabled] " for further tasks
        if constants.DECODING_DISABLED_PREFIX in element:
            element = element[len(constants.DECODING_DISABLED_PREFIX):]

        # Write info text and show options
        if constants.DECODING_EDGE in element:
            txt += "Trigger on signal edge, i.e. the transition between low and high.\n" \
                   "- Low to High (01) is 1\n" \
                   "- High to Low (10) is 0"
        elif constants.DECODING_SUBSTITUTION in element:
            txt += "A set of manual defined signal sequences FROM (e.g. 110, 100) is replaced by another set of " \
                   "sequences TO (e.g. 01, 10). Note that all FROM entries must have the same length, otherwise " \
                   "the result is unpredictable! (For TX: all TO entries must have the same length)"
            self.ui.optionWidget.setCurrentIndex(3)
            # Values can only be changed when editing decoder, otherwise default value
            if not decoderEdit:
                self.ui.substitution_rows.setValue(4)
                self.ui.substitution.setRowCount(0)
                self.ui.substitution.setRowCount(4)
            else:
                if element in self.chainoptions:
                    values = self.chainoptions[element]
                    if values == "":
                        self.ui.substitution_rows.setValue(4)
                        self.ui.substitution.setRowCount(0)
                        self.ui.substitution.setRowCount(4)
                    else:
                        arrs = self.e.get_subst_array(values)
                        if len(arrs[0]) == len(arrs[1]):
                            self.ui.substitution_rows.setValue(len(arrs[0]))
                            self.ui.substitution.setRowCount(len(arrs[0]))
                            for i in range(0, len(arrs[0])):
                                self.ui.substitution.setItem(
                                    i, 0,
                                    QTableWidgetItem(self.e.bit2str(
                                        arrs[0][i])))
                                self.ui.substitution.setItem(
                                    i, 1,
                                    QTableWidgetItem(self.e.bit2str(
                                        arrs[1][i])))
                else:
                    self.ui.substitution_rows.setValue(4)
                    self.ui.substitution.setRowCount(0)
                    self.ui.substitution.setRowCount(4)
            self.ui.substitution.setEnabled(decoderEdit)
            self.ui.substitution_rows.setEnabled(decoderEdit)

        elif constants.DECODING_EXTERNAL in element:
            txt += "The decoding (and encoding) process is delegated to external programs or scripts via parameter.\n" \
                   "Example: Given the signal 10010110, your program is called as './decoder 10010110'. Your program " \
                   "computes and prints a corresponding set of 0s and 1s which is fed back into the decoding process. "
            self.ui.optionWidget.setCurrentIndex(4)
            # Values can only be changed when editing decoder, otherwise default value
            if not decoderEdit:
                self.ui.external_decoder.setText("")
                self.ui.external_encoder.setText("")
            else:
                if element in self.chainoptions:
                    value = self.chainoptions[element]
                    if value == "":
                        self.ui.external_decoder.setText("")
                        self.ui.external_encoder.setText("")
                    else:
                        decstr, encstr = value.split(";")
                        self.ui.external_decoder.setText(decstr)
                        self.ui.external_encoder.setText(encstr)
                else:
                    self.ui.external_decoder.setText("")
                    self.ui.external_encoder.setText("")
            self.ui.external_decoder.setEnabled(decoderEdit)
            self.ui.external_encoder.setEnabled(decoderEdit)

        elif constants.DECODING_INVERT in element:
            txt += "All bits are inverted, i.e. 0->1 and 1->0."
        elif constants.DECODING_ENOCEAN in element:
            txt += "Remove Wireless Short-Packet (WSP) encoding that is used by EnOcean standard."
        elif constants.DECODING_DIFFERENTIAL in element:
            txt += "Every transition between low and high (0->1 or 1->0) becomes 1, no transition (0->0 or 1->1) remains 0.\n" \
                   "The first signal bit is regarded as start value and directly copied.\n" \
                   "Example: 0011 becomes 0010 [0|(0->0)|(0->1)|(1->1)]."
        elif constants.DECODING_BITORDER in element:
            txt += "Every byte (8 bit) is reversed, i.e. the order of the bits 01234567 (e.g. least significant bit first) " \
                   "is changed to 76543210 (e.g. most significant bit first)."
        elif constants.DECODING_REDUNDANCY in element:
            txt += "If the source signal always has multiple redundant bits for one bit (e.g. 1111=1, 0000=0), the " \
                   "redundancy is removed here. You have to define the number of redundant bits."
            self.ui.optionWidget.setCurrentIndex(1)
            # Values can only be changed when editing decoder, otherwise default value
            if not decoderEdit:
                self.ui.multiple.setValue(2)
            else:
                if element in self.chainoptions:
                    value = self.chainoptions[element]
                    if value == "":
                        self.ui.multiple.setValue(2)
                    else:
                        self.ui.multiple.setValue(int(value))
                else:
                    self.ui.multiple.setValue(2)
            self.ui.multiple.setEnabled(decoderEdit)
        elif constants.DECODING_MORSE in element:
            txt += "If the signal is a morse code, e.g. 00111001001110011100, where information are " \
                   "transported with long and short sequences of 1 (0 just for padding), then this " \
                   "decoding evaluates those sequences (Example output: 1011)."
            self.ui.optionWidget.setCurrentIndex(7)
            # # Values can only be changed when editing decoder, otherwise default value
            if not decoderEdit:
                self.ui.morse_low.setValue(1)
                self.ui.morse_high.setValue(3)
                self.ui.morse_wait.setValue(1)
            else:
                if element in self.chainoptions:
                    value = self.chainoptions[element]
                    if value == "":
                        self.ui.morse_low.setValue(1)
                        self.ui.morse_high.setValue(3)
                        self.ui.morse_wait.setValue(1)
                    else:
                        try:
                            l, h, w = value.split(";")
                            self.ui.morse_low.setValue(int(l))
                            self.ui.morse_high.setValue(int(h))
                            self.ui.morse_wait.setValue(int(w))
                        except ValueError:
                            self.ui.morse_low.setValue(1)
                            self.ui.morse_high.setValue(3)
                            self.ui.morse_wait.setValue(1)
                else:
                    self.ui.morse_low.setValue(1)
                    self.ui.morse_high.setValue(3)
                    self.ui.morse_wait.setValue(1)
            self.ui.morse_low.setEnabled(decoderEdit)
            self.ui.morse_high.setEnabled(decoderEdit)
            self.ui.morse_wait.setEnabled(decoderEdit)
        elif constants.DECODING_CARRIER in element:
            txt += "A carrier is a fixed pattern like 1_1_1_1 where the actual data lies in between, e.g. 1a1a1b1. This " \
                   "function extracts the actual bit information (here: aab) from the signal at '_'/'.' positions.\n" \
                   "Examples:\n" \
                   "- Carrier = '1_' means 1_1_1_...\n" \
                   "- Carrier = '01_' means 01_01_01_01..."
            self.ui.optionWidget.setCurrentIndex(2)
            # Values can only be changed when editing decoder, otherwise default value
            if not decoderEdit:
                self.ui.carrier.setText("1_")
            else:
                if element in self.chainoptions:
                    value = self.chainoptions[element]
                    if value == "":
                        self.ui.carrier.setText("1_")
                    else:
                        self.ui.carrier.setText(value)
                else:
                    self.ui.carrier.setText("1_")
            self.ui.carrier.setEnabled(decoderEdit)
        elif constants.DECODING_DATAWHITENING in element:
            txt += "Texas Instruments CC110x chips allow a data whitening that is applied before sending the signals to HF. " \
                   "After a preamble (1010...) there is a fixed 16/32 bit sync word. The following data (incl. 16 bit CRC) " \
                   "is masked (XOR) with the output of a LFSR.\n" \
                   "This unmasks the data."
            self.ui.optionWidget.setCurrentIndex(5)
            # Values can only be changed when editing decoder, otherwise default value
            if not decoderEdit:
                self.ui.datawhitening_sync.setText("0xe9cae9ca")
                self.ui.datawhitening_polynomial.setText("0x21")
            else:
                if element in self.chainoptions:
                    value = self.chainoptions[element]
                    if value == "":
                        self.ui.datawhitening_sync.setText("0xe9cae9ca")
                        self.ui.datawhitening_polynomial.setText("0x21")
                    else:
                        try:
                            whitening_sync, whitening_polynomial = value.split(
                                ";")
                            self.ui.datawhitening_sync.setText(whitening_sync)
                            self.ui.datawhitening_polynomial.setText(
                                whitening_polynomial)

                        except ValueError:
                            self.ui.datawhitening_sync.setText("0xe9cae9ca")
                            self.ui.datawhitening_polynomial.setText("0x21")

            self.ui.datawhitening_sync.setEnabled(decoderEdit)
            self.ui.datawhitening_polynomial.setEnabled(decoderEdit)

        elif constants.DECODING_CUT in element:
            txt += "This function enables you to cut data from your messages, in order to shorten or align them for a " \
                   "better view. Note that this decoding does NOT support encoding, because cut data is gone!\n" \
                   "Example:\n" \
                   "- Cut before '1010' would delete everything before first '1010' bits.\n" \
                   "- Cut before Position = 3 (in bit) would delete the first three bits.\n"
            self.ui.optionWidget.setCurrentIndex(6)
            # Values can only be changed when editing decoder, otherwise default value
            if not decoderEdit:
                self.ui.cutmark.setText("1010")
                self.old_cutmark = self.ui.cutmark.text()
                self.ui.cutmark2.setValue(1)
                self.ui.rB_delbefore.setChecked(False)
                self.ui.rB_delafter.setChecked(False)
                self.ui.rB_delbeforepos.setChecked(False)
                self.ui.rB_delafterpos.setChecked(False)
                self.ui.cutmark.setEnabled(False)
                self.ui.cutmark2.setEnabled(False)
            else:
                if element in self.chainoptions:
                    value = self.chainoptions[element]
                    if value == "":
                        self.ui.cutmark.setText("1010")
                        self.ui.cutmark.setEnabled(True)
                        self.old_cutmark = self.ui.cutmark.text()
                        self.ui.cutmark2.setValue(1)
                        self.ui.cutmark2.setEnabled(False)
                        self.ui.rB_delbefore.setChecked(True)
                        self.ui.rB_delafter.setChecked(False)
                        self.ui.rB_delbeforepos.setChecked(False)
                        self.ui.rB_delafterpos.setChecked(False)
                    else:
                        try:
                            cmode, cmark = value.split(";")
                            cmode = int(cmode)
                            if cmode == 0:
                                self.ui.rB_delbefore.setChecked(True)
                                self.ui.cutmark.setEnabled(True)
                                self.ui.cutmark2.setEnabled(False)
                                self.ui.cutmark.setText(cmark)
                            elif cmode == 1:
                                self.ui.rB_delafter.setChecked(True)
                                self.ui.cutmark.setEnabled(True)
                                self.ui.cutmark2.setEnabled(False)
                                self.ui.cutmark.setText(cmark)
                            elif cmode == 2:
                                self.ui.rB_delbeforepos.setChecked(True)
                                self.ui.cutmark.setEnabled(False)
                                self.ui.cutmark2.setEnabled(True)
                                self.ui.cutmark2.setValue(int(cmark))
                            elif cmode == 3:
                                self.ui.rB_delafterpos.setChecked(True)
                                self.ui.cutmark.setEnabled(False)
                                self.ui.cutmark2.setEnabled(True)
                                self.ui.cutmark2.setValue(int(cmark))

                        except ValueError:
                            self.ui.cutmark.setText("1010")
                            self.old_cutmark = self.ui.cutmark.text()
                            self.ui.cutmark2.setValue(1)
                            self.ui.rB_delbefore.setChecked(True)
                            self.ui.rB_delafter.setChecked(False)
                            self.ui.rB_delbeforepos.setChecked(False)
                            self.ui.rB_delafterpos.setChecked(False)
                            self.ui.cutmark.setEnabled(True)
                            self.ui.cutmark2.setEnabled(False)
                else:
                    self.ui.cutmark.setText("1010")
                    self.old_cutmark = self.ui.cutmark.text()
                    self.ui.cutmark2.setValue(1)
                    self.ui.rB_delbefore.setChecked(True)
                    self.ui.rB_delafter.setChecked(False)
                    self.ui.rB_delbeforepos.setChecked(False)
                    self.ui.rB_delafterpos.setChecked(False)
                    self.ui.cutmark.setEnabled(True)
                    self.ui.cutmark2.setEnabled(False)
            self.ui.rB_delbefore.setEnabled(decoderEdit)
            self.ui.rB_delafter.setEnabled(decoderEdit)
            self.ui.rB_delbeforepos.setEnabled(decoderEdit)
            self.ui.rB_delafterpos.setEnabled(decoderEdit)

        self.ui.info.setText(txt)
示例#20
0
 def item(value):
     item = QTableWidgetItem(value)
     item.setTextAlignment(Qt.AlignCenter)
     item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable)
     return item
    def gen_table(self):

        time_weight = self.textEdit_timeweight.toPlainText()
        if time_weight:
            time_weight = float(time_weight)
        else:
            self.echo_error('拥堵时长权重不能为空,请检查')
            return False
        length_weight = self.textEdit_lengthweight.toPlainText()
        if length_weight:
            length_weight = float(length_weight)
        else:
            self.echo_error('拥堵距离权重不能为空,请检查')
            return False
        # 表格处理要完全清除
        self.tableWidget.clear()
        self.tableWidget.setRowCount(0)
        self.tableWidget.setColumnCount(0)
        self.tableWidget.setSortingEnabled(True)
        self.tableWidget.horizontalHeader().setStyleSheet(
            "background-color: gray")
        self.tableWidget.setSelectionBehavior(1)
        self.tableWidget.horizontalHeader().setStretchLastSection(True)
        self.tableWidget.horizontalHeader().setSectionResizeMode(1)
        self.tableWidget.setShowGrid(True)

        file = open(JSON_FILE_PATH, 'r', encoding='utf-8')
        json_datas = json.load(file)
        time_max = max([float(x['jam_time']) for x in json_datas])
        length_max = max([float(x['distance']) for x in json_datas])
        json_datas.sort(
            key=lambda x: time_weight * float(x['jam_time']) / time_max +
            length_weight * float(x['distance']) / length_max,
            reverse=True)
        self.tableWidget.setColumnCount(len(TITLE_ROW))
        self.tableWidget.setRowCount(len(json_datas))
        self.tableWidget.setHorizontalHeaderLabels(TITLE_ROW)
        for row_index, json_data in enumerate(json_datas):
            no = json_data[JSON_NO]
            distance = json_data[JSON_DISTANCE]
            jam_time = json_data[JSON_JAM_TIME]
            start_point = json_data[JSON_START_POINT]
            start_place = json_data[JSON_START_PLACE]
            end_point = json_data[JSON_END_POINT]
            end_place = json_data[JSON_END_PLACE]
            # TODO
            date_type = json_data[JSON_DAY]
            jam_type = json_data[JSON_TYPE]
            if jam_type == 'red':
                color = '红色'
            elif jam_type == 'yellow':
                color = '橙黄'
            else:
                color = '黄色'
            if date_type == 'morning':
                day = '早高峰'
            else:
                day = '晚高峰'
            row_data = [
                no, day, start_place,
                str(start_point).replace('[', '').replace(']', ''), end_place,
                str(end_point).replace('[', '').replace(']', ''),
                float(distance), color, jam_time
            ]
            for col_index, item in enumerate(row_data):
                qitem = QTableWidgetItem()
                qitem.setTextAlignment(Qt.AlignCenter)
                # set data好,不然text排序只按字符串排
                qitem.setData(0, item)
                self.tableWidget.setItem(row_index, col_index, qitem)
示例#22
0
 def updateFilenames(self, files):
     for row in range(self.rowCount()):
         filepath = self.item(row, 4).text()
         newFileName = files[filepath]["out"]
         self.setItem(row, 2, QTableWidgetItem(newFileName))
示例#23
0
    def AddFileRowToManager(self, name, filename):
        ''' Add file Video to new Row '''
        w = QWidget()
        layout = QVBoxLayout()
        pbar = QProgressBar()
        layout.addWidget(pbar)
        w.setLayout(layout)
        rowPosition = self.VManager.rowCount()

        self.VManager.insertRow(rowPosition)
        self.VManager.setItem(rowPosition, 0,
                              QTableWidgetItem(str(rowPosition)))
        self.VManager.setItem(rowPosition, 1, QTableWidgetItem(name))
        self.VManager.setItem(
            rowPosition, 2,
            QTableWidgetItem(
                QCoreApplication.translate("ManagerDock", "Loading")))
        self.VManager.setItem(rowPosition, 3, QTableWidgetItem(filename))
        self.VManager.setItem(rowPosition, 4, QTableWidgetItem("-"))
        self.VManager.setCellWidget(rowPosition, 5, w)

        self.VManager.setVisible(False)
        self.VManager.horizontalHeader().setStretchLastSection(True)

        pbar.setGeometry(0, 0, 300, 30)
        pbar.setValue(30)
        pbar.setMaximumHeight(30)
        self.pBars[str(rowPosition)] = pbar
        self.VManager.setVisible(True)

        if not self.isStreaming:
            info = FFMpeg().probe(filename)
            info.format.duration
            # init non-blocking metadata buffered reader
            self.meta_reader[str(rowPosition)] = BufferedMetaReader(
                filename,
                pass_time=self.pass_time,
                intervall=self.buffer_intervall,
                min_buffer_size=self.min_buffer_size)
            qgsu.showUserAndLogMessage(
                "",
                "buffered non-blocking metadata reader initialized.",
                onlyLog=True)

            pbar.setValue(60)

            try:
                # init point we can center the video on
                self.initialPt[str(rowPosition)] = getVideoLocationInfo(
                    filename)
                if not self.initialPt[str(rowPosition)]:
                    self.VManager.setItem(
                        rowPosition, 4,
                        QTableWidgetItem(
                            QCoreApplication.translate(
                                "ManagerDock",
                                "Start location not available!")))
                    self.ToggleActiveRow(rowPosition, value="Not MISB")
                    pbar.setValue(0)
                    return
                else:
                    self.VManager.setItem(
                        rowPosition, 4,
                        QTableWidgetItem(self.initialPt[str(rowPosition)][2]))
            except Exception:
                qgsu.showUserAndLogMessage(
                    QCoreApplication.translate(
                        "ManagerDock", "This video don't have Metadata ! "))
                pbar.setValue(0)
                self.ToggleActiveRow(rowPosition, value="Not MISB")
                return

            pbar.setValue(90)

            if self.initialPt[str(rowPosition)] and dtm_path != '':
                initElevationModel(self.initialPt[str(rowPosition)][0],
                                   self.initialPt[str(rowPosition)][1],
                                   dtm_path)
                qgsu.showUserAndLogMessage("",
                                           "Elevation model initialized.",
                                           onlyLog=True)
        else:
            self.meta_reader[str(rowPosition)] = None
            self.initialPt[str(rowPosition)] = None

        pbar.setValue(100)
        self.ToggleActiveRow(rowPosition, value="Ready")
示例#24
0
    def add(self):

        parth = "data\\file.txt"
        file = open(parth, 'r', encoding='utf-8')
        file_user = file.read()
        file_users = file_user.split('\n')
        file_users.append(self.widj4.obj.toPlainText())
        file.close()
        file = open(parth, 'w', encoding='utf-8')
        file.write("")
        for i in range(len(file_users)):
            if (i != len(file_users) - 1):
                file.write(file_users[i] + "\n")
            else:
                file.write(file_users[i])
        file.close()

        login = self.textLogin.toPlainText()
        password = self.textPass.toPlainText()

        current_log = ""

        for i in range(len(user)):
            if (user[i][0] == login):
                current_log = i

        self.widj.table.insertColumn(len(file_users) - 1)
        self.widj.table.setHorizontalHeaderItem(
            len(file_users) - 1,
            QTableWidgetItem(self.widj4.obj.toPlainText()))

        boola = user[current_log][2]
        for i in range(len(user)):
            t = QTableWidgetItem("")
            #self.widj.table.setItem(i, len(file_users)-1, t)
            if (boola != 'True'):
                t.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
                #self.widj.table.item(i, len(file_users)-1).setBackground(QColor(230, 230, 230))
            self.widj.table.setItem(i, len(file_users) - 1, t)
            if (boola != 'True'):
                #t.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
                self.widj.table.item(i,
                                     len(file_users) - 1).setBackground(
                                         QColor(230, 230, 230))

        t = QTableWidgetItem("o,w,r,e")
        if (boola != 'True'):
            t.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
        self.widj.table.setItem(current_log, len(file_users) - 1, t)

        if (boola != 'True'):
            self.widj.table.item(current_log,
                                 len(file_users) - 1).setBackground(
                                     QColor(230, 230, 230))

        parth2 = "data\\matrix.txt"
        file2 = open(parth2, 'w', encoding='utf-8')
        texts = []
        for i in range(len(user)):
            texts.append([])
            for j in range(len(file_users)):
                texts[i].append(self.widj.table.item(i, j).text())

        print(texts)
        result = []
        for i in range(len(texts)):
            str = ""
            for j in range(len(texts[i])):
                if (j != len(texts[i]) - 1):
                    str += texts[i][j] + "|"
                else:
                    str += texts[i][j]
            if (i != len(texts) - 1):
                str += "\n"
            result.append(str)

        print(result)
        file2.write("")
        for i in range(len(result)):
            file2.write(result[i])

        file2.close()

        print(1)
示例#25
0
    def initUI(self, contents):
        self.setWindowTitle("NTFS Detail Viewer")
        self.setMinimumWidth(750)

        self.layout = QFormLayout(self)

        self.label1 = QLabel("- MFT Entry Detail", self)
        self.label1.setFixedWidth(320)
        self.label2 = QLabel("- USN Record Detail", self)
        self.label3 = QLabel("- File Name Attribute in MFT", self)
        self.label3.setFixedHeight(20)
        self.label3.setAlignment(Qt.AlignBottom)
        self.label4 = QLabel(self)
        self.label4.setFixedHeight(20)
        self.label4.setAlignment(Qt.AlignBottom)

        self.table1 = QTableWidget(self)
        self.table1.setFixedSize(300, 165)
        self.table1.verticalHeader().setVisible(False)
        self.table1.verticalHeader().setDefaultSectionSize(26)
        self.table1.verticalHeader().setMaximumSectionSize(26)
        self.table1.horizontalHeader().setVisible(False)
        self.table1.setRowCount(6)
        self.table1.setColumnCount(2)
        self.table1.setItem(0, 0, QTableWidgetItem("MFT Entry Number"))
        self.table1.setItem(1, 0, QTableWidgetItem("Sequence Value"))
        self.table1.setItem(2, 0, QTableWidgetItem("Base Entry"))
        self.table1.setItem(3, 0, QTableWidgetItem("Currently In Use"))
        self.table1.setItem(4, 0, QTableWidgetItem("Most Recently USN"))
        self.table1.setItem(5, 0, QTableWidgetItem("Most Recently LSN"))
        for i in range(len(contents[0]) - 1):
            self.table1.setItem(i, 1, QTableWidgetItem(contents[0][i]))
        self.table1.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.table1.resizeColumnsToContents()
        for c in range(self.table1.columnCount()):
            self.table1.setColumnWidth(c, 130)
        self.table1.verticalHeader().setStretchLastSection(True)
        self.table1.horizontalHeader().setStretchLastSection(True)

        self.table2 = QTableWidget(self)
        self.table2.setMinimumWidth(280)
        self.table2.setFixedHeight(165)
        self.table2.verticalHeader().setVisible(False)
        self.table2.verticalHeader().setDefaultSectionSize(31)
        self.table2.verticalHeader().setMaximumSectionSize(31)
        self.table2.horizontalHeader().setVisible(False)
        self.table2.setRowCount(5)
        self.table2.setColumnCount(2)
        self.table2.setItem(0, 0, QTableWidgetItem("USN"))
        self.table2.setItem(1, 0, QTableWidgetItem("File Name"))
        self.table2.setItem(2, 0, QTableWidgetItem("Timestamp"))
        self.table2.setItem(3, 0, QTableWidgetItem("Reason"))
        self.table2.setItem(4, 0, QTableWidgetItem("File Attributes   "))
        for i in range(len(contents[1])):
            self.table2.setItem(i, 1, QTableWidgetItem(contents[1][i]))
        self.table2.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.table2.resizeColumnsToContents()
        self.table2.verticalHeader().setStretchLastSection(True)
        self.table2.horizontalHeader().setStretchLastSection(True)

        if contents[0][-1]:
            attributes = contents[0][-1]
            self.table3 = QTableWidget(self)
            self.table3.setFixedHeight(115)
            self.table3.verticalHeader().setVisible(False)
            self.table3.verticalHeader().setDefaultSectionSize(28)
            self.table3.verticalHeader().setMaximumSectionSize(28)
            self.table3.setRowCount(len(contents[0][-1]))
            self.table3.setColumnCount(5)
            self.table3.setHorizontalHeaderLabels([
                "File Name", "File Created Time", "File Modified Time",
                "MFT Modified Time", "File Accessed Time"
            ])
            for row in range(len(attributes)):
                self.table3.setItem(row, 0,
                                    QTableWidgetItem(attributes[row][0]))
                self.table3.setItem(row, 1,
                                    QTableWidgetItem(attributes[row][1]))
                self.table3.setItem(row, 2,
                                    QTableWidgetItem(attributes[row][2]))
                self.table3.setItem(row, 3,
                                    QTableWidgetItem(attributes[row][3]))
                self.table3.setItem(row, 4,
                                    QTableWidgetItem(attributes[row][4]))
                for c in range(5):
                    self.table3.item(row, c).setTextAlignment(Qt.AlignCenter)
            self.table3.setEditTriggers(QAbstractItemView.NoEditTriggers)
            self.table3.resizeColumnsToContents()
            self.table3.verticalHeader().setStretchLastSection(True)
            self.table3.horizontalHeader().setStretchLastSection(True)
        else:
            self.table3 = QLabel("None")
            self.table3.setFixedHeight(40)
            self.table3.setFixedWidth(self.width())
            self.table3.setAlignment(Qt.AlignCenter)

        if len(contents) == 3:
            self.label4.setText("- LogFile Transaction Number: {}".format(
                contents[-1][0]))
            self.table4 = QTableWidget(self)
            self.table4.verticalHeader().setVisible(False)
            self.table4.verticalHeader().setDefaultSectionSize(25)
            self.table4.verticalHeader().setMaximumSectionSize(25)
            self.table4.setRowCount(len(contents[2][1]))
            self.table4.setColumnCount(3)
            self.table4.setHorizontalHeaderLabels(
                ["LSN", "Redo Operation", "Undo Operation"])
            self.table4.setColumnWidth(0, 120)
            self.table4.setColumnWidth(1, 300)
            self.table4.setColumnWidth(2, 300)
            row = 0
            for lsn, redo_op, undo_op in contents[2][1]:
                self.table4.setItem(row, 0, QTableWidgetItem(str(lsn)))
                self.table4.setItem(row, 1, QTableWidgetItem(redo_op))
                self.table4.setItem(row, 2, QTableWidgetItem(undo_op))
                self.table4.item(row, 0).setTextAlignment(Qt.AlignCenter)
                row += 1
            self.table4.setEditTriggers(QAbstractItemView.NoEditTriggers)
            self.table4.horizontalHeader().setStretchLastSection(True)
        else:
            self.label4.setText("- LogFile Transaction Number:")
            self.table4 = QLabel("None")
            self.table4.setFixedHeight(60)
            self.table4.setFixedWidth(self.width())
            self.table4.setAlignment(Qt.AlignCenter)

        self.layout.addRow(self.label1, self.label2)
        self.layout.addRow(self.table1, self.table2)
        self.layout.addRow(self.label3)
        self.layout.addRow(self.table3)
        self.layout.addRow(self.label4)
        self.layout.addRow(self.table4)

        self.show()
示例#26
0
    def add_sub(self):
        parth = "data\\user.txt"
        file = open(parth, 'r', encoding='utf-8')
        file_user = file.read()
        file_user = file_user.split('\n')
        user = []
        for i in range(len(file_user)):
            user.append(file_user[i].split('|'))
        file.close()
        user.append([
            self.widj5.sub.toPlainText(),
            self.widj5.sub_pass.toPlainText(), 'False'
        ])

        file = open(parth, 'w', encoding='utf-8')
        file.write("")
        result = []
        for i in range(len(user)):
            str = ""
            for j in range(len(user[i])):
                if (j != len(user[i]) - 1):
                    str += user[i][j] + "|"
                else:
                    str += user[i][j]
            if (i != len(user) - 1):
                str += "\n"
            result.append(str)

        for i in range(len(result)):
            file.write(result[i])
        file.close()

        self.widj.table.insertRow(len(user) - 1)
        self.widj.table.setVerticalHeaderItem(
            len(user) - 1, QTableWidgetItem(self.widj5.sub.toPlainText()))

        login = self.textLogin.toPlainText()
        password = self.textPass.toPlainText()

        parth = "data\\file.txt"
        file = open(parth, 'r', encoding='utf-8')
        file_user = file.read()
        file_users = file_user.split('\n')
        file.close()

        for i in range(len(file_users)):
            t = QTableWidgetItem("")
            self.widj.table.setItem(len(user) - 1, i, t)

        self.widj.table.setItem(len(user) - 1, 0, QTableWidgetItem("co,do"))
        parth2 = "data\\matrix.txt"
        file2 = open(parth2, 'w', encoding='utf-8')
        texts = []
        for i in range(len(user)):
            texts.append([])
            for j in range(len(file_users)):
                texts[i].append(self.widj.table.item(i, j).text())

        print(texts)
        result = []
        for i in range(len(texts)):
            str = ""
            for j in range(len(texts[i])):
                if (j != len(texts[i]) - 1):
                    str += texts[i][j] + "|"
                else:
                    str += texts[i][j]
            if (i != len(texts) - 1):
                str += "\n"
            result.append(str)

        print(result)
        file2.write("")
        for i in range(len(result)):
            file2.write(result[i])

        file2.close()

        print(1)
示例#27
0
    def plot_data(self, result, values):
        """Plots the data from the sql query.

        Parameters
        ----------
        result: Unused parameter

        values: list
            if success:
                [True, dict]
            else:
                [False, message, tracback]
        """
        if values[0] is False:
            QMessageBox.information(
                None, self.tr('Error'),
                self.tr(
                    'Following error occurred: {m}\n\n Traceback: {t}'.format(
                        m=values[1], t=values[2])))
            return
        else:
            filtered_data = values[1]
        fig, ax1 = plt.subplots()
        #ax2 = ax1.twinx()
        if self.investigating_param['checked']:
            xlabels = filtered_data[1]
            x = np.arange(len(xlabels))
            ax1.plot(x, filtered_data[0], color='green')
            ax1.set_xticks(x)
            ax1.set_xticklabels(xlabels, rotation=40, ha='right')
            #ax2.plot(x, filtered_data[2], 'x', color='blue')
            #ax2.set_xticks(x)
            #ax2.set_xticklabels(xlabels, rotation=40, ha='right')
        else:
            ax1.plot(filtered_data[1], filtered_data[0], color='green')
            #ax2.plot(filtered_data[1], filtered_data[2], 'x', color='blue')
        ax1.yaxis.label.set_color('green')
        ax1.set_xlabel(self.column_investigated.replace('_', ' '))
        ax1.set_ylabel('mean yield (kg/ha)')
        #ax2.yaxis.label.set_color('blue')
        #ax2.set_ylabel(sel.tr('Number of harvest samples'))
        plt.subplots_adjust(wspace=0.6,
                            hspace=0.6,
                            left=0.17,
                            bottom=0.12,
                            right=0.85,
                            top=0.92)
        self.canvas = FigureCanvas(fig)
        self.dlg.mplvl.addWidget(self.canvas)
        self.canvas.draw()
        self.dlg.TWValues.clear()
        self.dlg.TWValues.setRowCount(len(filtered_data[0]))
        self.dlg.TWValues.setColumnCount(3)
        self.dlg.TWValues.setHorizontalHeaderItem(
            0, QTableWidgetItem(self.column_investigated.replace('_', ' ')))
        self.dlg.TWValues.setHorizontalHeaderItem(
            1, QTableWidgetItem(self.tr('Average yield')))
        self.dlg.TWValues.setHorizontalHeaderItem(
            2, QTableWidgetItem(self.tr('Yield samples')))
        for i, m_yield in enumerate(filtered_data[0]):
            try:
                current_value = filtered_data[1][i].replace("'", "")
            except AttributeError:
                try:
                    current_value = round(filtered_data[1][i], 2)
                except:
                    current_value = filtered_data[1][i]
                    pass
                pass
            current_count = filtered_data[2][i]
            m_yield = round(m_yield, 2)
            item1 = QTableWidgetItem()
            item1.setText(str(current_value))
            item2 = QTableWidgetItem()
            item2.setText(str(m_yield))
            item3 = QTableWidgetItem()
            item3.setText(str(current_count))
            self.dlg.TWValues.setItem(i, 0, item1)
            self.dlg.TWValues.setItem(i, 1, item2)
            self.dlg.TWValues.setItem(i, 2, item3)
示例#28
0
    def on_click(self):
        login = self.textLogin.toPlainText()
        password = self.textPass.toPlainText()
        flag = False
        boola = ''
        current_log = ""
        for i in range(len(user)):
            if (user[i][0] == login):
                current_log = user[i][0]
                if (user[i][1] == password):
                    boola = user[i][2]
                    flag = True

        if (flag):
            self.widj = QDialog()
            self.widj.setGeometry(100, 100, 800, 600)
            self.widj.lay = QGridLayout()
            self.widj.table = QTableWidget()

            self.widj.table.setRowCount(len(user))
            self.widj.table.setColumnCount(len(file_users))

            horHeader = []
            for i in range(len(file_users)):
                horHeader.append(file_users[i])
            self.widj.table.setHorizontalHeaderLabels(horHeader)

            vertHeader = []
            for i in range(len(user)):
                vertHeader.append(user[i][0])
            self.widj.table.setVerticalHeaderLabels(vertHeader)

            for i in range(len(user)):
                for j in range(len(file_users)):

                    t = QTableWidgetItem(str(matrix[i][j]))
                    if (boola != 'True'):
                        t.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled)
                        self.widj.table.setItem(i, j, t)
                        self.widj.table.item(i, j).setBackground(
                            QColor(230, 230, 230))
                    else:
                        self.widj.table.setItem(i, j, t)

            self.widj.button3 = QPushButton(
                "Проверить, есть ли \n требуемое разрешение \n в определенной ячейке"
            )
            self.widj.button3.clicked.connect(self.on_click3)
            self.widj.lay.addWidget(self.widj.button3, 1, 1)

            self.widj.button4 = QPushButton("Добавить объект")
            self.widj.button4.clicked.connect(self.on_click4)
            self.widj.lay.addWidget(self.widj.button4, 2, 1)

            if (boola == 'True'):
                self.widj.button5 = QPushButton("Добавить субъект")
                self.widj.button5.clicked.connect(self.on_click5)
                self.widj.lay.addWidget(self.widj.button5, 3, 1)

            self.widj.button6 = QPushButton("Удалить объект")
            self.widj.button6.clicked.connect(self.on_click6)
            self.widj.lay.addWidget(self.widj.button6, 4, 1)
            if (boola == 'True'):
                self.widj.button7 = QPushButton("Удалить субъект")
                self.widj.button7.clicked.connect(self.on_click7)
                self.widj.lay.addWidget(self.widj.button7, 5, 1)

            self.widj.button8 = QPushButton("Передача прав")
            self.widj.button8.clicked.connect(self.on_click8)
            self.widj.lay.addWidget(self.widj.button8, 6, 1)

            self.widj.button1 = QPushButton("Сохранить изменения \n в матрице")
            self.widj.button1.clicked.connect(self.on_click2)
            self.widj.lay.addWidget(self.widj.button1, 8, 1)

            self.widj.button9 = QPushButton("Выполнить")
            self.widj.button9.clicked.connect(self.on_click9)
            self.widj.lay.addWidget(self.widj.button9, 7, 1)

            self.widj.lay.addWidget(self.widj.table, 0, 0)

            self.widj.setLayout(self.widj.lay)
            self.widj.show()
        else:
            self.widj = QDialog()
            self.widj.setGeometry(100, 100, 200, 100)
            label = QLabel("Error!", self.widj)
            label.move(50, 50)
            self.widj.show()
示例#29
0
    def setupUi(self, TbGen):
        TbGen.setObjectName("TbGen")
        TbGen.setWindowIcon(QtGui.QIcon("TG.png"))
        TbGen.resize(500, 300)
        self.verticalLayout = QVBoxLayout(TbGen)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout0 = QHBoxLayout()
        self.horizontalLayout0.setObjectName("horizontalLayout0")
        self.DutLabel = QLabel(TbGen)
        self.DutLabel.setObjectName("DutLabel")
        self.horizontalLayout0.addWidget(self.DutLabel)
        self.DutLineEdit = QLineEdit(TbGen)
        self.DutLineEdit.setObjectName("DutLineEdit")
        self.horizontalLayout0.addWidget(self.DutLineEdit)
        self.DutBrowseBT = QPushButton(TbGen)
        self.DutBrowseBT.setObjectName("DutBrowseBT")
        self.horizontalLayout0.addWidget(self.DutBrowseBT)
        self.verticalLayout.addLayout(self.horizontalLayout0)
        self.horizontalLayout1 = QHBoxLayout()
        self.horizontalLayout1.setObjectName("horizontalLayout1")
        self.OupLabel = QLabel(TbGen)
        self.OupLabel.setObjectName("OupLabel")
        self.horizontalLayout1.addWidget(self.OupLabel)
        self.OupLineEdit = QLineEdit(TbGen)
        self.OupLineEdit.setObjectName("OupLineEdit")
        self.horizontalLayout1.addWidget(self.OupLineEdit)
        self.OupBrowseBT = QPushButton(TbGen)
        self.OupBrowseBT.setObjectName("OupBrowseBT")
        self.horizontalLayout1.addWidget(self.OupBrowseBT)
        self.verticalLayout.addLayout(self.horizontalLayout1)
        self.horizontalLayout_2 = QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.SrcLabel = QLabel(TbGen)
        self.SrcLabel.setObjectName("SrcLabel")
        self.horizontalLayout_2.addWidget(self.SrcLabel)
        spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding,
                                 QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem)
        self.SrcAddBT = QPushButton(TbGen)
        self.SrcAddBT.setObjectName("SrcAddBT")
        self.horizontalLayout_2.addWidget(self.SrcAddBT)
        self.SrcRemoveBT = QPushButton(TbGen)
        self.SrcRemoveBT.setObjectName("SrcRemoveBT")
        self.horizontalLayout_2.addWidget(self.SrcRemoveBT)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        ''' File Table Widget '''
        self.FileTW = QTableWidget(TbGen)
        self.FileTW.setShowGrid(True)
        self.FileTW.setObjectName("FileTW")
        self.FileTW.setColumnCount(2)
        self.FileTW.setRowCount(0)

        item = QTableWidgetItem()
        self.FileTW.setHorizontalHeaderItem(0, item)
        item = QTableWidgetItem()
        self.FileTW.setHorizontalHeaderItem(1, item)
        self.FileTW.horizontalHeader().setVisible(True)
        self.FileTW.horizontalHeader().setCascadingSectionResizes(False)

        self.FileTW.setColumnWidth(0, 500)
        self.FileTW.setColumnWidth(1, 82)
        self.FileTW.horizontalHeader().setSectionResizeMode(
            0, QHeaderView.Stretch)

        self.FileTW.horizontalHeader().setMinimumSectionSize(80)
        self.FileTW.horizontalHeader().setSortIndicatorShown(False)
        # 拉伸 最后一列
        #self.FileTW.horizontalHeader().setStretchLastSection(True)
        self.FileTW.horizontalHeader().setStretchLastSection(False)
        ''' 禁止 编辑 '''
        self.FileTW.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.verticalLayout.addWidget(self.FileTW)

        self.horizontalLayout_3 = QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.RelativePathCB = QCheckBox(TbGen)
        self.RelativePathCB.setObjectName("RelativePathCB")
        self.horizontalLayout_3.addWidget(self.RelativePathCB)
        self.OverwriteCB = QCheckBox(TbGen)
        self.OverwriteCB.setObjectName("OverwriteCB")

        self.horizontalLayout_3.addWidget(self.OverwriteCB)
        self.XilinxLibCB = QCheckBox(TbGen)
        self.XilinxLibCB.setObjectName("XilinxLibCB")
        self.horizontalLayout_3.addWidget(self.XilinxLibCB)
        self.LogAllCB = QCheckBox(TbGen)
        self.LogAllCB.setObjectName("LogAllCB")
        self.horizontalLayout_3.addWidget(self.LogAllCB)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.TbGenBT = QPushButton(TbGen)
        self.TbGenBT.setObjectName("TbGenBT")
        self.verticalLayout.addWidget(self.TbGenBT)

        self.retranslateUi(TbGen)

        self.DutBrowseBT_SS(TbGen)
        self.OupBrowseBT_SS(TbGen)
        self.SrcAddBT_SS(TbGen)
        self.FileTW_SS(TbGen)
        self.SrcRemoveBT_SS(TbGen)
        self.XilinxLibCB_SS(TbGen)
        self.TbGenBT_SS(TbGen)
        QtCore.QMetaObject.connectSlotsByName(TbGen)

        self.DutFileFlag = False
        self.TbFileFlag = False
        self.CurrentTWRowSet = 0
        self.CurrentTWType = ""
        self.OupDirPath = ""
        self.DutFilePath = ""
        self.TbPath = ''
        self.LogAll = False
        self.XiinxLib = False
        self.RelativePath = False
        self.OverWrite = False
        self.SourceList = []
        self.LastPath = ''
        self.SetCB("Default")
        self.TbCreateDone = False
示例#30
0
def DescribeInstances(ui, AccessKeyID, AccessKeySecret):
    ui.pushButton.setEnabled(False)
    ui.pushButton.setText('正在查询')
    RegionIds = {
        "cn-hangzhou": "华东1(杭州)",
        "cn-chengdu": "成都",
        "cn-qingdao": "华北1(青岛)",
        "cn-beijing": "华北2(北京)",
        "cn-huhehaote": "华北5(呼和浩特)",
        "cn-shanghai": "华东2(上海)",
        "cn-shenzhen": "华南1(深圳)",
        "cn-zhangjiakou": "华北3(张家口)",
        "cn-hongkong": "香港",
        "ap-southeast-1": "新加坡",
        "ap-southeast-2": "澳大利亚(悉尼)",
        "ap-southeast-3": "马来西亚(吉隆坡)",
        "ap-southeast-5": "印度尼西亚(雅加达)",
        "ap-northeast-1": "日本(东京)",
        "us-west-1": "美国(硅谷)",
        "us-east-1": "美国(弗吉尼亚)",
        "eu-central-1": "德国(法兰克福)",
        "me-east-1": "阿联酋(迪拜)",
        "ap-south-1": "印度(孟买)",
        "eu-west-1": "英国(伦敦)",
        "cn-shenzhen-finance-1": "深圳金融云",
        "cn-shanghai-finance-1": "上海金融云",
        "cn-north-2-gov-1": "华北 2 阿里政务云1",
        "cn-heyuan": "华南2(河源)"
    }
    for RegionId in RegionIds:
        client = AcsClient(AccessKeyID, AccessKeySecret, RegionId)
        # print(RegionId)

        try:
            request = DescribeInstancesRequest()
            request.set_accept_format('json')
            request.set_PageNumber(1)
            request.set_PageSize(100)

            response = client.do_action_with_exception(request)
            #print(json.loads(response))
        except:
            #print('请检查输入Key与Secret值,或重新执行')
            ui.pushButton.setText('查询')
            ui.pushButton.setEnabled(True)
            return ui, '请检查输入Key与Secret值,或重新执行'
        if json.loads(response)['TotalCount'] == 0:
            #print(RegionId)
            if RegionId == 'cn-heyuan':
                ui.pushButton.setText('查询')
                ui.pushButton.setEnabled(True)
                return ui, '查询完成'
            else:

                continue
        # python2:  print(response)
        # print(str(response, encoding='utf-8'))
        # item1 = json.loads(response)['Instances']['Instance'][0]['OSName']
        PrivateIps = ''
        PublicIps = ''

        TotalCount = json.loads(response)['TotalCount']
        pages = math.ceil(float(TotalCount / 100))
        for page in range(pages):
            print(page)
            if page == pages - 1:
                num = TotalCount % 100
            else:
                num = 100
            for i in range(num):

                row_cnt = ui.tableWidget.rowCount()  # 读取行
                ui.tableWidget.insertRow(row_cnt)  # 创建行
                #print(json.loads(response)['Instances']['Instance'][i]['VpcAttributes']['PrivateIpAddress']['IpAddress'])
                for PrivateIp in json.loads(response)['Instances']['Instance'][
                        i]['VpcAttributes']['PrivateIpAddress']['IpAddress']:
                    PrivateIps = str(PrivateIp) + ';'
                    # print(PrivateIps)
                for PublicIp in json.loads(response)['Instances']['Instance'][
                        i]['PublicIpAddress']['IpAddress']:
                    PublicIps = str(PublicIp) + ';'
                    # print(PrivateIps)
                for SecurityGroup in json.loads(response)['Instances'][
                        'Instance'][i]['SecurityGroupIds']['SecurityGroupId']:
                    SecurityGroups = str(SecurityGroup) + ';'
                    # print(PrivateIps)

                InstanceId = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]
                    ['InstanceId'])
                RegionId = QTableWidgetItem(RegionIds[json.loads(
                    response)['Instances']['Instance'][i]['RegionId']])
                HostName = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]
                    ['HostName'])
                OSName = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]['OSName'])
                InstanceNetworkType = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]['Status'])
                PrivateIpAddress = QTableWidgetItem(PrivateIps)
                PublicIpAddress = QTableWidgetItem(PublicIps)
                SecurityGroupIds = QTableWidgetItem(SecurityGroup)
                yunzhushou = QTableWidgetItem('待检测')
                performance = QTableWidgetItem(
                    str(
                        json.loads(response)['Instances']['Instance'][i]
                        ['Cpu']) + '核处理器\n' + str(
                            json.loads(response)['Instances']['Instance'][0]
                            ['Memory']) + 'MB内存')
                CreationTime = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]
                    ['CreationTime'])
                ExpiredTime = QTableWidgetItem(
                    json.loads(response)['Instances']['Instance'][i]
                    ['ExpiredTime'])

                ui.tableWidget.setItem(row_cnt, 0, InstanceId)
                ui.tableWidget.setItem(row_cnt, 1, RegionId)
                ui.tableWidget.setItem(row_cnt, 2, HostName)
                ui.tableWidget.setItem(row_cnt, 3, OSName)
                ui.tableWidget.setItem(row_cnt, 4, InstanceNetworkType)
                ui.tableWidget.setItem(row_cnt, 5, PrivateIpAddress)
                ui.tableWidget.setItem(row_cnt, 6, PublicIpAddress)
                ui.tableWidget.setItem(row_cnt, 7, SecurityGroupIds)
                ui.tableWidget.setItem(row_cnt, 8, yunzhushou)
                ui.tableWidget.setItem(row_cnt, 9, performance)
                ui.tableWidget.setItem(row_cnt, 10, CreationTime)
                ui.tableWidget.setItem(row_cnt, 11, ExpiredTime)