def _create_categories_boxes(self, size_policy): self._boxes_for_category = {} current_row = 0 for major_item_category in iterate_enum(ItemCategory): if not major_item_category.is_major_category and major_item_category != ItemCategory.ENERGY_TANK: continue category_button = QToolButton(self.major_items_box) category_button.setGeometry(QRect(20, 30, 24, 21)) category_button.setText("+") category_label = QLabel(self.major_items_box) category_label.setSizePolicy(size_policy) category_label.setText(major_item_category.long_name) category_box = QGroupBox(self.major_items_box) category_box.setSizePolicy(size_policy) category_box.setObjectName(f"category_box {major_item_category}") category_layout = QGridLayout(category_box) category_layout.setObjectName(f"category_layout {major_item_category}") self.major_items_layout.addWidget(category_button, 2 * current_row + 1, 0, 1, 1) self.major_items_layout.addWidget(category_label, 2 * current_row + 1, 1, 1, 1) self.major_items_layout.addWidget(category_box, 2 * current_row + 2, 0, 1, 2) self._boxes_for_category[major_item_category] = category_box, category_layout, {} category_button.clicked.connect(partial(_toggle_box_visibility, category_button, category_box)) category_box.setVisible(False) current_row += 1
class Ui_dlgAddUser(QDialog): def __init__(self): super().__init__() self.setupUi() def setupUi(self): self.setObjectName("dlgAddUser") self.resize(335, 154) self.setWindowFlags(Qt.MSWindowsFixedSizeDialogHint) self.gridLayout = QGridLayout(self) self.gridLayout.setObjectName("gridLayout") self.groupBox = QGroupBox(self) self.groupBox.setObjectName("groupBox") self.verticalLayout = QVBoxLayout(self.groupBox) self.verticalLayout.setObjectName("verticalLayout") self.leFullName = QLineEdit(self.groupBox) self.leFullName.setObjectName("leFullName") self.verticalLayout.addWidget(self.leFullName) self.leUsuario = QLineEdit(self.groupBox) self.leUsuario.setObjectName("leUsuario") self.verticalLayout.addWidget(self.leUsuario) self.lePassword = QLineEdit(self.groupBox) self.lePassword.setObjectName("lePassword") self.lePassword.setEchoMode(QLineEdit.Password) self.verticalLayout.addWidget(self.lePassword) self.gridLayout.addWidget(self.groupBox, 0, 0, 1, 1) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.pbAddUser = QPushButton(self) self.pbAddUser.setObjectName("pbAddUser") self.horizontalLayout.addWidget(self.pbAddUser) self.pbCancel = QPushButton(self) self.pbCancel.setObjectName("pbCancel") self.horizontalLayout.addWidget(self.pbCancel) self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1) self.retranslateUi() QMetaObject.connectSlotsByName(self) def retranslateUi(self): self.setWindowTitle( QApplication.translate("dlgAddUser", "Dialog", None, -1)) self.groupBox.setTitle( QApplication.translate("dlgAddUser", "GroupBox", None, -1)) self.leFullName.setPlaceholderText( QApplication.translate("dlgAddUser", "Ingresar nombre completo", None, -1)) self.leUsuario.setPlaceholderText( QApplication.translate("dlgAddUser", "Ingrese nombre de usuario", None, -1)) self.lePassword.setPlaceholderText( QApplication.translate("dlgAddUser", "Ingrese su clave", None, -1)) self.pbAddUser.setText( QApplication.translate("dlgAddUser", "Add user", None, -1)) self.pbCancel.setText( QApplication.translate("dlgAddUser", "Cancel", None, -1))
class Funcoes: def limpa_formulario(self, frm): for i in reversed(range(len(frm.children()))): frm.children()[i].deleteLater() print(frm.layout()) def set_grid_layout_conteudo(self, frame): self.grl_fra_conteudo = QGridLayout(frame) self.grl_fra_conteudo.setSpacing(0) self.grl_fra_conteudo.setObjectName(u"grl_fra_conteudo") self.grl_fra_conteudo.setSizeConstraint(QLayout.SetMinimumSize) self.grl_fra_conteudo.setContentsMargins(0, 0, 0, 0)
def _create_categories_boxes(self, item_database: ItemDatabase, size_policy): self._boxes_for_category = {} categories = set() for major_item in item_database.major_items.values(): if not major_item.required: categories.add(major_item.item_category) all_categories = list(iterate_enum(ItemCategory)) current_row = 0 for major_item_category in sorted( categories, key=lambda it: all_categories.index(it)): category_button = QToolButton(self.major_items_box) category_button.setGeometry(QRect(20, 30, 24, 21)) category_button.setText("+") category_label = QLabel(self.major_items_box) category_label.setSizePolicy(size_policy) category_label.setText(major_item_category.long_name) category_box = QGroupBox(self.major_items_box) category_box.setSizePolicy(size_policy) category_box.setObjectName(f"category_box {major_item_category}") category_layout = QGridLayout(category_box) category_layout.setObjectName( f"category_layout {major_item_category}") self.major_items_layout.addWidget(category_button, 2 * current_row + 1, 0, 1, 1) self.major_items_layout.addWidget(category_label, 2 * current_row + 1, 1, 1, 1) self.major_items_layout.addWidget(category_box, 2 * current_row + 2, 0, 1, 2) self._boxes_for_category[ major_item_category] = category_box, category_layout, {} category_button.clicked.connect( partial(_toggle_box_visibility, category_button, category_box)) category_box.setVisible(False) current_row += 1
def _create_categories_boxes(self, item_database: ItemDatabase, size_policy): self._boxes_for_category = {} categories = set() for major_item in item_database.major_items.values(): if not major_item.required: categories.add(major_item.item_category) all_categories = list(iterate_enum(ItemCategory)) for major_item_category in sorted(categories, key=lambda it: all_categories.index(it)): category_box = QGroupBox(self.scroll_area_contents) category_box.setTitle(major_item_category.long_name) category_box.setSizePolicy(size_policy) category_box.setObjectName(f"category_box {major_item_category}") category_layout = QGridLayout(category_box) category_layout.setObjectName(f"category_layout {major_item_category}") self.item_pool_layout.addWidget(category_box) self._boxes_for_category[major_item_category] = category_box, category_layout, {}
def _create_ammo_pickup_boxes(self, size_policy, item_database: ItemDatabase): """ Creates the GroupBox with SpinBoxes for selecting the pickup count of all the ammo :param item_database: :return: """ self._ammo_maximum_spinboxes = collections.defaultdict(list) self._ammo_pickup_widgets = {} resource_database = default_database.resource_database_for(self.game) broad_to_category = { ItemCategory.BEAM_RELATED: ItemCategory.BEAM, ItemCategory.MORPH_BALL_RELATED: ItemCategory.MORPH_BALL, ItemCategory.MISSILE_RELATED: ItemCategory.MISSILE, } for ammo in item_database.ammo.values(): category_box, category_layout, _ = self._boxes_for_category[ broad_to_category[ammo.broad_category]] pickup_box = QGroupBox(category_box) pickup_box.setSizePolicy(size_policy) pickup_box.setTitle(ammo.name + "s") layout = QGridLayout(pickup_box) layout.setObjectName(f"{ammo.name} Box Layout") current_row = 0 for ammo_item in ammo.items: item = resource_database.get_by_type_and_index( ResourceType.ITEM, ammo_item) target_count_label = QLabel(pickup_box) target_count_label.setText(f"{item.long_name} Target" if len( ammo.items) > 1 else "Target count") maximum_spinbox = QSpinBox(pickup_box) maximum_spinbox.setMaximum(ammo.maximum) maximum_spinbox.valueChanged.connect( partial(self._on_update_ammo_maximum_spinbox, ammo_item)) self._ammo_maximum_spinboxes[ammo_item].append(maximum_spinbox) layout.addWidget(target_count_label, current_row, 0) layout.addWidget(maximum_spinbox, current_row, 1) current_row += 1 count_label = QLabel(pickup_box) count_label.setText("Pickup Count") count_label.setToolTip( "How many instances of this expansion should be placed.") pickup_spinbox = QSpinBox(pickup_box) pickup_spinbox.setMaximum(AmmoState.maximum_pickup_count()) pickup_spinbox.valueChanged.connect( partial(self._on_update_ammo_pickup_spinbox, ammo)) layout.addWidget(count_label, current_row, 0) layout.addWidget(pickup_spinbox, current_row, 1) current_row += 1 if ammo.temporaries: require_major_item_check = QCheckBox(pickup_box) require_major_item_check.setText( "Requires the major item to work?") require_major_item_check.stateChanged.connect( partial(self._on_update_ammo_require_major_item, ammo)) layout.addWidget(require_major_item_check, current_row, 0, 1, 2) current_row += 1 else: require_major_item_check = None expected_count = QLabel(pickup_box) expected_count.setWordWrap(True) expected_count.setText(_EXPECTED_COUNT_TEXT_TEMPLATE) expected_count.setToolTip( "Some expansions may provide 1 extra, even with no variance, if the total count " "is not divisible by the pickup count.") layout.addWidget(expected_count, current_row, 0, 1, 2) current_row += 1 self._ammo_pickup_widgets[ammo] = AmmoPickupWidgets( pickup_spinbox, expected_count, pickup_box, require_major_item_check) category_layout.addWidget(pickup_box)
class Ui_Whatspy(object): def setupUi(self, Ventana): if not Ventana.objectName(): Ventana.setObjectName(u"Ventana") Ventana.resize(424, 600) Ventana.setAttribute(Qt.WA_TranslucentBackground) Ventana.setWindowFlag(Qt.FramelessWindowHint) Ventana.setStyleSheet( u"*{\n" " font-family: century gothic;\n" "}\n" "\n" "QSizeGrip{\n" " background: transparent;\n" "}\n" "\n" "QLabel{\n" " color: white;\n" "}\n" "\n" "QScrollBar:vertical {\n" " border: 1px solid #999999;\n" " width:12px; \n" " margin: 0px 0px 0px 0px;\n" " }\n" " QScrollBar::handle:vertical { \n" " \n" " min-height: 0px;\n" " border: 0px solid red;\n" " border-radius: 4px;\n" " background-color: rgb(182, 182, 182);\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: 0 px;\n" " subcontrol-position: top;\n" " subcontrol-origin: margin;\n" " }") self.gridLayout = QGridLayout(Ventana) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setContentsMargins(0, 0, 0, 0) self.VentanaFrame = QFrame(Ventana) self.VentanaFrame.setObjectName(u"VentanaFrame") self.VentanaFrame.setStyleSheet( u"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" "}") self.VentanaFrame.setFrameShape(QFrame.StyledPanel) self.VentanaFrame.setFrameShadow(QFrame.Raised) self.gridLayout_2 = QGridLayout(self.VentanaFrame) self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout_2.setContentsMargins(-1, 0, -1, -1) self.Contenedor = QFrame(self.VentanaFrame) self.Contenedor.setObjectName(u"Contenedor") self.Contenedor.setStyleSheet(u"QFrame#Contenedor{\n" " background-color: #128C7E;\n" " border-radius: 5px;\n" "}") self.Contenedor.setFrameShape(QFrame.StyledPanel) self.Contenedor.setFrameShadow(QFrame.Raised) self.gridLayout_5 = QGridLayout(self.Contenedor) self.gridLayout_5.setObjectName(u"gridLayout_5") self.gridLayout_5.setContentsMargins(0, 10, 0, 10) self.frameAcciones = QFrame(self.Contenedor) self.frameAcciones.setObjectName(u"frameAcciones") 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(u"") self.frameAcciones.setFrameShape(QFrame.StyledPanel) self.frameAcciones.setFrameShadow(QFrame.Raised) self.gridLayout_4 = QGridLayout(self.frameAcciones) self.gridLayout_4.setObjectName(u"gridLayout_4") self.btnExportar = QPushButton(self.frameAcciones) self.btnExportar.setObjectName(u"btnExportar") sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum) sizePolicy1.setHorizontalStretch(0) sizePolicy1.setVerticalStretch(0) sizePolicy1.setHeightForWidth( self.btnExportar.sizePolicy().hasHeightForWidth()) self.btnExportar.setSizePolicy(sizePolicy1) self.btnExportar.setMinimumSize(QSize(100, 30)) self.btnExportar.setCursor(QCursor(Qt.PointingHandCursor)) self.btnExportar.setStyleSheet(u"QPushButton#btnExportar{\n" "background-color: #ecf0f1;\n" "border-radius: 5px;\n" "}\n" "\n" "QPushButton#btnExportar:hover{\n" "background-color: #bdc3c7;\n" "border-radius: 5px;\n" "}") icon1 = QIcon() icon1.addFile(u":/logo/exportar.png", QSize(), QIcon.Normal, QIcon.Off) self.btnExportar.setIcon(icon1) self.btnExportar.setIconSize(QSize(16, 16)) self.gridLayout_4.addWidget(self.btnExportar, 0, 2, 1, 1) self.btnAbrir = QPushButton(self.frameAcciones) self.btnAbrir.setObjectName(u"btnAbrir") sizePolicy1.setHeightForWidth( self.btnAbrir.sizePolicy().hasHeightForWidth()) self.btnAbrir.setSizePolicy(sizePolicy1) self.btnAbrir.setMinimumSize(QSize(100, 30)) self.btnAbrir.setCursor(QCursor(Qt.PointingHandCursor)) self.btnAbrir.setStyleSheet(u"QPushButton#btnAbrir{\n" "background-color: #ecf0f1;\n" "border-radius: 5px;\n" "}\n" "\n" "QPushButton#btnAbrir:hover{\n" "background-color: #bdc3c7;\n" "}") icon2 = QIcon() icon2.addFile(u":/logo/anadir.png", QSize(), QIcon.Normal, QIcon.Off) self.btnAbrir.setIcon(icon2) self.btnAbrir.setIconSize(QSize(16, 16)) self.gridLayout_4.addWidget(self.btnAbrir, 0, 1, 1, 1) self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_4.addItem(self.horizontalSpacer_2, 0, 0, 1, 1) self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_4.addItem(self.horizontalSpacer_3, 0, 3, 1, 1) self.gridLayout_5.addWidget(self.frameAcciones, 2, 0, 1, 1) self.frameTabla = QFrame(self.Contenedor) self.frameTabla.setObjectName(u"frameTabla") sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) sizePolicy2.setHeightForWidth( self.frameTabla.sizePolicy().hasHeightForWidth()) self.frameTabla.setSizePolicy(sizePolicy2) self.frameTabla.setStyleSheet(u"") self.frameTabla.setFrameShape(QFrame.StyledPanel) self.frameTabla.setFrameShadow(QFrame.Raised) self.horizontalLayout_2 = QHBoxLayout(self.frameTabla) self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_2.addItem(self.horizontalSpacer_4) self.tableWidget = QTableWidget(self.frameTabla) if (self.tableWidget.columnCount() < 2): self.tableWidget.setColumnCount(2) __qtablewidgetitem = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem) __qtablewidgetitem1 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, __qtablewidgetitem1) if (self.tableWidget.rowCount() < 50): self.tableWidget.setRowCount(50) __qtablewidgetitem2 = QTableWidgetItem() self.tableWidget.setItem(0, 0, __qtablewidgetitem2) self.tableWidget.setObjectName(u"tableWidget") sizePolicy1.setHeightForWidth( self.tableWidget.sizePolicy().hasHeightForWidth()) self.tableWidget.setSizePolicy(sizePolicy1) self.tableWidget.setMinimumSize(QSize(350, 0)) self.tableWidget.setStyleSheet(u"QTableWidget#tableWidget:item{\n" "color:white;\n" "font-weight: bold;\n" "}\n" "\n" "QTableWidget#tableWidget{\n" "border-radius:4px;\n" "background-color: #128C7E;\n" "}") self.tableWidget.setRowCount(50) self.horizontalLayout_2.addWidget(self.tableWidget) self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_2.addItem(self.horizontalSpacer_5) self.gridLayout_5.addWidget(self.frameTabla, 3, 0, 1, 1) self.header = QFrame(self.Contenedor) self.header.setObjectName(u"header") sizePolicy.setHeightForWidth( self.header.sizePolicy().hasHeightForWidth()) self.header.setSizePolicy(sizePolicy) self.header.setStyleSheet(u"") self.header.setFrameShape(QFrame.StyledPanel) self.header.setFrameShadow(QFrame.Raised) self.horizontalLayout = QHBoxLayout(self.header) self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalLayout.setContentsMargins(0, 0, 5, 0) self.horizontalSpacer = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(self.horizontalSpacer) self.btnVerde = QPushButton(self.header) self.btnVerde.setObjectName(u"btnVerde") self.btnVerde.setMaximumSize(QSize(16, 16)) self.btnVerde.setCursor(QCursor(Qt.PointingHandCursor)) self.btnVerde.setStyleSheet(u"QPushButton#btnVerde{\n" " background-color: #27ae60;\n" " border-radius: 8px;\n" "}\n" "\n" "QPushButton#btnVerde:hover{\n" " background-color: #10ac84;\n" " border-radius: 8px;\n" "}") self.horizontalLayout.addWidget(self.btnVerde) self.btnAmarillo = QPushButton(self.header) self.btnAmarillo.setObjectName(u"btnAmarillo") self.btnAmarillo.setMaximumSize(QSize(16, 16)) self.btnAmarillo.setCursor(QCursor(Qt.PointingHandCursor)) self.btnAmarillo.setStyleSheet(u"QPushButton#btnAmarillo{\n" "background-color: yellow;\n" "border-radius: 8px;\n" "}\n" "\n" "QPushButton#btnAmarillo:hover{\n" "background-color: #f1c40f;\n" "border-radius: 8px;\n" "}\n" "") self.horizontalLayout.addWidget(self.btnAmarillo) self.btnRojo = QPushButton(self.header) self.btnRojo.setObjectName(u"btnRojo") self.btnRojo.setMaximumSize(QSize(16, 16)) self.btnRojo.setCursor(QCursor(Qt.PointingHandCursor)) self.btnRojo.setStyleSheet(u"QPushButton#btnRojo{\n" "background-color: red;\n" "border-radius: 8px;\n" "}\n" "\n" "QPushButton#btnRojo:hover{\n" "background-color: #e74c3c;\n" "border-radius: 8px;\n" "}") self.horizontalLayout.addWidget(self.btnRojo) self.gridLayout_5.addWidget(self.header, 0, 0, 1, 1) self.frameLogo = QFrame(self.Contenedor) self.frameLogo.setObjectName(u"frameLogo") sizePolicy.setHeightForWidth( self.frameLogo.sizePolicy().hasHeightForWidth()) self.frameLogo.setSizePolicy(sizePolicy) self.frameLogo.setStyleSheet(u"") self.frameLogo.setFrameShape(QFrame.StyledPanel) self.frameLogo.setFrameShadow(QFrame.Raised) self.gridLayout_3 = QGridLayout(self.frameLogo) self.gridLayout_3.setObjectName(u"gridLayout_3") self.lblWhatsPy = QLabel(self.frameLogo) self.lblWhatsPy.setObjectName(u"lblWhatsPy") font = QFont() font.setFamily(u"century gothic") font.setBold(True) font.setWeight(75) self.lblWhatsPy.setFont(font) self.lblWhatsPy.setAlignment(Qt.AlignCenter) self.gridLayout_3.addWidget(self.lblWhatsPy, 1, 0, 1, 1) self.icon = QLabel(self.frameLogo) self.icon.setObjectName(u"icon") self.icon.setMaximumSize(QSize(70, 70)) self.icon.setPixmap(QPixmap(u":/logo/logo.png")) self.icon.setScaledContents(True) self.gridLayout_3.addWidget(self.icon, 0, 0, 1, 1) self.gridLayout_5.addWidget(self.frameLogo, 1, 0, 1, 1) self.label = QLabel(self.Contenedor) self.label.setObjectName(u"label") sizePolicy.setHeightForWidth( self.label.sizePolicy().hasHeightForWidth()) self.label.setSizePolicy(sizePolicy) self.label.setFont(font) self.label.setAlignment(Qt.AlignCenter) self.gridLayout_5.addWidget(self.label, 4, 0, 1, 1) self.gridLayout_2.addWidget(self.Contenedor, 0, 0, 1, 1) self.lblGrip = QLabel(self.VentanaFrame) self.lblGrip.setObjectName(u"lblGrip") sizePolicy.setHeightForWidth( self.lblGrip.sizePolicy().hasHeightForWidth()) self.lblGrip.setSizePolicy(sizePolicy) self.lblGrip.setMaximumSize(QSize(10, 10)) self.lblGrip.setCursor(QCursor(Qt.BusyCursor)) self.lblGrip.setLayoutDirection(Qt.RightToLeft) self.lblGrip.setStyleSheet( u"QLabel#lblGrip:hover{\n" " background: rgb(18, 140, 126);\n" " border-radius: 5px;\n" "}\n" "\n" "QLabel#lblGrip{\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.gridLayout_2.addWidget(self.lblGrip, 1, 0, 1, 1) self.gridLayout.addWidget(self.VentanaFrame, 0, 0, 1, 1) self.retranslateUi(Ventana) QMetaObject.connectSlotsByName(Ventana) # setupUi def retranslateUi(self, Ventana): Ventana.setWindowTitle( QCoreApplication.translate("Ventana", u"Form", None)) self.btnExportar.setText( QCoreApplication.translate("Ventana", u"Exportar", None)) self.btnAbrir.setText( QCoreApplication.translate("Ventana", u"Abrir TXT", None)) ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(0) ___qtablewidgetitem.setText( QCoreApplication.translate("Ventana", u"N\u00fameros", None)) ___qtablewidgetitem1 = self.tableWidget.horizontalHeaderItem(1) ___qtablewidgetitem1.setText( QCoreApplication.translate("Ventana", u"Mensajes", None)) __sortingEnabled = self.tableWidget.isSortingEnabled() self.tableWidget.setSortingEnabled(False) self.tableWidget.setSortingEnabled(__sortingEnabled) self.btnVerde.setText("") self.btnAmarillo.setText("") self.btnRojo.setText("") self.lblWhatsPy.setText( QCoreApplication.translate("Ventana", u"WhatsPy", None)) self.icon.setText("") self.label.setText( QCoreApplication.translate( "Ventana", u"Todav\u00eda no haz cargado ning\u00fan chat", None)) self.lblGrip.setText("")
def _create_ammo_pickup_boxes(self, size_policy, item_database: ItemDatabase): """ Creates the GroupBox with SpinBoxes for selecting the pickup count of all the ammo :param item_database: :return: """ self._ammo_maximum_spinboxes = collections.defaultdict(list) self._ammo_pickup_widgets = {} resource_database = default_prime2_resource_database() for ammo in item_database.ammo.values(): title_layout = QHBoxLayout() title_layout.setObjectName(f"{ammo.name} Title Horizontal Layout") expand_ammo_button = QToolButton(self.ammo_box) expand_ammo_button.setGeometry(QRect(20, 30, 24, 21)) expand_ammo_button.setText("+") title_layout.addWidget(expand_ammo_button) category_label = QLabel(self.ammo_box) category_label.setSizePolicy(size_policy) category_label.setText(ammo.name + "s") title_layout.addWidget(category_label) pickup_box = QGroupBox(self.ammo_box) pickup_box.setSizePolicy(size_policy) layout = QGridLayout(pickup_box) layout.setObjectName(f"{ammo.name} Box Layout") current_row = 0 for ammo_item in ammo.items: item = resource_database.get_by_type_and_index(ResourceType.ITEM, ammo_item) target_count_label = QLabel(pickup_box) target_count_label.setText(f"{item.long_name} Target" if len(ammo.items) > 1 else "Target count") maximum_spinbox = QSpinBox(pickup_box) maximum_spinbox.setMaximum(ammo.maximum) maximum_spinbox.valueChanged.connect(partial(self._on_update_ammo_maximum_spinbox, ammo_item)) self._ammo_maximum_spinboxes[ammo_item].append(maximum_spinbox) layout.addWidget(target_count_label, current_row, 0) layout.addWidget(maximum_spinbox, current_row, 1) current_row += 1 count_label = QLabel(pickup_box) count_label.setText("Pickup Count") count_label.setToolTip("How many instances of this expansion should be placed.") pickup_spinbox = QSpinBox(pickup_box) pickup_spinbox.setMaximum(AmmoState.maximum_pickup_count()) pickup_spinbox.valueChanged.connect(partial(self._on_update_ammo_pickup_spinbox, ammo)) layout.addWidget(count_label, current_row, 0) layout.addWidget(pickup_spinbox, current_row, 1) current_row += 1 if ammo.temporaries: require_major_item_check = QCheckBox(pickup_box) require_major_item_check.setText("Requires the major item to work?") require_major_item_check.stateChanged.connect(partial(self._on_update_ammo_require_major_item, ammo)) layout.addWidget(require_major_item_check, current_row, 0, 1, 2) current_row += 1 else: require_major_item_check = None expected_count = QLabel(pickup_box) expected_count.setWordWrap(True) expected_count.setText(_EXPECTED_COUNT_TEXT_TEMPLATE) expected_count.setToolTip("Some expansions may provide 1 extra, even with no variance, if the total count " "is not divisible by the pickup count.") layout.addWidget(expected_count, current_row, 0, 1, 2) current_row += 1 self._ammo_pickup_widgets[ammo] = (pickup_spinbox, expected_count, expand_ammo_button, category_label, pickup_box, require_major_item_check) expand_ammo_button.clicked.connect(partial(_toggle_box_visibility, expand_ammo_button, pickup_box)) pickup_box.setVisible(False) self.ammo_layout.addLayout(title_layout) self.ammo_layout.addWidget(pickup_box)
class Ui_dlg_new_tool(object): def setupUi(self, dlg_new_tool): if not dlg_new_tool.objectName(): dlg_new_tool.setObjectName(u"dlg_new_tool") dlg_new_tool.resize(570, 463) dlg_new_tool.setModal(True) self.gridLayout_2 = QGridLayout(dlg_new_tool) self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout = QGridLayout() self.gridLayout.setObjectName(u"gridLayout") self.te_description = QTextEdit(dlg_new_tool) self.te_description.setObjectName(u"te_description") self.gridLayout.addWidget(self.te_description, 3, 0, 1, 6) self.label = QLabel(dlg_new_tool) self.label.setObjectName(u"label") self.gridLayout.addWidget(self.label, 0, 0, 1, 1) self.lbl_file_exists = QLabel(dlg_new_tool) self.lbl_file_exists.setObjectName(u"lbl_file_exists") self.lbl_file_exists.setPixmap(QPixmap(u"../resources/OK.png")) self.gridLayout.addWidget(self.lbl_file_exists, 0, 5, 1, 1) self.label_5 = QLabel(dlg_new_tool) self.label_5.setObjectName(u"label_5") self.gridLayout.addWidget(self.label_5, 0, 3, 1, 1) self.chk_mask_required = QCheckBox(dlg_new_tool) self.chk_mask_required.setObjectName(u"chk_mask_required") self.gridLayout.addWidget(self.chk_mask_required, 5, 0, 1, 6) self.label_4 = QLabel(dlg_new_tool) self.label_4.setObjectName(u"label_4") self.gridLayout.addWidget(self.label_4, 0, 2, 1, 1) self.le_tool_name = QLineEdit(dlg_new_tool) self.le_tool_name.setObjectName(u"le_tool_name") self.gridLayout.addWidget(self.le_tool_name, 0, 1, 1, 1) self.label_3 = QLabel(dlg_new_tool) self.label_3.setObjectName(u"label_3") self.gridLayout.addWidget(self.label_3, 1, 3, 1, 1) self.le_file_name = QLineEdit(dlg_new_tool) self.le_file_name.setObjectName(u"le_file_name") self.le_file_name.setReadOnly(True) self.gridLayout.addWidget(self.le_file_name, 0, 4, 1, 1) self.label_6 = QLabel(dlg_new_tool) self.label_6.setObjectName(u"label_6") font = QFont() font.setPointSize(8) self.label_6.setFont(font) self.gridLayout.addWidget(self.label_6, 1, 2, 1, 1) self.le_class_name = QLineEdit(dlg_new_tool) self.le_class_name.setObjectName(u"le_class_name") self.le_class_name.setReadOnly(True) self.gridLayout.addWidget(self.le_class_name, 1, 4, 1, 1) self.label_2 = QLabel(dlg_new_tool) self.label_2.setObjectName(u"label_2") self.gridLayout.addWidget(self.label_2, 2, 0, 1, 6) self.label_7 = QLabel(dlg_new_tool) self.label_7.setObjectName(u"label_7") self.gridLayout.addWidget(self.label_7, 4, 0, 1, 1) self.le_package_name = QLineEdit(dlg_new_tool) self.le_package_name.setObjectName(u"le_package_name") self.gridLayout.addWidget(self.le_package_name, 4, 1, 1, 5) self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 2) self.verticalLayout_4 = QVBoxLayout() self.verticalLayout_4.setObjectName(u"verticalLayout_4") self.groupBox = QGroupBox(dlg_new_tool) self.groupBox.setObjectName(u"groupBox") self.groupBox.setCheckable(False) self.verticalLayout = QVBoxLayout(self.groupBox) self.verticalLayout.setObjectName(u"verticalLayout") self.rb_output_image = QRadioButton(self.groupBox) self.rb_output_image.setObjectName(u"rb_output_image") self.rb_output_image.setChecked(True) self.verticalLayout.addWidget(self.rb_output_image) self.rb_output_mask = QRadioButton(self.groupBox) self.rb_output_mask.setObjectName(u"rb_output_mask") self.verticalLayout.addWidget(self.rb_output_mask) self.rb_output_data = QRadioButton(self.groupBox) self.rb_output_data.setObjectName(u"rb_output_data") self.verticalLayout.addWidget(self.rb_output_data) self.rb_output_none = QRadioButton(self.groupBox) self.rb_output_none.setObjectName(u"rb_output_none") self.verticalLayout.addWidget(self.rb_output_none) self.verticalLayout_4.addWidget(self.groupBox) self.gb_pipeline_tool_groups = QGroupBox(dlg_new_tool) self.gb_pipeline_tool_groups.setObjectName(u"gb_pipeline_tool_groups") self.verticalLayout_4.addWidget(self.gb_pipeline_tool_groups) self.verticalSpacer = QSpacerItem( 20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding ) self.verticalLayout_4.addItem(self.verticalSpacer) self.gridLayout_2.addLayout(self.verticalLayout_4, 1, 0, 1, 1) self.verticalLayout_3 = QVBoxLayout() self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.groupBox_2 = QGroupBox(dlg_new_tool) self.groupBox_2.setObjectName(u"groupBox_2") self.verticalLayout_2 = QVBoxLayout(self.groupBox_2) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.rb_rt_yes = QRadioButton(self.groupBox_2) self.rb_rt_yes.setObjectName(u"rb_rt_yes") self.verticalLayout_2.addWidget(self.rb_rt_yes) self.rb_rt_no = QRadioButton(self.groupBox_2) self.rb_rt_no.setObjectName(u"rb_rt_no") self.rb_rt_no.setChecked(True) self.verticalLayout_2.addWidget(self.rb_rt_no) self.rb_rt_widget = QRadioButton(self.groupBox_2) self.rb_rt_widget.setObjectName(u"rb_rt_widget") self.verticalLayout_2.addWidget(self.rb_rt_widget) self.rb_rt_property = QRadioButton(self.groupBox_2) self.rb_rt_property.setObjectName(u"rb_rt_property") self.verticalLayout_2.addWidget(self.rb_rt_property) self.verticalLayout_3.addWidget(self.groupBox_2) self.gb_no_pipeline_tool_groups = QGroupBox(dlg_new_tool) self.gb_no_pipeline_tool_groups.setObjectName(u"gb_no_pipeline_tool_groups") self.verticalLayout_3.addWidget(self.gb_no_pipeline_tool_groups) self.verticalSpacer_2 = QSpacerItem( 20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding ) self.verticalLayout_3.addItem(self.verticalSpacer_2) self.gridLayout_2.addLayout(self.verticalLayout_3, 1, 1, 1, 1) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalSpacer = QSpacerItem( 40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum ) self.horizontalLayout.addItem(self.horizontalSpacer) self.bt_save = QPushButton(dlg_new_tool) self.bt_save.setObjectName(u"bt_save") self.horizontalLayout.addWidget(self.bt_save) self.bt_cancel = QPushButton(dlg_new_tool) self.bt_cancel.setObjectName(u"bt_cancel") self.horizontalLayout.addWidget(self.bt_cancel) self.gridLayout_2.addLayout(self.horizontalLayout, 2, 1, 1, 1) self.gridLayout_2.setColumnStretch(0, 1) self.gridLayout_2.setColumnStretch(1, 1) self.retranslateUi(dlg_new_tool) QMetaObject.connectSlotsByName(dlg_new_tool) # setupUi def retranslateUi(self, dlg_new_tool): dlg_new_tool.setWindowTitle( QCoreApplication.translate("dlg_new_tool", u"New tool wizard", None) ) self.te_description.setPlaceholderText( QCoreApplication.translate( "dlg_new_tool", u"Write your tool's description here.\\nYou can use HTML tags", None, ) ) self.label.setText( QCoreApplication.translate("dlg_new_tool", u"Tool name:", None) ) self.lbl_file_exists.setText("") self.label_5.setText( QCoreApplication.translate("dlg_new_tool", u"File name:", None) ) self.chk_mask_required.setText( QCoreApplication.translate("dlg_new_tool", u"Requires mask in input", None) ) self.label_4.setText(u"\ud83e\udc62") self.label_6.setText(u"\ud83e\udc62") self.label_3.setText( QCoreApplication.translate("dlg_new_tool", u"Class name", None) ) self.label_2.setText( QCoreApplication.translate("dlg_new_tool", u"Description:", None) ) self.label_7.setText( QCoreApplication.translate("dlg_new_tool", u"Package:", None) ) self.groupBox.setTitle( QCoreApplication.translate("dlg_new_tool", u"Output:", None) ) self.rb_output_image.setText( QCoreApplication.translate("dlg_new_tool", u"Image", None) ) self.rb_output_mask.setText( QCoreApplication.translate("dlg_new_tool", u"Mask", None) ) self.rb_output_data.setText( QCoreApplication.translate("dlg_new_tool", u"Data", None) ) self.rb_output_none.setText( QCoreApplication.translate("dlg_new_tool", u"None", None) ) self.gb_pipeline_tool_groups.setTitle( QCoreApplication.translate( "dlg_new_tool", u"Groups that can be added to pipelines", None ) ) self.groupBox_2.setTitle( QCoreApplication.translate("dlg_new_tool", u"Real time:", None) ) self.rb_rt_yes.setText(QCoreApplication.translate("dlg_new_tool", u"Yes", None)) self.rb_rt_no.setText(QCoreApplication.translate("dlg_new_tool", u"No", None)) self.rb_rt_widget.setText( QCoreApplication.translate("dlg_new_tool", u"Widget", None) ) self.rb_rt_property.setText( QCoreApplication.translate("dlg_new_tool", u"Property", None) ) self.gb_no_pipeline_tool_groups.setTitle( QCoreApplication.translate( "dlg_new_tool", u"Groups forbiden in pipelines", None ) ) self.bt_save.setText(QCoreApplication.translate("dlg_new_tool", u"Save", None)) self.bt_cancel.setText( QCoreApplication.translate("dlg_new_tool", u"Close", None) )
class Page2(WizardPage): __new_song_row = Signal(int, int, str, list) __songs_table = None __items = [{}, {}] def __init__(self): super().__init__() page2Layout = QVBoxLayout(self) table_header = QHBoxLayout() label0 = QLabel() label0.setObjectName("label0") table_header.addWidget(label0) table_header.addItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Minimum)) label1 = QLabel() label1.setObjectName("label1") table_header.addWidget(label1) page2Layout.addLayout(table_header) hLine = QFrame(self.__songs_table) hLine.setFrameShape(QFrame.HLine) hLine.setFrameShadow(QFrame.Sunken) page2Layout.addWidget(hLine) scrollArea = QScrollArea() scrollClient = QWidget() scrollClient.setObjectName("scrollClient") scrollArea.setWidgetResizable(True) scrollArea.setWidget(scrollClient) page2Layout.addWidget(scrollArea) self.__new_song_row.connect(self.__add_song_row) def getItems(self): return self.__items @Slot(int) def __selected_item_changed(self, side, pos, combo): self.__items[side]["tracks"][pos]["dst"] = combo.currentData() if combo.currentData() is None: combo.setStyleSheet("QComboBox { border:0; } QComboBox:editable { color:rgb(127,0,0); }") else: combo.setStyleSheet("QComboBox { border:0; } QComboBox:editable { color:inherit; }") @Slot(int, int, str, list) def __add_song_row(self, side, pos, title, search_results): label = QLabel(title) label.setToolTip(title) label.setSizePolicy(QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Preferred)) self.__songs_table.addWidget(label, self.__songs_table.rowCount(), side) combo = QComboBox() combo.currentIndexChanged.connect(lambda i: self.__selected_item_changed(int(not side), pos, combo)) combo.setSizePolicy(QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Fixed)) combo.setStyleSheet("border:0") if search_results: combo.addItem("Don't sync", None) combo.setItemData(0, QBrush(QColor(127, 0, 0)), Qt.TextColorRole) for r in search_results: combo.addItem("{} - {}".format(r["artist"], r["title"]), r) combo.setCurrentIndex(1) else: combo.addItem("No songs found", None) combo.setDisabled(True) combo.setToolTip(combo.currentText()) combo.currentTextChanged.connect(combo.setToolTip) self.__songs_table.addWidget(combo, self.__songs_table.rowCount() - 1, int(not side)) def getItems(self): return self.__items def __search_songs(self, sources, playlist0, playlist1, items): pos0 = pos1 = 0 self.__items = {0: {"playlist": playlist0, "tracks": {}}, 1: {"playlist": playlist1, "tracks": {}}} # FIXME: crashes if left list is empty while pos0 < len(items[0]) or pos1 < len(items[1]): self.status.emit("Searching songs ({} % completed).".format(round((pos0 + pos1) * 100 / (len(items[0]) + len(items[1]))))) if (pos0 < pos1 and pos0 < len(items[0])) or ((pos0 >= pos1) and (pos1 >= len(items[1]))): pos = pos0 pos0 += 1 side = 0 else: pos = pos1 pos1 += 1 side = 1 if sources[int(not side)].isReadOnly(): continue song = items[side][pos] if "peer" in song and song["peer"] is not None: continue search_results = sources[int(not side)].searchTrack(song) self.__new_song_row.emit(side, pos, "{} - {}".format(song["artist"], song["title"]), search_results) self.__items[int(not side)]["tracks"][pos] = {"src": song, "dst": None} self.status.emit("Searching songs completed.".format(int((pos0 + pos1) * 100 / (len(items[0]) + len(items[1]))))) self.setCompleted(True) def update(self): scroll_client = self.findChild(QWidget, "scrollClient") if self.__songs_table: self.__songs_table.deleteLater() del self.__songs_table sources = self.parent().parent().parent().page(0).getSources() items = self.parent().parent().parent().page(0).getItems() combo0 = self.parent().parent().parent().findChild(QComboBox, "Playlist0") label0 = self.findChild(QLabel, "label0") label0.setText("{} in {}".format(combo0.currentText(), sources[0].getName())) label0.setToolTip("{} in {}".format(combo0.currentText(), sources[0].getName())) combo1 = self.parent().parent().parent().findChild(QComboBox, "Playlist1") label1 = self.findChild(QLabel, "label1") label1.setText("{} in {}".format(combo1.currentText(), sources[1].getName())) label1.setToolTip("{} in {}".format(combo1.currentText(), sources[1].getName())) self.__songs_table = QGridLayout() self.__songs_table.setObjectName("songs_table") self.__songs_table.addItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Expanding), 0, 0, 1, 2) scroll_client.setLayout(self.__songs_table) threading.Thread(target=self.__search_songs, args=(sources, combo0.currentData(), combo1.currentData(), items,)).start()
class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setupUi(self) self.pushButton.pressed.connect(self.update_weather) self.threadpool = QThreadPool() self.update_weather() self.show() def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(330, 417) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.horizontalLayout = QHBoxLayout(self.centralwidget) self.horizontalLayout.setObjectName("horizontalLayout") self.verticalLayout = QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.horizontalLayout_3 = QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.lineEdit = QLineEdit(self.centralwidget) self.lineEdit.setObjectName("lineEdit") self.horizontalLayout_3.addWidget(self.lineEdit) self.pushButton = QPushButton(self.centralwidget) self.pushButton.setText("") icon = QIcon() icon.addPixmap(QPixmap("images/arrow-circle-225.png"), QIcon.Normal, QIcon.Off) self.pushButton.setIcon(icon) self.pushButton.setObjectName("pushButton") self.horizontalLayout_3.addWidget(self.pushButton) self.verticalLayout.addLayout(self.horizontalLayout_3) self.horizontalLayout_4 = QHBoxLayout() self.horizontalLayout_4.setObjectName("horizontalLayout_4") self.weatherIcon = QLabel(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.weatherIcon.sizePolicy().hasHeightForWidth()) self.weatherIcon.setSizePolicy(sizePolicy) self.weatherIcon.setMinimumSize(QSize(64, 64)) self.weatherIcon.setMaximumSize(QSize(64, 64)) self.weatherIcon.setText("") self.weatherIcon.setObjectName("weatherIcon") self.horizontalLayout_4.addWidget(self.weatherIcon) self.weatherLabel = QLabel(self.centralwidget) self.weatherLabel.setText("") self.weatherLabel.setObjectName("weatherLabel") self.horizontalLayout_4.addWidget(self.weatherLabel) self.verticalLayout.addLayout(self.horizontalLayout_4) self.gridLayout_2 = QGridLayout() self.gridLayout_2.setObjectName("gridLayout_2") self.forecastIcon4 = QLabel(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.forecastIcon4.sizePolicy().hasHeightForWidth()) self.forecastIcon4.setSizePolicy(sizePolicy) self.forecastIcon4.setMinimumSize(QSize(64, 64)) self.forecastIcon4.setMaximumSize(QSize(200, 32)) self.forecastIcon4.setBaseSize(QSize(0, 0)) self.forecastIcon4.setText("") self.forecastIcon4.setAlignment(Qt.AlignCenter) self.forecastIcon4.setObjectName("forecastIcon4") self.gridLayout_2.addWidget(self.forecastIcon4, 1, 3, 1, 1) self.forecastTemp2 = QLabel(self.centralwidget) self.forecastTemp2.setText("") self.forecastTemp2.setObjectName("forecastTemp2") self.gridLayout_2.addWidget(self.forecastTemp2, 2, 1, 1, 1) self.forecastTemp5 = QLabel(self.centralwidget) self.forecastTemp5.setText("") self.forecastTemp5.setObjectName("forecastTemp5") self.gridLayout_2.addWidget(self.forecastTemp5, 2, 4, 1, 1) self.forecastTemp4 = QLabel(self.centralwidget) self.forecastTemp4.setText("") self.forecastTemp4.setObjectName("forecastTemp4") self.gridLayout_2.addWidget(self.forecastTemp4, 2, 3, 1, 1) self.forecastIcon2 = QLabel(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.forecastIcon2.sizePolicy().hasHeightForWidth()) self.forecastIcon2.setSizePolicy(sizePolicy) self.forecastIcon2.setMinimumSize(QSize(64, 64)) self.forecastIcon2.setMaximumSize(QSize(200, 32)) self.forecastIcon2.setBaseSize(QSize(0, 0)) self.forecastIcon2.setText("") self.forecastIcon2.setAlignment(Qt.AlignCenter) self.forecastIcon2.setObjectName("forecastIcon2") self.gridLayout_2.addWidget(self.forecastIcon2, 1, 1, 1, 1) self.forecastIcon5 = QLabel(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.forecastIcon5.sizePolicy().hasHeightForWidth()) self.forecastIcon5.setSizePolicy(sizePolicy) self.forecastIcon5.setMinimumSize(QSize(64, 64)) self.forecastIcon5.setMaximumSize(QSize(200, 32)) self.forecastIcon5.setBaseSize(QSize(0, 0)) self.forecastIcon5.setText("") self.forecastIcon5.setAlignment(Qt.AlignCenter) self.forecastIcon5.setObjectName("forecastIcon5") self.gridLayout_2.addWidget(self.forecastIcon5, 1, 4, 1, 1) self.forecastIcon1 = QLabel(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.forecastIcon1.sizePolicy().hasHeightForWidth()) self.forecastIcon1.setSizePolicy(sizePolicy) self.forecastIcon1.setMinimumSize(QSize(64, 64)) self.forecastIcon1.setMaximumSize(QSize(200, 32)) self.forecastIcon1.setBaseSize(QSize(0, 0)) self.forecastIcon1.setText("") self.forecastIcon1.setAlignment(Qt.AlignCenter) self.forecastIcon1.setObjectName("forecastIcon1") self.gridLayout_2.addWidget(self.forecastIcon1, 1, 0, 1, 1) self.forecastIcon3 = QLabel(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.forecastIcon3.sizePolicy().hasHeightForWidth()) self.forecastIcon3.setSizePolicy(sizePolicy) self.forecastIcon3.setMinimumSize(QSize(64, 64)) self.forecastIcon3.setMaximumSize(QSize(200, 32)) self.forecastIcon3.setBaseSize(QSize(0, 0)) self.forecastIcon3.setText("") self.forecastIcon3.setAlignment(Qt.AlignCenter) self.forecastIcon3.setObjectName("forecastIcon3") self.gridLayout_2.addWidget(self.forecastIcon3, 1, 2, 1, 1) self.forecastTemp3 = QLabel(self.centralwidget) self.forecastTemp3.setText("") self.forecastTemp3.setObjectName("forecastTemp3") self.gridLayout_2.addWidget(self.forecastTemp3, 2, 2, 1, 1) self.forecastTemp1 = QLabel(self.centralwidget) self.forecastTemp1.setText("") self.forecastTemp1.setObjectName("forecastTemp1") self.gridLayout_2.addWidget(self.forecastTemp1, 2, 0, 1, 1) self.forecastTime1 = QLabel(self.centralwidget) self.forecastTime1.setAlignment(Qt.AlignCenter) self.forecastTime1.setObjectName("forecastTime1") self.gridLayout_2.addWidget(self.forecastTime1, 0, 0, 1, 1) self.forecastTime2 = QLabel(self.centralwidget) self.forecastTime2.setAlignment(Qt.AlignCenter) self.forecastTime2.setObjectName("forecastTime2") self.gridLayout_2.addWidget(self.forecastTime2, 0, 1, 1, 1) self.forecastTime3 = QLabel(self.centralwidget) self.forecastTime3.setAlignment(Qt.AlignCenter) self.forecastTime3.setObjectName("forecastTime3") self.gridLayout_2.addWidget(self.forecastTime3, 0, 2, 1, 1) self.forecastTime4 = QLabel(self.centralwidget) self.forecastTime4.setAlignment(Qt.AlignCenter) self.forecastTime4.setObjectName("forecastTime4") self.gridLayout_2.addWidget(self.forecastTime4, 0, 3, 1, 1) self.forecastTime5 = QLabel(self.centralwidget) self.forecastTime5.setAlignment(Qt.AlignCenter) self.forecastTime5.setObjectName("forecastTime5") self.gridLayout_2.addWidget(self.forecastTime5, 0, 4, 1, 1) self.verticalLayout.addLayout(self.gridLayout_2) self.gridLayout = QGridLayout() self.gridLayout.setObjectName("gridLayout") self.formLayout = QFormLayout() self.formLayout.setObjectName("formLayout") self.label_5 = QLabel(self.centralwidget) font = QFont() font.setBold(True) font.setWeight(75) self.label_5.setFont(font) self.label_5.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_5.setObjectName("label_5") self.formLayout.setWidget(2, QFormLayout.LabelRole, self.label_5) self.label_6 = QLabel(self.centralwidget) self.label_6.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_6.setObjectName("label_6") self.formLayout.setWidget(3, QFormLayout.LabelRole, self.label_6) self.temperatureLabel = QLabel(self.centralwidget) self.temperatureLabel.setText("") self.temperatureLabel.setObjectName("temperatureLabel") self.formLayout.setWidget(3, QFormLayout.FieldRole, self.temperatureLabel) self.label_7 = QLabel(self.centralwidget) self.label_7.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_7.setObjectName("label_7") self.formLayout.setWidget(4, QFormLayout.LabelRole, self.label_7) self.humidityLabel = QLabel(self.centralwidget) self.humidityLabel.setText("") self.humidityLabel.setObjectName("humidityLabel") self.formLayout.setWidget(4, QFormLayout.FieldRole, self.humidityLabel) self.label_8 = QLabel(self.centralwidget) self.label_8.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_8.setObjectName("label_8") self.formLayout.setWidget(5, QFormLayout.LabelRole, self.label_8) self.pressureLabel = QLabel(self.centralwidget) self.pressureLabel.setText("") self.pressureLabel.setObjectName("pressureLabel") self.formLayout.setWidget(5, QFormLayout.FieldRole, self.pressureLabel) self.label = QLabel(self.centralwidget) font = QFont() font.setBold(True) font.setWeight(75) self.label.setFont(font) self.label.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label.setObjectName("label") self.formLayout.setWidget(6, QFormLayout.LabelRole, self.label) self.label_2 = QLabel(self.centralwidget) self.label_2.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_2.setObjectName("label_2") self.formLayout.setWidget(7, QFormLayout.LabelRole, self.label_2) self.longitudeLabel = QLabel(self.centralwidget) self.longitudeLabel.setText("") self.longitudeLabel.setObjectName("longitudeLabel") self.formLayout.setWidget(7, QFormLayout.FieldRole, self.longitudeLabel) self.label_3 = QLabel(self.centralwidget) self.label_3.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_3.setObjectName("label_3") self.formLayout.setWidget(8, QFormLayout.LabelRole, self.label_3) self.latitudeLabel = QLabel(self.centralwidget) self.latitudeLabel.setText("") self.latitudeLabel.setObjectName("latitudeLabel") self.formLayout.setWidget(8, QFormLayout.FieldRole, self.latitudeLabel) self.label_4 = QLabel(self.centralwidget) self.label_4.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_4.setObjectName("label_4") self.formLayout.setWidget(9, QFormLayout.LabelRole, self.label_4) self.sunriseLabel = QLabel(self.centralwidget) self.sunriseLabel.setText("") self.sunriseLabel.setObjectName("sunriseLabel") self.formLayout.setWidget(9, QFormLayout.FieldRole, self.sunriseLabel) self.label_9 = QLabel(self.centralwidget) self.label_9.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_9.setObjectName("label_9") self.formLayout.setWidget(1, QFormLayout.LabelRole, self.label_9) self.label_10 = QLabel(self.centralwidget) font = QFont() font.setBold(True) font.setWeight(75) self.label_10.setFont(font) self.label_10.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) self.label_10.setObjectName("label_10") self.formLayout.setWidget(0, QFormLayout.LabelRole, self.label_10) self.windLabel = QLabel(self.centralwidget) self.windLabel.setText("") self.windLabel.setObjectName("windLabel") self.formLayout.setWidget(1, QFormLayout.FieldRole, self.windLabel) self.label_11 = QLabel(self.centralwidget) self.label_11.setText("") self.label_11.setObjectName("label_11") self.formLayout.setWidget(0, QFormLayout.FieldRole, self.label_11) self.label_13 = QLabel(self.centralwidget) self.label_13.setText("") self.label_13.setObjectName("label_13") self.formLayout.setWidget(6, QFormLayout.FieldRole, self.label_13) self.label_12 = QLabel(self.centralwidget) self.label_12.setText("") self.label_12.setObjectName("label_12") self.formLayout.setWidget(2, QFormLayout.FieldRole, self.label_12) self.gridLayout.addLayout(self.formLayout, 1, 0, 1, 1) self.verticalLayout.addLayout(self.gridLayout) self.horizontalLayout.addLayout(self.verticalLayout) MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Raindar")) self.lineEdit.setText(_translate("MainWindow", "Utrecht,the Netherlands")) self.forecastTime1.setText(_translate("MainWindow", "+3h")) self.forecastTime2.setText(_translate("MainWindow", "+6h")) self.forecastTime3.setText(_translate("MainWindow", "+9h")) self.forecastTime4.setText(_translate("MainWindow", "+12h")) self.forecastTime5.setText(_translate("MainWindow", "+15h")) self.label_5.setText(_translate("MainWindow", "Barometer")) self.label_6.setText(_translate("MainWindow", "Temperature")) self.label_7.setText(_translate("MainWindow", "Humidity")) self.label_8.setText(_translate("MainWindow", "Pressure")) self.label.setText(_translate("MainWindow", "Location")) self.label_2.setText(_translate("MainWindow", "Longitude")) self.label_3.setText(_translate("MainWindow", "Latitude")) self.label_4.setText(_translate("MainWindow", "Sunrise")) self.label_9.setText(_translate("MainWindow", "Speed")) self.label_10.setText(_translate("MainWindow", "Wind")) def alert(self, message): alert = QMessageBox.warning(self, "Warning", message) def update_weather(self): worker = WeatherWorker(self.lineEdit.text()) worker.signals.result.connect(self.weather_result) worker.signals.error.connect(self.alert) self.threadpool.start(worker) def weather_result(self, weather, forecasts): self.latitudeLabel.setText("%.2f °" % weather['coord']['lat']) self.longitudeLabel.setText("%.2f °" % weather['coord']['lon']) self.windLabel.setText("%.2f m/s" % weather['wind']['speed']) self.temperatureLabel.setText("%.1f °C" % weather['main']['temp']) self.pressureLabel.setText("%d" % weather['main']['pressure']) self.humidityLabel.setText("%d" % weather['main']['humidity']) self.sunriseLabel.setText(from_ts_to_time_of_day(weather['sys']['sunrise'])) self.weatherLabel.setText("%s (%s)" % ( weather['weather'][0]['main'], weather['weather'][0]['description'] ) ) self.set_weather_icon(self.weatherIcon, weather['weather']) for n, forecast in enumerate(forecasts['list'][:5], 1): getattr(self, 'forecastTime%d' % n).setText(from_ts_to_time_of_day(forecast['dt'])) self.set_weather_icon(getattr(self, 'forecastIcon%d' % n), forecast['weather']) getattr(self, 'forecastTemp%d' % n).setText("%.1f °C" % forecast['main']['temp']) def set_weather_icon(self, label, weather): label.setPixmap(QPixmap(os.path.join('images', "%s.png" % weather[0]['icon'])))
class Ui_MainWindow(QMainWindow): def __init__(self, parent=None): QMainWindow.__init__(self, parent) self.setupUi() def setupUi(self): self.setObjectName(_fromUtf8("MainWindow")) self.resize(565, 358) self.centralwidget = QWidget(self) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.verticalLayout = QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setSizeConstraint(QLayout.SetDefaultConstraint) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) spacerItem = QSpacerItem(40, 20, QSizePolicy.MinimumExpanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.searchTE = QLineEdit(self.centralwidget) self.searchTE.setObjectName(_fromUtf8("searchTE")) self.horizontalLayout.addWidget(self.searchTE) self.searchBtn = QPushButton(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.searchBtn.sizePolicy().hasHeightForWidth()) self.searchBtn.setSizePolicy(sizePolicy) self.searchBtn.setStyleSheet(_fromUtf8("border: none")) self.searchBtn.setText(_fromUtf8("")) icon = QIcon() icon.addPixmap( QPixmap( _fromUtf8( "../.designer/gitlab/ExcelToSql/icons/searchBtn.png")), QIcon.Normal, QIcon.Off) self.searchBtn.setIcon(icon) self.searchBtn.setIconSize(QtCore.QSize(48, 24)) self.searchBtn.setObjectName(_fromUtf8("searchBtn")) self.horizontalLayout.addWidget(self.searchBtn) self.pushButton_2 = QPushButton(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.pushButton_2.sizePolicy().hasHeightForWidth()) self.pushButton_2.setSizePolicy(sizePolicy) self.pushButton_2.setMaximumSize(QtCore.QSize(32, 16777215)) self.pushButton_2.setStyleSheet(_fromUtf8("color: blue")) self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) self.horizontalLayout.addWidget(self.pushButton_2) # self.pushButton_2.clicked.connect(self.onRunBtnClick()) self.verticalLayout.addLayout(self.horizontalLayout) self.gridLayout = QGridLayout() self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.dateEdit = QDateEdit(self.centralwidget) self.dateEdit.setObjectName(_fromUtf8("dateEdit")) self.gridLayout.addWidget(self.dateEdit, 0, 0, 1, 1) self.dateEdit_2 = QDateEdit(self.centralwidget) self.dateEdit_2.setObjectName(_fromUtf8("dateEdit_2")) self.gridLayout.addWidget(self.dateEdit_2, 0, 1, 1, 1) self.verticalLayout.addLayout(self.gridLayout) self.tableWidget = QTableWidget(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.tableWidget.sizePolicy().hasHeightForWidth()) self.tableWidget.setSizePolicy(sizePolicy) self.tableWidget.setObjectName(_fromUtf8("tableWidget")) self.tableWidget.setColumnCount(3) self.tableWidget.setRowCount(0) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) self.verticalLayout.addWidget(self.tableWidget) self.setCentralWidget(self.centralwidget) self.statusbar = QStatusBar(self) self.statusbar.setObjectName(_fromUtf8("statusbar")) self.setStatusBar(self.statusbar) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) print("A") self.pushButton_2.clicked.connect(self, QtCore.SLOT("onRunBtnClick()")) print("B") conn = sqlite3.connect("/home/eamon/Desktop/test.sqlite") result = conn.execute("SELECT * FROM Sheet1") for raw_number, raw_data in enumerate(result): self.tableWidget.insertRow(raw_number) # print(raw_number) for column_number, data in enumerate(raw_data): item = QTableWidgetItem(str(data)) self.tableWidget.setItem(raw_number, column_number, item) # print("\t", column_number) conn.close() def retranslateUi(self): self.setWindowTitle(_translate("MainWindow", "MainWindow", None)) item = self.tableWidget.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "id", None)) item = self.tableWidget.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "Name", None)) item = self.tableWidget.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "Cost", None)) def onRunBtnClick(self): db = sqlite3.connect("/home/eamon/Desktop/test.sqlite") cur = db.cursor() q = "SELECT * FROM Sheet1 WHERE name='%s'" % (self.searchTE.text(), ) print(q) res = cur.execute(q) if res: self.tableWidget.clear() for raw_number, raw_data in enumerate(res): self.tableWidget.insertRow(raw_number) for column_number, data in enumerate(raw_data): item = QTableWidgetItem(str(data)) self.tableWidget.setItem(raw_number, column_number, item)
class MainWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self, None) self.setObjectName(_fromUtf8("MainWindow")) self.resize(536, 392) self.centralwidget = QWidget(self) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.tabWidget = QTabWidget(self.centralwidget) self.tabWidget.setGeometry(QtCore.QRect(10, 10, 521, 361)) self.tabWidget.setTabsClosable(False) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.Insert = QWidget() self.Insert.setObjectName(_fromUtf8("Insert")) self.layoutWidget_2 = QWidget(self.Insert) self.layoutWidget_2.setGeometry(QtCore.QRect(10, 100, 504, 76)) self.layoutWidget_2.setObjectName(_fromUtf8("layoutWidget_2")) self.gridLayout = QGridLayout(self.layoutWidget_2) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 0, 0, 1, 1) self.excelBtn = QPushButton(self.layoutWidget_2) self.excelBtn.setMinimumSize(QtCore.QSize(200, 0)) self.excelBtn.setObjectName(_fromUtf8("excelBtn")) self.gridLayout.addWidget(self.excelBtn, 0, 1, 1, 1) self.excelLabel = QLabel(self.layoutWidget_2) self.excelLabel.setText(_fromUtf8("")) self.excelLabel.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.excelLabel.setObjectName(_fromUtf8("excelLabel")) self.gridLayout.addWidget(self.excelLabel, 1, 0, 1, 2) self.sqlBtn = QPushButton(self.layoutWidget_2) self.sqlBtn.setMinimumSize(QtCore.QSize(200, 0)) self.sqlBtn.setObjectName(_fromUtf8("sqlBtn")) self.gridLayout.addWidget(self.sqlBtn, 0, 3, 1, 1) self.runBtn = QPushButton(self.layoutWidget_2) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.runBtn.sizePolicy().hasHeightForWidth()) self.runBtn.setSizePolicy(sizePolicy) self.runBtn.setMouseTracking(False) self.runBtn.setAutoFillBackground(False) self.runBtn.setStyleSheet(_fromUtf8("background: transparent;")) self.runBtn.setText(_fromUtf8("")) icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8("icons/run.png")), QIcon.Normal, QIcon.Off) self.runBtn.setIcon(icon) self.runBtn.setIconSize(QtCore.QSize(64, 64)) self.runBtn.setObjectName(_fromUtf8("runBtn")) self.gridLayout.addWidget(self.runBtn, 0, 2, 2, 1) spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem1, 0, 4, 1, 1) self.tabWidget.addTab(self.Insert, _fromUtf8("")) self.Search = QWidget() self.Search.setObjectName(_fromUtf8("Search")) self.layoutWidget = QWidget(self.Search) self.layoutWidget.setGeometry(QtCore.QRect(0, 10, 541, 29)) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.horizontalLayout = QHBoxLayout(self.layoutWidget) self.horizontalLayout.setSizeConstraint(QLayout.SetDefaultConstraint) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) spacerItem2 = QSpacerItem(40, 20, QSizePolicy.MinimumExpanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem2) self.searchTE = QLineEdit(self.layoutWidget) self.searchTE.setObjectName(_fromUtf8("searchTE")) self.horizontalLayout.addWidget(self.searchTE) self.pushButton_2 = QPushButton(self.layoutWidget) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.pushButton_2.sizePolicy().hasHeightForWidth()) self.pushButton_2.setSizePolicy(sizePolicy) self.pushButton_2.setMaximumSize(QtCore.QSize(32, 16777215)) self.pushButton_2.setStyleSheet(_fromUtf8("color: blue")) self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) self.horizontalLayout.addWidget(self.pushButton_2) self.searchBtn = QPushButton(self.layoutWidget) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.searchBtn.sizePolicy().hasHeightForWidth()) self.searchBtn.setSizePolicy(sizePolicy) self.searchBtn.setStyleSheet(_fromUtf8("border: none")) self.searchBtn.setText(_fromUtf8("")) icon1 = QIcon() icon1.addPixmap( QPixmap( _fromUtf8( "../../.designer/gitlab/ExcelToSql/icons/searchBtn.png")), QIcon.Normal, QIcon.Off) self.searchBtn.setIcon(icon1) self.searchBtn.setIconSize(QtCore.QSize(48, 24)) self.searchBtn.setObjectName(_fromUtf8("searchBtn")) self.horizontalLayout.addWidget(self.searchBtn) self.tableWidget = QTableWidget(self.Search) self.tableWidget.setGeometry(QtCore.QRect(0, 50, 541, 271)) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.tableWidget.sizePolicy().hasHeightForWidth()) self.tableWidget.setSizePolicy(sizePolicy) self.tableWidget.setObjectName(_fromUtf8("tableWidget")) self.tableWidget.setColumnCount(3) self.tableWidget.setRowCount(0) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) self.tabWidget.addTab(self.Search, _fromUtf8("")) self.tab = QWidget() self.tab.setObjectName(_fromUtf8("tab")) self.tabWidget.addTab(self.tab, _fromUtf8("")) self.setCentralWidget(self.centralwidget) self.statusBar = QStatusBar(self) self.statusBar.setObjectName(_fromUtf8("statusbar")) self.setStatusBar(self.statusBar) self.retranslateUi(self) self.tabWidget.setCurrentIndex(1) QtCore.QMetaObject.connectSlotsByName(self) self.excelFileName = None self.sqlFileName = "/home/eamon/Desktop/test.sqlite" self.sqlLabel.setText(self.sqlFileName) self.excelBtn.clicked.connect(self, QtCore.SLOT("onExcelBtnClick()")) self.sqlBtn.clicked.connect(self, QtCore.SLOT("onSqlBtnClick()")) self.runBtn.clicked.connect(self, QtCore.SLOT("onRunBtnClick()")) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.tabWidget.setToolTip( _translate( "MainWindow", "<html><head/><body><p><span style=\" font-size:18pt;\">Search</span></p></body></html>", None)) self.excelBtn.setText( _translate("MainWindow", "select exel file", None)) self.sqlBtn.setText(_translate("MainWindow", "select sql file", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.Insert), _translate("MainWindow", "INSERT", None)) self.searchTE.setPlaceholderText( _translate("MainWindow", "Search", None)) self.pushButton_2.setText(_translate("MainWindow", "...", None)) item = self.tableWidget.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "id", None)) item = self.tableWidget.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "Name", None)) item = self.tableWidget.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "Cost", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.Search), _translate("MainWindow", "Search", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab), _translate("MainWindow", "ADVANCET SERCH", None)) def onExcelBtnClick(self): out = QFileDialog.getOpenFileNames(self, 'Select excel file', './', 'Excel files (*.xls *.xlsx)') excelFileNames = out[0] if len(excelFileNames) > 0: self.excelFileName = excelFileNames[0] self.excelLabel.setText(self.excelFileName) if self.sqlFileName is not None: self.runBtn.setEnabled(True) def onSqlBtnClick(self): out = QFileDialog.getOpenFileNames(self, 'Select sql file', './', 'SQL files (*.sqlite *.sql *.db)') sqlFileNames = out[0] if len(sqlFileNames) > 0: self.sqlFileName = sqlFileNames[0] self.sqlLabel.setText(self.sqlFileName) if self.excelFileName is not None: self.runBtn.setEnabled(True) def onRunBtnClick(self): from pandas import read_excel import sqlite3 import sys import numpy as np print("Q") tableName = "Sheet1" # # def getUsage(): # return "Usage: ExcelToSql -i '/home/eamon/Desktop/test.xlsx' -o '/home/eamon/Desktop/test.sqlite'" # # def printUsage(): # print(getUsage()) # # def checkUsage(argv): # if len(argv) is not 5: # printUsage() # exit(-1) # # for i in [1, 3]: # option = argv[i].capitalize() # if option == '-i': # excelFilename = argv[i+1]; # id # if not (excelFilename.endswith('.xls') or excelFilename.endswith('.xlsx')): # print('Wrong excel file.') # exit(-1) # # elif option == '-o': # sqliteDBFilename = argv[i+1]; # # if not (sqliteDBFilename.endswith('.sql') or sqliteDBFilename.endswith('.sqlite') or sqliteDBFilename.endswith('.db')): # print("Error sqlite filename") # exit(-1); # # return (excelFilename, sqliteDBFilename) # # excelFilename, sqliteDBFilename = checkUsage(sys.argv); # # print(excelFilename, sqliteDBFilename) xlsFile = read_excel(self.excelFileName, tableName) columns = xlsFile.columns db = sqlite3.connect(self.sqlFileName) cursor = db.cursor() # cursor.execute("DELETE FROM " + tableName) Ncolumns = len(columns) Nrows = len(xlsFile) query = "INSERT INTO " + tableName + " (id, name, cost , date) VALUES('{id}', '{name}', '{cost}','{date}')" for i in range(1, Nrows): record = xlsFile.loc[i] q = query for column in columns: # print('.') data = record[column] if column == "id": # print("waw") # print(data) for column in columns: data2 = record[column] q3 = "SELECT cost FROM Sheet2 WHERE id=%s" % (data) cursor.execute(q3) y = cursor.fetchone()[0] # print("cost",y) cursor.execute(q3) # print("=",q3) if column == "cost": # print("waw") a = (int(y)) b = (int(data2)) # print(type(b)) q1 = "UPDATE Sheet2 SET cost=%s WHERE id=%s" % ( (a + b), data) # print("q= "+ q1) cursor.execute(q1) if type(data) == np.int64: data = str(data) q = q.replace('{' + column + '}', data) cursor.execute(q) db.commit() db.close() print('Done') print(tableName)
class MainWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self, None) self.setObjectName(_fromUtf8("MainWindow")) self.resize(651, 280) self.setMinimumSize(QtCore.QSize(0, 250)) self.centralwidget = QWidget(self) self.centralwidget.setObjectNasqlBtnme(_fromUtf8("centralwidget")) self.verticalLayout = QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.gridLayout = QGridLayout() self.gridLayout.setObjectName(_fromUtf8("gridLayout")) spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem1, 0, 0, 1, 1) self.excelBtn = QPushButton(self.centralwidget) self.excelBtn.setMinimumSize(QtCore.QSize(200, 0)) self.excelBtn.setObjectName(_fromUtf8("excelBtn")) self.gridLayout.addWidget(self.excelBtn, 0, 1, 1, 1) self.sqlBtn = QPushButton(self.centralwidget) self.sqlBtn.setMinimumSize(QtCore.QSize(200, 0)) self.sqlBtn.setObjectName(_fromUtf8("sqlBtn")) self.gridLayout.addWidget(self.sqlBtn, 0, 3, 1, 1) self.runBtn = QPushButton(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.runBtn.sizePolicy().hasHeightForWidth()) self.runBtn.setSizePolicy(sizePolicy) self.runBtn.setEnabled(False) self.runBtn.setMouseTracking(False) self.runBtn.setAutoFillBackground(False) self.runBtn.setStyleSheet(_fromUtf8("border: none;")) self.runBtn.setText(_fromUtf8("")) icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8("icons/run.png")), QIcon.Normal, QIcon.Off) self.runBtn.setIcon(icon) self.runBtn.setIconSize(QtCore.QSize(64, 64)) self.runBtn.setObjectName(_fromUtf8("runBtn")) self.gridLayout.addWidget(self.runBtn, 0, 2, 2, 1) spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem2, 0, 4, 1, 1) self.sqlLabel = QLabel(self.centralwidget) self.sqlLabel.setText(_fromUtf8("")) self.sqlLabel.setObjectName(_fromUtf8("sqlLabel")) self.gridLayout.addWidget(self.sqlLabel, 1, 3, 1, 2) self.excelLabel = QLabel(self.centralwidget) self.excelLabel.setText(_fromUtf8("")) self.excelLabel.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.excelLabel.setObjectName(_fromUtf8("excelLabel")) self.gridLayout.addWidget(self.excelLabel, 1, 0, 1, 2) self.verticalLayout.addLayout(self.gridLayout) spacerItem3 = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem3) self.setCentralWidget(self.centralwidget) self.statusbar = QStatusBar(self) self.statusbar.setObjectName(_fromUtf8("statusbar")) self.setStatusBar(self.statusbar) self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) self.excelFileName = None self.sqlFileName = "/home/eamon/Desktop/test.sqlite" self.sqlLabel.setText(self.sqlFileName) self.excelBtn.clicked.connect(self, QtCore.SLOT("onExcelBtnClick()")) self.sqlBtn.clicked.connect(self, QtCore.SLOT("onSqlBtnClick()")) self.runBtn.clicked.connect(self, QtCore.SLOT("onRunBtnClick()")) def retranslateUi(self): self.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.excelBtn.setText( _translate("MainWindow", "select exel file", None)) self.sqlBtn.setText(_translate("MainWindow", "select sql file", None)) def onExcelBtnClick(self): out = QFileDialog.getOpenFileNames(self, 'Select excel file', './', 'Excel files (*.xls *.xlsx)') excelFileNames = out[0] if len(excelFileNames) > 0: self.excelFileName = excelFileNames[0] self.excelLabel.setText(self.excelFileName) if self.sqlFileName is not None: self.runBtn.setEnabled(True) def onSqlBtnClick(self): out = QFileDialog.getOpenFileNames(self, 'Select sql file', './', 'SQL files (*.sqlite *.sql *.db)') sqlFileNames = out[0] if len(sqlFileNames) > 0: self.sqlFileName = sqlFileNames[0] self.sqlLabel.setText(self.sqlFileName) if self.excelFileName is not None: self.runBtn.setEnabled(True) def onRunBtnClick(self): from pandas import read_excel import sqlite3 import sys import numpy as np tableName = "Sheet1" # # def getUsage(): # return "Usage: ExcelToSql -i '/home/eamon/Desktop/test.xlsx' -o '/home/eamon/Desktop/test.sqlite'" # # def printUsage(): # print(getUsage()) # # def checkUsage(argv): # if len(argv) is not 5: # printUsage() # exit(-1) # # for i in [1, 3]: # option = argv[i].capitalize() # if option == '-i': # excelFilename = argv[i+1]; #id # if not (excelFilename.endswith('.xls') or excelFilename.endswith('.xlsx')): # print('Wrong excel file.') # exit(-1) # # elif option == '-o': # sqliteDBFilename = argv[i+1]; # # if not (sqliteDBFilename.endswith('.sql') or sqliteDBFilename.endswith('.sqlite') or sqliteDBFilename.endswith('.db')): # print("Error sqlite filename") # exit(-1); # # return (excelFilename, sqliteDBFilename) # # excelFilename, sqliteDBFilename = checkUsage(sys.argv); # # print(excelFilename, sqliteDBFilename) xlsFile = read_excel(self.excelFileName, tableName) columns = xlsFile.columns db = sqlite3.connect(self.sqlFileName) cursor = db.cursor() # cursor.execute("DELETE FROM " + tableName) Ncolumns = len(columns) Nrows = len(xlsFile) query = "INSERT INTO " + tableName + " (id, name, cost , date) VALUES('{id}', '{name}', '{cost}','{date}')" for i in range(1, Nrows): record = xlsFile.loc[i] q = query for column in columns: #print('.') data = record[column] if column == "id": #print("waw") #print(data) for column in columns: data2 = record[column] q3 = "SELECT cost FROM Sheet2 WHERE id=%s" % (data) cursor.execute(q3) y = cursor.fetchone()[0] #print("cost",y) cursor.execute(q3) #print("=",q3) if column == "cost": #print("waw") a = (int(y)) b = (int(data2)) #print(type(b)) q1 = "UPDATE Sheet2 SET cost=%s WHERE id=%s" % ( (a + b), data) #print("q= "+ q1) cursor.execute(q1) if type(data) == np.int64: data = str(data) q = q.replace('{' + column + '}', data) cursor.execute(q) db.commit() db.close() print('Done') print(tableName)
class Ui_Dialog(object): def setupUi(self, Dialog): if not Dialog.objectName(): Dialog.setObjectName(u"Dialog") Dialog.resize(450, 235) Dialog.setMinimumSize(QSize(450, 235)) Dialog.setMaximumSize(QSize(450, 235)) Dialog.setStyleSheet(u"QDialog {\n" " background:rgb(51,51,51);\n" "}") self.verticalLayout = QVBoxLayout(Dialog) self.verticalLayout.setSpacing(0) self.verticalLayout.setObjectName(u"verticalLayout") self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.frame_2 = QFrame(Dialog) self.frame_2.setObjectName(u"frame_2") self.frame_2.setStyleSheet(u"background:rgb(51,51,51);") self.frame_2.setFrameShape(QFrame.NoFrame) self.frame_2.setFrameShadow(QFrame.Plain) self.verticalLayout_2 = QVBoxLayout(self.frame_2) self.verticalLayout_2.setSpacing(0) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.verticalLayout_2.setContentsMargins(2, 2, 2, 2) self.frame_top = QFrame(self.frame_2) self.frame_top.setObjectName(u"frame_top") self.frame_top.setMinimumSize(QSize(0, 55)) self.frame_top.setMaximumSize(QSize(16777215, 55)) self.frame_top.setStyleSheet(u"background:rgb(91,90,90);") self.frame_top.setFrameShape(QFrame.NoFrame) self.frame_top.setFrameShadow(QFrame.Plain) self.horizontalLayout = QHBoxLayout(self.frame_top) self.horizontalLayout.setSpacing(0) self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.lab_heading = QLabel(self.frame_top) self.lab_heading.setObjectName(u"lab_heading") font = QFont() font.setFamily(u"Segoe UI") font.setPointSize(14) self.lab_heading.setFont(font) self.lab_heading.setStyleSheet(u"color:rgb(255,255,255);") self.lab_heading.setAlignment(Qt.AlignCenter) self.horizontalLayout.addWidget(self.lab_heading) self.bn_min = QPushButton(self.frame_top) self.bn_min.setObjectName(u"bn_min") self.bn_min.setMinimumSize(QSize(55, 55)) self.bn_min.setMaximumSize(QSize(55, 55)) self.bn_min.setStyleSheet(u"QPushButton {\n" " border: none;\n" " background-color: rgb(51,51,51);\n" "}\n" "QPushButton:hover {\n" " background-color: rgb(0,143,150);\n" "}\n" "QPushButton:pressed { \n" " background-color: rgb(51,51,51);\n" "}") icon = QIcon() icon.addFile(u"icons/1x/hideAsset 53.png", QSize(), QIcon.Normal, QIcon.Off) self.bn_min.setIcon(icon) self.bn_min.setIconSize(QSize(22, 12)) self.bn_min.setAutoDefault(False) self.bn_min.setFlat(True) self.horizontalLayout.addWidget(self.bn_min) self.bn_close = QPushButton(self.frame_top) self.bn_close.setObjectName(u"bn_close") self.bn_close.setMinimumSize(QSize(55, 55)) self.bn_close.setMaximumSize(QSize(55, 55)) self.bn_close.setStyleSheet(u"QPushButton {\n" " border: none;\n" " background-color: rgb(51,51,51);\n" "}\n" "QPushButton:hover {\n" " background-color: rgb(0,143,150);\n" "}\n" "QPushButton:pressed { \n" " background-color: rgb(51,51,51);\n" "}") icon1 = QIcon() icon1.addFile(u"icons/1x/closeAsset 43.png", QSize(), QIcon.Normal, QIcon.Off) self.bn_close.setIcon(icon1) self.bn_close.setIconSize(QSize(22, 22)) self.bn_close.setAutoDefault(False) self.bn_close.setFlat(True) self.horizontalLayout.addWidget(self.bn_close) self.verticalLayout_2.addWidget(self.frame_top) self.frame_bottom = QFrame(self.frame_2) self.frame_bottom.setObjectName(u"frame_bottom") self.frame_bottom.setStyleSheet(u"background:rgb(91,90,90);") self.frame_bottom.setFrameShape(QFrame.StyledPanel) self.frame_bottom.setFrameShadow(QFrame.Raised) self.gridLayout = QGridLayout(self.frame_bottom) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setHorizontalSpacing(5) self.gridLayout.setVerticalSpacing(0) self.gridLayout.setContentsMargins(15, -1, 35, 0) self.bn_east = QPushButton(self.frame_bottom) self.bn_east.setObjectName(u"bn_east") self.bn_east.setMinimumSize(QSize(69, 25)) self.bn_east.setMaximumSize(QSize(69, 25)) font1 = QFont() font1.setFamily(u"Segoe UI") font1.setPointSize(12) self.bn_east.setFont(font1) self.bn_east.setStyleSheet(u"QPushButton {\n" " border: 2px solid rgb(51,51,51);\n" " border-radius: 5px; \n" " color:rgb(255,255,255);\n" " background-color: rgb(51,51,51);\n" "}\n" "QPushButton:hover {\n" " border: 2px solid rgb(0,143,150);\n" " background-color: rgb(0,143,150);\n" "}\n" "QPushButton:pressed { \n" " border: 2px solid rgb(0,143,150);\n" " background-color: rgb(51,51,51);\n" "}") self.bn_east.setAutoDefault(False) self.gridLayout.addWidget(self.bn_east, 1, 3, 1, 1) self.lab_icon = QLabel(self.frame_bottom) self.lab_icon.setObjectName(u"lab_icon") self.lab_icon.setMinimumSize(QSize(40, 40)) self.lab_icon.setMaximumSize(QSize(40, 40)) self.gridLayout.addWidget(self.lab_icon, 0, 0, 1, 1) self.bn_west = QPushButton(self.frame_bottom) self.bn_west.setObjectName(u"bn_west") self.bn_west.setMinimumSize(QSize(69, 25)) self.bn_west.setMaximumSize(QSize(69, 25)) self.bn_west.setFont(font1) self.bn_west.setStyleSheet(u"QPushButton {\n" " border: 2px solid rgb(51,51,51);\n" " border-radius: 5px; \n" " color:rgb(255,255,255);\n" " background-color: rgb(51,51,51);\n" "}\n" "QPushButton:hover {\n" " border: 2px solid rgb(0,143,150);\n" " background-color: rgb(0,143,150);\n" "}\n" "QPushButton:pressed { \n" " border: 2px solid rgb(0,143,150);\n" " background-color: rgb(51,51,51);\n" "}") self.bn_west.setAutoDefault(False) self.gridLayout.addWidget(self.bn_west, 1, 2, 1, 1) self.lab_message = QLabel(self.frame_bottom) self.lab_message.setObjectName(u"lab_message") self.lab_message.setFont(font1) self.lab_message.setStyleSheet(u"color:rgb(255,255,255);") self.lab_message.setWordWrap(True) self.gridLayout.addWidget(self.lab_message, 0, 1, 1, 3) self.verticalLayout_2.addWidget(self.frame_bottom) self.verticalLayout.addWidget(self.frame_2) self.retranslateUi(Dialog) QMetaObject.connectSlotsByName(Dialog) # setupUi def retranslateUi(self, Dialog): Dialog.setWindowTitle( QCoreApplication.translate("Dialog", u"Dialog", None)) self.lab_heading.setText("") self.bn_min.setText("") self.bn_close.setText("") self.bn_east.setText("") self.lab_icon.setText("") self.bn_west.setText("") self.lab_message.setText("")
class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setupUi(self) # Setup numbers. for n in range(0, 10): getattr(self, 'pushButton_n%s' % n).pressed.connect(lambda v=n: self.input_number(v)) # Setup operations. self.pushButton_add.pressed.connect(lambda: self.operation(operator.add)) self.pushButton_sub.pressed.connect(lambda: self.operation(operator.sub)) self.pushButton_mul.pressed.connect(lambda: self.operation(operator.mul)) self.pushButton_div.pressed.connect(lambda: self.operation(operator.truediv)) # operator.div for Python2.7 self.pushButton_pc.pressed.connect(self.operation_pc) self.pushButton_eq.pressed.connect(self.equals) # Setup actions self.actionReset.triggered.connect(self.reset) self.pushButton_ac.pressed.connect(self.reset) self.actionExit.triggered.connect(self.close) self.pushButton_m.pressed.connect(self.memory_store) self.pushButton_mr.pressed.connect(self.memory_recall) self.memory = 0 self.reset() self.show() def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(484, 433) self.centralWidget = QWidget(MainWindow) sizePolicy = QSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.centralWidget.sizePolicy().hasHeightForWidth()) self.centralWidget.setSizePolicy(sizePolicy) self.centralWidget.setObjectName("centralWidget") self.verticalLayout_2 = QVBoxLayout(self.centralWidget) self.verticalLayout_2.setContentsMargins(11, 11, 11, 11) self.verticalLayout_2.setSpacing(6) self.verticalLayout_2.setObjectName("verticalLayout_2") self.verticalLayout = QVBoxLayout() self.verticalLayout.setSpacing(6) self.verticalLayout.setObjectName("verticalLayout") self.lcdNumber = QLCDNumber(self.centralWidget) self.lcdNumber.setDigitCount(10) self.lcdNumber.setObjectName("lcdNumber") self.verticalLayout.addWidget(self.lcdNumber) self.gridLayout = QGridLayout() self.gridLayout.setSpacing(6) self.gridLayout.setObjectName("gridLayout") self.pushButton_n4 = QPushButton(self.centralWidget) self.pushButton_n4.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n4.setFont(font) self.pushButton_n4.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n4.setObjectName("pushButton_n4") self.gridLayout.addWidget(self.pushButton_n4, 3, 0, 1, 1) self.pushButton_n1 = QPushButton(self.centralWidget) self.pushButton_n1.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n1.setFont(font) self.pushButton_n1.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n1.setObjectName("pushButton_n1") self.gridLayout.addWidget(self.pushButton_n1, 4, 0, 1, 1) self.pushButton_n8 = QPushButton(self.centralWidget) self.pushButton_n8.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n8.setFont(font) self.pushButton_n8.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n8.setObjectName("pushButton_n8") self.gridLayout.addWidget(self.pushButton_n8, 2, 1, 1, 1) self.pushButton_mul = QPushButton(self.centralWidget) self.pushButton_mul.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_mul.setFont(font) self.pushButton_mul.setObjectName("pushButton_mul") self.gridLayout.addWidget(self.pushButton_mul, 2, 3, 1, 1) self.pushButton_n7 = QPushButton(self.centralWidget) self.pushButton_n7.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n7.setFont(font) self.pushButton_n7.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n7.setObjectName("pushButton_n7") self.gridLayout.addWidget(self.pushButton_n7, 2, 0, 1, 1) self.pushButton_n6 = QPushButton(self.centralWidget) self.pushButton_n6.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n6.setFont(font) self.pushButton_n6.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n6.setObjectName("pushButton_n6") self.gridLayout.addWidget(self.pushButton_n6, 3, 2, 1, 1) self.pushButton_n5 = QPushButton(self.centralWidget) self.pushButton_n5.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n5.setFont(font) self.pushButton_n5.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n5.setObjectName("pushButton_n5") self.gridLayout.addWidget(self.pushButton_n5, 3, 1, 1, 1) self.pushButton_n0 = QPushButton(self.centralWidget) self.pushButton_n0.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n0.setFont(font) self.pushButton_n0.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n0.setObjectName("pushButton_n0") self.gridLayout.addWidget(self.pushButton_n0, 5, 0, 1, 1) self.pushButton_n2 = QPushButton(self.centralWidget) self.pushButton_n2.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n2.setFont(font) self.pushButton_n2.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n2.setObjectName("pushButton_n2") self.gridLayout.addWidget(self.pushButton_n2, 4, 1, 1, 1) self.pushButton_n9 = QPushButton(self.centralWidget) self.pushButton_n9.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n9.setFont(font) self.pushButton_n9.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n9.setObjectName("pushButton_n9") self.gridLayout.addWidget(self.pushButton_n9, 2, 2, 1, 1) self.pushButton_n3 = QPushButton(self.centralWidget) self.pushButton_n3.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_n3.setFont(font) self.pushButton_n3.setStyleSheet("QPushButton {\n" "color: #1976D2;\n" "}") self.pushButton_n3.setObjectName("pushButton_n3") self.gridLayout.addWidget(self.pushButton_n3, 4, 2, 1, 1) self.pushButton_div = QPushButton(self.centralWidget) self.pushButton_div.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_div.setFont(font) self.pushButton_div.setObjectName("pushButton_div") self.gridLayout.addWidget(self.pushButton_div, 1, 3, 1, 1) self.pushButton_sub = QPushButton(self.centralWidget) self.pushButton_sub.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_sub.setFont(font) self.pushButton_sub.setObjectName("pushButton_sub") self.gridLayout.addWidget(self.pushButton_sub, 3, 3, 1, 1) self.pushButton_add = QPushButton(self.centralWidget) self.pushButton_add.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_add.setFont(font) self.pushButton_add.setObjectName("pushButton_add") self.gridLayout.addWidget(self.pushButton_add, 4, 3, 1, 1) self.pushButton_ac = QPushButton(self.centralWidget) self.pushButton_ac.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_ac.setFont(font) self.pushButton_ac.setStyleSheet("QPushButton {\n" " color: #f44336;\n" "}") self.pushButton_ac.setObjectName("pushButton_ac") self.gridLayout.addWidget(self.pushButton_ac, 1, 0, 1, 1) self.pushButton_mr = QPushButton(self.centralWidget) self.pushButton_mr.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_mr.setFont(font) self.pushButton_mr.setStyleSheet("QPushButton {\n" " color: #FFC107;\n" "}") self.pushButton_mr.setObjectName("pushButton_mr") self.gridLayout.addWidget(self.pushButton_mr, 1, 2, 1, 1) self.pushButton_m = QPushButton(self.centralWidget) self.pushButton_m.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_m.setFont(font) self.pushButton_m.setStyleSheet("QPushButton {\n" " color: #FFC107;\n" "}") self.pushButton_m.setObjectName("pushButton_m") self.gridLayout.addWidget(self.pushButton_m, 1, 1, 1, 1) self.pushButton_pc = QPushButton(self.centralWidget) self.pushButton_pc.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(False) font.setWeight(50) self.pushButton_pc.setFont(font) self.pushButton_pc.setObjectName("pushButton_pc") self.gridLayout.addWidget(self.pushButton_pc, 5, 1, 1, 1) self.pushButton_eq = QPushButton(self.centralWidget) self.pushButton_eq.setMinimumSize(QSize(0, 50)) font = QFont() font.setPointSize(27) font.setBold(True) font.setWeight(75) self.pushButton_eq.setFont(font) self.pushButton_eq.setStyleSheet("QPushButton {\n" "color: #4CAF50;\n" "}") self.pushButton_eq.setObjectName("pushButton_eq") self.gridLayout.addWidget(self.pushButton_eq, 5, 2, 1, 2) self.verticalLayout.addLayout(self.gridLayout) self.verticalLayout_2.addLayout(self.verticalLayout) MainWindow.setCentralWidget(self.centralWidget) self.menuBar = QMenuBar(MainWindow) self.menuBar.setGeometry(QRect(0, 0, 484, 22)) self.menuBar.setObjectName("menuBar") self.menuFile = QMenu(self.menuBar) self.menuFile.setObjectName("menuFile") MainWindow.setMenuBar(self.menuBar) self.statusBar = QStatusBar(MainWindow) self.statusBar.setObjectName("statusBar") MainWindow.setStatusBar(self.statusBar) self.actionExit = QAction(MainWindow) self.actionExit.setObjectName("actionExit") self.actionReset = QAction(MainWindow) self.actionReset.setObjectName("actionReset") self.menuFile.addAction(self.actionReset) self.menuFile.addAction(self.actionExit) self.menuBar.addAction(self.menuFile.menuAction()) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Calculon")) self.pushButton_n4.setText(_translate("MainWindow", "4")) self.pushButton_n4.setShortcut(_translate("MainWindow", "4")) self.pushButton_n1.setText(_translate("MainWindow", "1")) self.pushButton_n1.setShortcut(_translate("MainWindow", "1")) self.pushButton_n8.setText(_translate("MainWindow", "8")) self.pushButton_n8.setShortcut(_translate("MainWindow", "8")) self.pushButton_mul.setText(_translate("MainWindow", "x")) self.pushButton_mul.setShortcut(_translate("MainWindow", "*")) self.pushButton_n7.setText(_translate("MainWindow", "7")) self.pushButton_n7.setShortcut(_translate("MainWindow", "7")) self.pushButton_n6.setText(_translate("MainWindow", "6")) self.pushButton_n6.setShortcut(_translate("MainWindow", "6")) self.pushButton_n5.setText(_translate("MainWindow", "5")) self.pushButton_n5.setShortcut(_translate("MainWindow", "5")) self.pushButton_n0.setText(_translate("MainWindow", "0")) self.pushButton_n0.setShortcut(_translate("MainWindow", "0")) self.pushButton_n2.setText(_translate("MainWindow", "2")) self.pushButton_n2.setShortcut(_translate("MainWindow", "2")) self.pushButton_n9.setText(_translate("MainWindow", "9")) self.pushButton_n9.setShortcut(_translate("MainWindow", "9")) self.pushButton_n3.setText(_translate("MainWindow", "3")) self.pushButton_n3.setShortcut(_translate("MainWindow", "3")) self.pushButton_div.setText(_translate("MainWindow", "÷")) self.pushButton_div.setShortcut(_translate("MainWindow", "/")) self.pushButton_sub.setText(_translate("MainWindow", "-")) self.pushButton_sub.setShortcut(_translate("MainWindow", "-")) self.pushButton_add.setText(_translate("MainWindow", "+")) self.pushButton_add.setShortcut(_translate("MainWindow", "+")) self.pushButton_ac.setText(_translate("MainWindow", "AC")) self.pushButton_ac.setShortcut(_translate("MainWindow", "Esc")) self.pushButton_mr.setText(_translate("MainWindow", "MR")) self.pushButton_mr.setShortcut(_translate("MainWindow", "R")) self.pushButton_m.setText(_translate("MainWindow", "M")) self.pushButton_m.setShortcut(_translate("MainWindow", "M")) self.pushButton_pc.setText(_translate("MainWindow", "%")) self.pushButton_pc.setShortcut(_translate("MainWindow", "%")) self.pushButton_eq.setText(_translate("MainWindow", "=")) self.pushButton_eq.setShortcut(_translate("MainWindow", "Return")) self.menuFile.setTitle(_translate("MainWindow", "File")) self.actionExit.setText(_translate("MainWindow", "Exit")) self.actionExit.setShortcut(_translate("MainWindow", "Ctrl+Q")) self.actionReset.setText(_translate("MainWindow", "Reset")) self.actionReset.setShortcut(_translate("MainWindow", "Ctrl+R")) def display(self): self.lcdNumber.display(self.stack[-1]) def reset(self): self.state = READY self.stack = [0] self.last_operation = None self.current_op = None self.display() def memory_store(self): self.memory = self.lcdNumber.value() def memory_recall(self): self.state = INPUT self.stack[-1] = self.memory self.display() def input_number(self, v): if self.state == READY: self.state = INPUT self.stack[-1] = v else: self.stack[-1] = self.stack[-1] * 10 + v self.display() def operation(self, op): if self.current_op: # Complete the current operation self.equals() self.stack.append(0) self.state = INPUT self.current_op = op def operation_pc(self): self.state = INPUT self.stack[-1] *= 0.01 self.display() def equals(self): # Support to allow '=' to repeat previous operation # if no further input has been added. if self.state == READY and self.last_operation: s, self.current_op = self.last_operation self.stack.append(s) if self.current_op: self.last_operation = self.stack[-1], self.current_op try: self.stack = [self.current_op(*self.stack)] except Exception: self.lcdNumber.display('Err') self.stack = [0] else: self.current_op = None self.state = READY self.display()
class MainWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self, None) self.setObjectName(_fromUtf8("MainWindow")) self.resize(651, 280) self.setMinimumSize(QtCore.QSize(0, 250)) self.centralwidget = QWidget(self) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.verticalLayout = QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.gridLayout = QGridLayout() self.gridLayout.setObjectName(_fromUtf8("gridLayout")) spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem1, 0, 0, 1, 1) self.excelBtn = QPushButton(self.centralwidget) self.excelBtn.setMinimumSize(QtCore.QSize(200, 0)) self.excelBtn.setObjectName(_fromUtf8("excelBtn")) self.gridLayout.addWidget(self.excelBtn, 0, 1, 1, 1) self.sqlBtn = QPushButton(self.centralwidget) self.sqlBtn.setMinimumSize(QtCore.QSize(200, 0)) self.sqlBtn.setObjectName(_fromUtf8("sqlBtn")) self.gridLayout.addWidget(self.sqlBtn, 0, 3, 1, 1) self.runBtn = QPushButton(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.runBtn.sizePolicy().hasHeightForWidth()) self.runBtn.setSizePolicy(sizePolicy) self.runBtn.setMouseTracking(False) self.runBtn.setAutoFillBackground(False) self.runBtn.setStyleSheet(_fromUtf8("border: none;")) self.runBtn.setText(_fromUtf8("")) icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8("icons/run.png")), QIcon.Normal, QIcon.Off) self.runBtn.setIcon(icon) self.runBtn.setIconSize(QtCore.QSize(64, 64)) self.runBtn.setObjectName(_fromUtf8("runBtn")) self.gridLayout.addWidget(self.runBtn, 0, 2, 2, 1) spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem2, 0, 4, 1, 1) self.sqlLabel = QLabel(self.centralwidget) self.sqlLabel.setText(_fromUtf8("")) self.sqlLabel.setObjectName(_fromUtf8("sqlLabel")) self.gridLayout.addWidget(self.sqlLabel, 1, 3, 1, 2) self.excelLabel = QLabel(self.centralwidget) self.excelLabel.setText(_fromUtf8("")) self.excelLabel.setObjectName(_fromUtf8("excelLabel")) self.gridLayout.addWidget(self.excelLabel, 1, 0, 1, 2) self.verticalLayout.addLayout(self.gridLayout) spacerItem3 = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem3) self.setCentralWidget(self.centralwidget) self.statusbar = QStatusBar(self) self.statusbar.setObjectName(_fromUtf8("statusbar")) self.setStatusBar(self.statusbar) self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) self.excelBtn.clicked.connect(self, QtCore.SLOT("onExcelBtnClicke()")) self.sqlBtn.clicked.connect(self, QtCore.SLOT("onsqlBtnClicke()")) def retranslateUi(self): self.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.excelBtn.setText( _translate("MainWindow", "select exel file", None)) self.sqlBtn.setText(_translate("MainWindow", "select sql file", None)) def onExcelBtnClicke(self): out = QFileDialog.getOpenFileNames(self, 'Select excel file', './', 'Excel files (*.xls *.xlsx)') excelFile = out[0] self.excelLabel.setText(excelFile[0]) print(excelFile) def onsqlBtnClicke(self): out = QFileDialog.getOpenFileNames(self, 'Select sql file', './', 'sql files (*.sqlite)') sqlFile = out[0] self.sqlLabel.setText(sqlFile[0]) print(sqlFile)
class EditorConfigWindow(QMainWindow): def __init__(self): super(EditorConfigWindow, self).__init__() self.started = False self.widget = QWidget() self.setupUi(self) def setupUi(self, MainWindow): if not MainWindow.objectName(): MainWindow.setObjectName(u"MainWindow") MainWindow.resize(1301, 755) self.actionGroup_Editor = QAction(MainWindow) self.actionGroup_Editor.setObjectName(u"actionGroup_Editor") self.actionClient_Editor = QAction(MainWindow) self.actionClient_Editor.setObjectName(u"actionClient_Editor") self.actionProject_Editor = QAction(MainWindow) self.actionProject_Editor.setObjectName(u"actionProject_Editor") self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(u"centralwidget") self.gridLayoutWidget = QWidget(self.centralwidget) self.gridLayoutWidget.setObjectName(u"gridLayoutWidget") self.gridLayoutWidget.setGeometry(QRect(20, 70, 1261, 621)) self.gridLayout = QGridLayout(self.gridLayoutWidget) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setContentsMargins(0, 0, 0, 0) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QMenuBar(MainWindow) self.menubar.setObjectName(u"menubar") self.menubar.setGeometry(QRect(0, 0, 1301, 20)) self.menuFile = QMenu(self.menubar) self.menuFile.setObjectName(u"menuFile") self.menuEditors = QMenu(self.menubar) self.menuEditors.setObjectName(u"menuEditors") MainWindow.setMenuBar(self.menubar) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(u"statusbar") MainWindow.setStatusBar(self.statusbar) self.menubar.addAction(self.menuFile.menuAction()) self.menubar.addAction(self.menuEditors.menuAction()) self.menuEditors.addAction(self.actionGroup_Editor) self.menuEditors.addAction(self.actionClient_Editor) self.menuEditors.addAction(self.actionProject_Editor) self.show() # self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) # setupUi def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QCoreApplication.translate("MainWindow", u"MainWindow", None)) self.actionGroup_Editor.setText( QCoreApplication.translate("MainWindow", u"Group Editor", None)) self.actionClient_Editor.setText( QCoreApplication.translate("MainWindow", u"Client Editor", None)) self.actionProject_Editor.setText( QCoreApplication.translate("MainWindow", u"Project Editor", None)) self.menuFile.setTitle( QCoreApplication.translate("MainWindow", u"File", None)) self.menuEditors.setTitle( QCoreApplication.translate("MainWindow", u"Editors", None))
class Ui_Error(object): def setupUi(self, Error): if not Error.objectName(): Error.setObjectName(u"Error") Error.resize(250, 150) Error.setMinimumSize(QSize(250, 150)) Error.setMaximumSize(QSize(250, 150)) self.horizontalLayout = QHBoxLayout(Error) self.horizontalLayout.setSpacing(0) self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.frame = QFrame(Error) self.frame.setObjectName(u"frame") self.frame.setStyleSheet(u"background:rgb(51,51,51);") self.frame.setFrameShape(QFrame.NoFrame) self.frame.setFrameShadow(QFrame.Plain) self.verticalLayout = QVBoxLayout(self.frame) self.verticalLayout.setSpacing(0) self.verticalLayout.setObjectName(u"verticalLayout") self.verticalLayout.setContentsMargins(2, 2, 2, 2) self.frame_top = QFrame(self.frame) self.frame_top.setObjectName(u"frame_top") self.frame_top.setMinimumSize(QSize(0, 55)) self.frame_top.setMaximumSize(QSize(16777215, 55)) self.frame_top.setStyleSheet(u"background:rgb(91,90,90);") self.frame_top.setFrameShape(QFrame.NoFrame) self.frame_top.setFrameShadow(QFrame.Plain) self.horizontalLayout_2 = QHBoxLayout(self.frame_top) self.horizontalLayout_2.setSpacing(5) self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.horizontalLayout_2.setContentsMargins(15, 5, 0, 0) self.lab_icon = QLabel(self.frame_top) self.lab_icon.setObjectName(u"lab_icon") self.lab_icon.setMinimumSize(QSize(35, 35)) self.lab_icon.setMaximumSize(QSize(35, 35)) self.horizontalLayout_2.addWidget(self.lab_icon) self.lab_heading = QLabel(self.frame_top) self.lab_heading.setObjectName(u"lab_heading") font = QFont() font.setFamily(u"Segoe UI") font.setPointSize(12) self.lab_heading.setFont(font) self.lab_heading.setStyleSheet(u"color:rgb(255,255,255);") self.lab_heading.setWordWrap(True) self.horizontalLayout_2.addWidget(self.lab_heading) self.verticalLayout.addWidget(self.frame_top) self.frame_bottom = QFrame(self.frame) self.frame_bottom.setObjectName(u"frame_bottom") self.frame_bottom.setStyleSheet(u"background:rgb(91,90,90);") self.frame_bottom.setFrameShape(QFrame.NoFrame) self.frame_bottom.setFrameShadow(QFrame.Plain) self.gridLayout = QGridLayout(self.frame_bottom) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setContentsMargins(-1, -1, -1, 0) self.bn_ok = QPushButton(self.frame_bottom) self.bn_ok.setObjectName(u"bn_ok") self.bn_ok.setMinimumSize(QSize(69, 25)) self.bn_ok.setMaximumSize(QSize(69, 25)) self.bn_ok.setStyleSheet(u"QPushButton {\n" " border: 2px solid rgb(51,51,51);\n" " border-radius: 5px; \n" " color:rgb(255,255,255);\n" " background-color: rgb(51,51,51);\n" "}\n" "QPushButton:hover {\n" " border: 2px solid rgb(0,143,150);\n" " background-color: rgb(0,143,150);\n" "}\n" "QPushButton:pressed { \n" " border: 2px solid rgb(0,143,150);\n" " background-color: rgb(51,51,51);\n" "}\n" "") self.gridLayout.addWidget(self.bn_ok, 0, 0, 1, 1) self.verticalLayout.addWidget(self.frame_bottom) self.horizontalLayout.addWidget(self.frame) self.retranslateUi(Error) QMetaObject.connectSlotsByName(Error) # setupUi def retranslateUi(self, Error): Error.setWindowTitle( QCoreApplication.translate("Error", u"Dialog", None)) self.lab_icon.setText("") self.lab_heading.setText("") self.bn_ok.setText("")
class DataBrowserMain(QWidget): sliceUpdated = Signal(int, int, int, int) def __init__(self, parent): super(DataBrowserMain, self).__init__(parent) # data import self.brkraw_obj = self.parent().brkraw_obj self.selectedScan = None self.selectedScanTR = None self.set_viewer_frame() self.set_controller_frame() self.set_gridlayouts() self.set_font() # self.set_palette() # TODO self.set_size() self.set_objectnames() self.set_texts() self.ratio_container = [] self.init_connection() self.inactivate_widgets() # Inactivate during startup def init_connection(self): self.parent().dataSelected.connect( self.selectScanEvent) # run selectScanEvent when data selected self.event_timer = QTimer() self.event_timer.timeout.connect(self.sliceUpdateEvent) # self.sliceUpdated.connect(self.updateImage) self.xaxis_slider.valueChanged.connect(self.xaxis_spinbox.setValue) self.xaxis_spinbox.valueChanged.connect(self.xaxis_slider.setValue) self.yaxis_slider.valueChanged.connect(self.yaxis_spinbox.setValue) self.yaxis_spinbox.valueChanged.connect(self.yaxis_slider.setValue) self.zaxis_slider.valueChanged.connect(self.zaxis_spinbox.setValue) self.zaxis_spinbox.valueChanged.connect(self.zaxis_slider.setValue) self.frame_slider.valueChanged.connect(self.frame_spinbox.setValue) self.frame_spinbox.valueChanged.connect(self.frame_slider.setValue) self.axial_view.pointed.connect(self.axialview_pointing_event) self.sagittal_view.pointed.connect(self.sagittalview_pointing_event) self.coronal_view.pointed.connect(self.coronalview_pointing_event) self.connect_sliders_to_update() def sagittalview_pointing_event(self, pos_x, pos_y, meta): max_x = self.yaxis_slider.maximum() max_y = self.zaxis_slider.maximum() # print(pos_x, pos_y, max_x, max_y) self.yaxis_slider.setValue(int(max_x * pos_x)) self.zaxis_slider.setValue(max_y - int(max_y * pos_y)) # print(int(max_x * pos_x), int(max_y * pos_y)) def axialview_pointing_event(self, pos_x, pos_y, meta): max_x = self.yaxis_slider.maximum() max_y = self.xaxis_slider.maximum() # print(pos_x, pos_y, max_x, max_y) self.yaxis_slider.setValue(int(max_x * pos_x)) self.xaxis_slider.setValue(int(max_y * pos_y)) # print(int(max_x * pos_x), int(max_y * pos_y)) def coronalview_pointing_event(self, pos_x, pos_y, meta): max_x = self.xaxis_slider.maximum() max_y = self.zaxis_slider.maximum() # print(pos_x, pos_y, max_x, max_y) self.xaxis_slider.setValue(int(max_x * pos_x)) self.zaxis_slider.setValue(max_y - int(max_y * pos_y)) # print(int(max_x * pos_x), int(max_y * pos_y)) def sliderChangeEvent(self): self.event_timer.start(10) def sliceUpdateEvent(self): # This will executed only when timer timeout x = self.xaxis_slider.value() y = self.yaxis_slider.value() z = self.zaxis_slider.value() t = self.frame_slider.value() self.sliceUpdated.emit(x, y, z, t) self.event_timer.stop() @staticmethod def slice_data(dataobj, slice_orient, slice_num): if slice_orient == 'axial': sliced_data = dataobj[:, :, slice_num] elif slice_orient == 'sagittal': sliced_data = dataobj[:, slice_num, ::-1] elif slice_orient == 'coronal': sliced_data = dataobj[slice_num, :, ::-1] else: popup_error_dialog(UnexpectedError.message) return None return sliced_data def updateImage(self, x, y, z, frame): if len(self.selectedScan.shape) == 4: dataobj = self.selectedScan[:, :, :, frame] else: dataobj = self.selectedScan[...] data_xy = self.slice_data(dataobj, 'axial', z) data_yz = self.slice_data(dataobj, 'sagittal', x) data_xz = self.slice_data(dataobj, 'coronal', y) ratio_xy, ratio_yz, ratio_xz = self.ratio_container # ratio_xy, ratio_yz, ratio_xz = 1, 1, 1 qm_xy = convert_arr2qpixmap(data_xy, ratio_xy) qm_yz = convert_arr2qpixmap(data_yz, ratio_yz) qm_xz = convert_arr2qpixmap(data_xz, ratio_xz) self.axial_view.setPixmap(qm_xy) self.sagittal_view.setPixmap(qm_yz) self.coronal_view.setPixmap(qm_xz) def selectScanEvent(self, delivery_package: list): """ this event is occurring when a scan selected on scanlist """ self.axial_view.setEnabled(True) self.sagittal_view.setEnabled(True) self.coronal_view.setEnabled(True) self.selectedScan, affine, resol, self.selectedScanTR, is_localizer = delivery_package self.selectedScanTR /= 1000 from slfmri.imgman import reorient_to_ras, determine_slice_plane slice_plane_ref = dict(sagittal=0, coronal=1, axial=2) if is_localizer: img_container = dict() for i, aff in enumerate(affine): size = config.get('ImageViewer', 'size') data = self.selectedScan[..., i] slice_plane = determine_slice_plane(2, aff, resol) ras_data, ras_resol = reorient_to_ras(data[:, :, np.newaxis], aff, resol) slice_axis = slice_plane_ref[slice_plane] ras_data = ras_data.mean(slice_axis) ras_resol = np.delete(ras_resol, slice_axis) qpixmap = convert_arr2qpixmap(ras_data, ras_resol, size) img_container[slice_plane] = qpixmap self.update_axisview(img_container) else: # other than localizer self.init_data(self.selectedScan) matrix_size = np.asarray(self.selectedScan.shape) resol = np.asarray(resol) fov = matrix_size[:3] * resol self.ratio_container = [ fov[0] / fov[1], fov[1] / fov[2], fov[0] / fov[2] ] # reset value init_x, init_y, init_z = (np.asarray(self.selectedScan.shape[:3]) / 2.0).astype(int) init_f = 0 self.disconnect_sliders_to_update() self.xaxis_slider.setValue(init_x) self.yaxis_slider.setValue(init_y) self.zaxis_slider.setValue(init_z) self.frame_slider.setValue(init_f) self.connect_sliders_to_update() self.updateImage(init_x, init_y, init_z, init_f) def connect_sliders_to_update(self): # connect to check slice update self.xaxis_slider.valueChanged.connect(self.sliderChangeEvent) self.yaxis_slider.valueChanged.connect(self.sliderChangeEvent) self.zaxis_slider.valueChanged.connect(self.sliderChangeEvent) self.frame_slider.valueChanged.connect(self.sliderChangeEvent) def disconnect_sliders_to_update(self): # disconnect to check slice update self.xaxis_slider.valueChanged.disconnect(self.sliderChangeEvent) self.yaxis_slider.valueChanged.disconnect(self.sliderChangeEvent) self.zaxis_slider.valueChanged.disconnect(self.sliderChangeEvent) self.frame_slider.valueChanged.disconnect(self.sliderChangeEvent) def init_data(self, dataobj): self.slicecontrol_pane.setEnabled(True) dim = len(dataobj.shape) if dim == 3: size_x, size_y, size_z = dataobj.shape size_frame = None elif dim == 4: size_x, size_y, size_z, size_frame = dataobj.shape else: popup_error_dialog(UnexpectedError.message) return None # init sliders and spinboxes self.xaxis_slider.setRange(0, size_x - 1) self.yaxis_slider.setRange(0, size_y - 1) self.zaxis_slider.setRange(0, size_z - 1) self.xaxis_spinbox.setRange(0, size_x - 1) self.yaxis_spinbox.setRange(0, size_y - 1) self.zaxis_spinbox.setRange(0, size_z - 1) if dim == 3: self.frame_label.setDisabled(True) self.frame_slider.setDisabled(True) self.frame_spinbox.setDisabled(True) else: self.frame_label.setEnabled(True) self.frame_slider.setEnabled(True) self.frame_spinbox.setEnabled(True) self.frame_slider.setRange(0, size_frame - 1) self.frame_spinbox.setRange(0, size_frame - 1) def update_axisview(self, img_container: dict): for view_plane, pixmap in img_container.items(): if view_plane == 'axial': self.axial_view.setPixmap(pixmap) elif view_plane == 'sagittal': self.sagittal_view.setPixmap(pixmap) else: self.coronal_view.setPixmap(pixmap) def inactivate_widgets(self): self.slicecontrol_pane.setDisabled(True) self.graph_frame.setDisabled(True) def set_navigationmode(self): # mouse click will navigate slice. pass def set_drawingmode(self): # roi drawing function pass def mask_data_handler(self): # mask later handler pass def slider_event_related(self): # slider for slicing. pass def set_viewer_frame(self): self.imageframe = QFrame(self) self.axial_view = SliceViewer(self.imageframe) self.axial_view.setDisabled(True) self.sagittal_view = SliceViewer(self.imageframe) self.sagittal_view.setDisabled(True) self.coronal_view = SliceViewer(self.imageframe) self.coronal_view.setDisabled(True) # TODO: Will reactivate these on later version # self.axial_title = QLabel(self.imageframe) # self.coronal_title = QLabel(self.imageframe) # self.sagittal_title = QLabel(self.imageframe) # # self.axialL_label = QLabel(self.imageframe) # self.axialA_label = QLabel(self.imageframe) # self.axialR_label = QLabel(self.imageframe) # self.axialP_label = QLabel(self.imageframe) # # self.sagittalS_label = QLabel(self.imageframe) # self.sagittalA_label = QLabel(self.imageframe) # self.sagittalI_label = QLabel(self.imageframe) # self.sagittalP_label = QLabel(self.imageframe) # # self.coronalL_label = QLabel(self.imageframe) # self.coronalS_label = QLabel(self.imageframe) # self.coronalR_label = QLabel(self.imageframe) # self.coronalI_label = QLabel(self.imageframe) # # self.axial_title.setTextFormat(Qt.MarkdownText) # self.axialL_label.setTextFormat(Qt.MarkdownText) # self.axialA_label.setTextFormat(Qt.MarkdownText) # self.axialR_label.setTextFormat(Qt.MarkdownText) # self.axialP_label.setTextFormat(Qt.MarkdownText) # # self.sagittal_title.setTextFormat(Qt.MarkdownText) # self.sagittalS_label.setTextFormat(Qt.MarkdownText) # self.sagittalA_label.setTextFormat(Qt.MarkdownText) # self.sagittalI_label.setTextFormat(Qt.MarkdownText) # self.sagittalP_label.setTextFormat(Qt.MarkdownText) # # self.coronal_title.setTextFormat(Qt.MarkdownText) # self.coronalL_label.setTextFormat(Qt.MarkdownText) # self.coronalS_label.setTextFormat(Qt.MarkdownText) # self.coronalR_label.setTextFormat(Qt.MarkdownText) # self.coronalI_label.setTextFormat(Qt.MarkdownText) # # self.axial_title.setAlignment(Qt.AlignCenter) # self.axialL_label.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) # self.axialA_label.setAlignment(Qt.AlignBottom | Qt.AlignHCenter) # self.axialR_label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter) # self.axialP_label.setAlignment(Qt.AlignHCenter | Qt.AlignTop) # # self.sagittal_title.setAlignment(Qt.AlignCenter) # self.sagittalS_label.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) # self.sagittalA_label.setAlignment(Qt.AlignBottom | Qt.AlignHCenter) # self.sagittalI_label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter) # self.sagittalP_label.setAlignment(Qt.AlignHCenter | Qt.AlignTop) # # self.coronal_title.setAlignment(Qt.AlignCenter) # self.coronalL_label.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) # self.coronalS_label.setAlignment(Qt.AlignBottom | Qt.AlignHCenter) # self.coronalR_label.setAlignment(Qt.AlignLeading | Qt.AlignLeft | Qt.AlignVCenter) # self.coronalI_label.setAlignment(Qt.AlignHCenter | Qt.AlignTop) def set_controller_frame(self): self.controller_frame = QFrame(self) self.slicecontrol_pane = QGroupBox(self.controller_frame) self.frame_spinbox = QSpinBox(self.slicecontrol_pane) self.xaxis_label = QLabel(self.slicecontrol_pane) self.yaxis_label = QLabel(self.slicecontrol_pane) self.zaxis_label = QLabel(self.slicecontrol_pane) self.frame_label = QLabel(self.slicecontrol_pane) self.xaxis_slider = QSlider(self.slicecontrol_pane) self.yaxis_slider = QSlider(self.slicecontrol_pane) self.zaxis_slider = QSlider(self.slicecontrol_pane) self.frame_slider = QSlider(self.slicecontrol_pane) self.xaxis_spinbox = QSpinBox(self.slicecontrol_pane) self.yaxis_spinbox = QSpinBox(self.slicecontrol_pane) self.zaxis_spinbox = QSpinBox(self.slicecontrol_pane) self.graph_frame = QFrame(self) self.graph_view = pg.PlotWidget(self.graph_frame) self.graph_view.setBackground('w') # TODO: Will reactivate these on later version # self.graph_view = QGraphicsView(self.graph_frame) # self.graphcontrol_pane = QGroupBox(self.graph_frame) # self.addmask_button = QPushButton(self.graphcontrol_pane) # self.removemask_button = QPushButton(self.graphcontrol_pane) # self.mask_listview = QListView(self.graphcontrol_pane) # self.savepng_button = QPushButton(self.graphcontrol_pane) # self.savecsv_button = QPushButton(self.graphcontrol_pane) self.axial_view.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.sagittal_view.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.coronal_view.setAlignment(Qt.AlignHCenter | Qt.AlignVCenter) self.xaxis_slider.setOrientation(Qt.Horizontal) self.yaxis_slider.setOrientation(Qt.Horizontal) self.zaxis_slider.setOrientation(Qt.Horizontal) self.frame_slider.setOrientation(Qt.Horizontal) self.slicecontrol_pane.setAlignment(Qt.AlignCenter) self.xaxis_label.setAlignment(Qt.AlignCenter) self.yaxis_label.setAlignment(Qt.AlignCenter) self.zaxis_label.setAlignment(Qt.AlignCenter) self.frame_label.setAlignment(Qt.AlignCenter) # TODO: Will reactivate these on later version # self.graphcontrol_pane.setAlignment(Qt.AlignCenter) def set_size(self): size = int(config.get('ImageViewer', 'size')) self.imageframe.setLineWidth(0) self.axial_view.setMinimumSize(QSize(size, size)) self.axial_view.setMaximumSize(QSize(size, size)) self.axial_view.setLineWidth(0) self.sagittal_view.setMinimumSize(QSize(size, size)) self.sagittal_view.setMaximumSize(QSize(size, size)) self.sagittal_view.setLineWidth(0) self.coronal_view.setMinimumSize(QSize(size, size)) self.coronal_view.setMaximumSize(QSize(size, size)) self.coronal_view.setLineWidth(0) # TODO: Will reactivate these on later version # self.axialL_label.setMinimumSize(QSize(20, 0)) # self.axialA_label.setMinimumSize(QSize(0, 20)) # self.axialR_label.setMinimumSize(QSize(20, 0)) # self.axialP_label.setMinimumSize(QSize(0, 20)) # self.sagittalS_label.setMinimumSize(QSize(20, 0)) # self.sagittalA_label.setMinimumSize(QSize(0, 20)) # self.sagittalI_label.setMinimumSize(QSize(20, 0)) # self.sagittalP_label.setMinimumSize(QSize(0, 20)) # self.coronalL_label.setMinimumSize(QSize(20, 0)) # self.coronalS_label.setMinimumSize(QSize(0, 20)) # self.coronalR_label.setMinimumSize(QSize(20, 0)) # self.coronalI_label.setMinimumSize(QSize(0, 20)) self.controller_frame.setMinimumSize(QSize(300, 300)) self.controller_frame.setMaximumSize(QSize(400, 300)) self.graph_frame.setMinimumSize(QSize(0, 300)) self.graph_frame.setMaximumSize(QSize(4000, 4000)) self.graph_view.setMaximumSize(QSize(4000, 600)) # TODO: Will reactivate these on later version # self.graphcontrol_pane.setMinimumSize(QSize(300, 0)) # self.graphcontrol_pane.setMaximumSize(QSize(300, 4000)) # self.addmask_button.setMinimumSize(QSize(30, 0)) # self.addmask_button.setMaximumSize(QSize(30, 4000)) # self.removemask_button.setMinimumSize(QSize(30, 0)) # self.removemask_button.setMaximumSize(QSize(30, 4000)) def set_font(self): self.arial_8 = QFont() self.arial_8.setFamily(u"Arial") self.arial_8.setPointSize(8) self.setFont(self.arial_8) # TODO: Will reactivate these on later version # self.axial_title.setFont(self.arial_8) # self.coronal_title.setFont(self.arial_8) # self.sagittal_title.setFont(self.arial_8) # self.axialL_label.setFont(self.arial_8) # self.axialA_label.setFont(self.arial_8) # self.axialR_label.setFont(self.arial_8) # self.axialP_label.setFont(self.arial_8) # self.sagittalS_label.setFont(self.arial_8) # self.sagittalA_label.setFont(self.arial_8) # self.sagittalI_label.setFont(self.arial_8) # self.sagittalP_label.setFont(self.arial_8) # self.coronalL_label.setFont(self.arial_8) # self.coronalS_label.setFont(self.arial_8) # self.coronalR_label.setFont(self.arial_8) # self.coronalI_label.setFont(self.arial_8) self.slicecontrol_pane.setFont(self.arial_8) # TODO: Will reactivate these on later version # self.xaxis_label.setFont(self.arial_8) # self.yaxis_label.setFont(self.arial_8) # self.zaxis_label.setFont(self.arial_8) # self.frame_label.setFont(self.arial_8) # self.graphcontrol_pane.setFont(self.arial_8) # self.addmask_button.setFont(self.arial_8) # self.removemask_button.setFont(self.arial_8) # self.savepng_button.setFont(self.arial_8) # self.savecsv_button.setFont(self.arial_8) def set_palette(self): # Brush gray_text = QBrush(QColor(171, 171, 171, 255)) gray_text.setStyle(Qt.SolidPattern) black_background = QBrush(QColor(0, 0, 0, 255)) black_background.setStyle(Qt.SolidPattern) self.orientation_label_palette = QPalette() self.orientation_label_palette.setBrush(QPalette.Active, QPalette.WindowText, gray_text) self.orientation_label_palette.setBrush(QPalette.Inactive, QPalette.WindowText, gray_text) self.orientation_label_palette.setBrush(QPalette.Disabled, QPalette.WindowText, gray_text) self.ortho_viewer_palette = QPalette() self.ortho_viewer_palette.setBrush(QPalette.Active, QPalette.Base, black_background) self.ortho_viewer_palette.setBrush(QPalette.Inactive, QPalette.Base, black_background) self.ortho_viewer_palette.setBrush(QPalette.Disabled, QPalette.Base, black_background) self.axialA_label.setPalette(self.orientation_label_palette) self.axialL_label.setPalette(self.orientation_label_palette) self.axialR_label.setPalette(self.orientation_label_palette) self.axialP_label.setPalette(self.orientation_label_palette) self.axial_view.setPalette(self.ortho_viewer_palette) self.sagittalS_label.setPalette(self.orientation_label_palette) self.sagittalA_label.setPalette(self.orientation_label_palette) self.sagittalI_label.setPalette(self.orientation_label_palette) self.sagittalP_label.setPalette(self.orientation_label_palette) self.sagittal_view.setPalette(self.ortho_viewer_palette) self.coronalL_label.setPalette(self.orientation_label_palette) self.coronalS_label.setPalette(self.orientation_label_palette) self.coronalR_label.setPalette(self.orientation_label_palette) self.coronalI_label.setPalette(self.orientation_label_palette) self.coronal_view.setPalette(self.ortho_viewer_palette) def set_gridlayouts(self): self.axial_gridLayout = QGridLayout() self.coronal_gridLayout = QGridLayout() self.sagittal_gridLayout = QGridLayout() self.imagecont_gridLayout = QGridLayout(self.slicecontrol_pane) self.imageframe_gridLayout = QGridLayout(self.imageframe) # self.graphcontrol_gridLayout = QGridLayout(self.graphcontrol_pane) self.verticalLayout = QVBoxLayout(self.controller_frame) self.horizontalLayout = QHBoxLayout(self.graph_frame) self.main_gridLayout = QGridLayout(self) # TODO: Will reactivate these on later version # self.imageframe_gridLayout.addWidget(self.axial_title, 0, 1, 1, 1) # self.imageframe_gridLayout.addWidget(self.coronal_title, 0, 2, 1, 1) # self.imageframe_gridLayout.addWidget(self.sagittal_title, 0, 0, 1, 1) # self.axial_gridLayout.addWidget(self.axialL_label, 1, 0, 1, 1) # self.axial_gridLayout.addWidget(self.axialA_label, 0, 1, 1, 1) # self.axial_gridLayout.addWidget(self.axialR_label, 1, 2, 1, 1) # self.axial_gridLayout.addWidget(self.axialP_label, 2, 1, 1, 1) self.axial_gridLayout.addWidget(self.axial_view, 1, 1, 1, 1) # self.sagittal_gridLayout.addWidget(self.sagittalS_label, 1, 0, 1, 1) # self.sagittal_gridLayout.addWidget(self.sagittalA_label, 0, 1, 1, 1) # self.sagittal_gridLayout.addWidget(self.sagittalI_label, 1, 2, 1, 1) # self.sagittal_gridLayout.addWidget(self.sagittalP_label, 2, 1, 1, 1) self.sagittal_gridLayout.addWidget(self.sagittal_view, 1, 1, 1, 1) # self.coronal_gridLayout.addWidget(self.coronalL_label, 1, 0, 1, 1) # self.coronal_gridLayout.addWidget(self.coronalS_label, 0, 1, 1, 1) # self.coronal_gridLayout.addWidget(self.coronalR_label, 1, 2, 1, 1) # self.coronal_gridLayout.addWidget(self.coronalI_label, 2, 1, 1, 1) self.coronal_gridLayout.addWidget(self.coronal_view, 1, 1, 1, 1) self.imagecont_gridLayout.addWidget(self.xaxis_label, 0, 0, 1, 1) self.imagecont_gridLayout.addWidget(self.xaxis_slider, 0, 1, 1, 1) self.imagecont_gridLayout.addWidget(self.xaxis_spinbox, 0, 2, 1, 1) self.imagecont_gridLayout.addWidget(self.yaxis_label, 1, 0, 1, 1) self.imagecont_gridLayout.addWidget(self.yaxis_slider, 1, 1, 1, 1) self.imagecont_gridLayout.addWidget(self.yaxis_spinbox, 1, 2, 1, 1) self.imagecont_gridLayout.addWidget(self.zaxis_label, 2, 0, 1, 1) self.imagecont_gridLayout.addWidget(self.zaxis_slider, 2, 1, 1, 1) self.imagecont_gridLayout.addWidget(self.zaxis_spinbox, 2, 2, 1, 1) self.imagecont_gridLayout.addWidget(self.frame_label, 3, 0, 1, 1) self.imagecont_gridLayout.addWidget(self.frame_slider, 3, 1, 1, 1) self.imagecont_gridLayout.addWidget(self.frame_spinbox, 3, 2, 1, 1) self.imageframe_gridLayout.addLayout(self.axial_gridLayout, 1, 1, 1, 1) self.imageframe_gridLayout.addLayout(self.coronal_gridLayout, 1, 2, 1, 1) self.imageframe_gridLayout.addLayout(self.sagittal_gridLayout, 1, 0, 1, 1) # self.graphcontrol_gridLayout.addWidget(self.addmask_button, 3, 0, 1, 1) # self.graphcontrol_gridLayout.addWidget(self.removemask_button, 3, 1, 1, 1) # self.graphcontrol_gridLayout.addWidget(self.mask_listview, 0, 0, 1, 5) # self.graphcontrol_gridLayout.addWidget(self.savepng_button, 3, 4, 1, 1) # self.graphcontrol_gridLayout.addWidget(self.savecsv_button, 3, 3, 1, 1) self.verticalLayout.addWidget(self.slicecontrol_pane) self.horizontalLayout.addWidget(self.graph_view) # self.horizontalLayout.addWidget(self.graphcontrol_pane) self.main_gridLayout.addWidget(self.imageframe, 0, 0, 1, 2) self.main_gridLayout.addWidget(self.controller_frame, 1, 0, 1, 1) self.main_gridLayout.addWidget(self.graph_frame, 1, 1, 1, 1) def set_objectnames(self): self.setObjectName(u"data_browser") self.imageframe.setObjectName(u"image_frame") self.axial_gridLayout.setObjectName(u"axial_gridLayout") self.coronal_gridLayout.setObjectName(u"coronal_gridLayout") self.sagittal_gridLayout.setObjectName(u"sagittal_gridLayout") # TODO: Will reactivate these on later version # self.axial_title.setObjectName(u"axial_label") # self.coronal_title.setObjectName(u"coronal_label") # self.sagittal_title.setObjectName(u"sagittal_label") self.axial_view.setObjectName(u"axial_view") self.sagittal_view.setObjectName(u"sagittal_view") self.coronal_view.setObjectName(u"coronal_view") # self.axialL_label.setObjectName(u"axialL_label") # self.axialR_label.setObjectName(u"axialR_label") # self.axialA_label.setObjectName(u"axialA_label") # self.axialP_label.setObjectName(u"axialP_label") # self.sagittalS_label.setObjectName(u"sagittalS_label") # self.sagittalA_label.setObjectName(u"sagittalA_label") # self.sagittalI_label.setObjectName(u"sagittalI_label") # self.sagittalP_label.setObjectName(u"sagittalP_label") # self.coronalL_label.setObjectName(u"coronalL_label") # self.coronalS_label.setObjectName(u"coronalS_label") # self.coronalR_label.setObjectName(u"coronalR_label") # self.coronalI_label.setObjectName(u"coronalI_label") self.controller_frame.setObjectName(u"controller_frame") self.slicecontrol_pane.setObjectName(u"slicecontrol_pane") self.xaxis_label.setObjectName(u"xaxis_label") self.xaxis_slider.setObjectName(u"xaxis_slider") self.xaxis_spinbox.setObjectName(u"xaxis_spinbox") self.yaxis_label.setObjectName(u"yaxis_label") self.yaxis_slider.setObjectName(u"yaxis_slider") self.yaxis_spinbox.setObjectName(u"yaxis_spinbox") self.zaxis_label.setObjectName(u"zaxis_label") self.zaxis_slider.setObjectName(u"zaxis_slider") self.zaxis_spinbox.setObjectName(u"zaxis_spinbox") self.frame_label.setObjectName(u"frame_label") self.frame_slider.setObjectName(u"frame_slider") self.frame_spinbox.setObjectName(u"frame_spinbox") self.graph_frame.setObjectName(u"graph_frame") self.graph_view.setObjectName(u"graph_view") # TODO: Will reactivate these on later version # self.graphcontrol_pane.setObjectName(u"graphcontrol_pane") # self.addmask_button.setObjectName(u"addmask_button") # self.removemask_button.setObjectName(u"removemask_button") # self.mask_listview.setObjectName(u"mask_listview") # self.savepng_button.setObjectName(u"savepng_button") # self.savecsv_button.setObjectName(u"savecsv_button") self.imagecont_gridLayout.setObjectName(u"imagecont_gridLayout") self.imageframe_gridLayout.setObjectName(u"imageframe_gridLayout") # self.graphcontrol_gridLayout.setObjectName(u"graphcontrol_gridLayout") self.verticalLayout.setObjectName(u"verticalLayout") self.horizontalLayout.setObjectName(u"horizontalLayout") self.main_gridLayout.setObjectName(u"main_gridLayout") QMetaObject.connectSlotsByName(self) def set_texts(self): self.setWindowTitle(u"Data Browser") # TODO: Will reactivate these on later version # self.axial_title.setText(u"**Axial**") # self.coronal_title.setText(u"**Coronal**") # self.sagittal_title.setText(u"**Sagittal**") # self.sagittalS_label.setText(u"**S**") # self.sagittalA_label.setText(u"**A**") # self.sagittalI_label.setText(u"**I**") # self.sagittalP_label.setText(u"**P**") # self.axialL_label.setText(u"**L**") # self.axialA_label.setText(u"**A**") # self.axialR_label.setText(u"**R**") # self.axialP_label.setText( u"**P**") # self.coronalL_label.setText(u"**L**") # self.coronalS_label.setText(u"**S**") # self.coronalR_label.setText(u"**R**") # self.coronalI_label.setText(u"**I**") self.slicecontrol_pane.setTitle(u"Slice Control Pane") self.xaxis_label.setText(u"x") self.yaxis_label.setText(u"y") self.zaxis_label.setText(u"z") self.frame_label.setText(u"Frame") # TODO: Will reactivate these on later version # self.graphcontrol_pane.setTitle(u"Graph Control Pane") # self.addmask_button.setText(u"+") # self.removemask_button.setText(u"-") # self.savepng_button.setText(u"toPNG") # self.savecsv_button.setText(u"toCSV") def plot_timecourse(self, x, y): self.graph_frame.setEnabled(True) self.graph_view.clear() pen = pg.mkPen(color=(255, 0, 0)) if x is None: x = [0] y = [y] self.graph_view.plot(x, y, pen=pen, symbol='o') else: self.graph_view.plot(x, y, pen=pen) def get_coord(self): x = self.xaxis_slider.value() y = self.yaxis_slider.value() z = self.zaxis_slider.value() return (x, y, z)
class PreprocessingImageWindow(QMainWindow): def close_application(self): """ This function close the window. """ sys.exit() def save(self) : self.dico = saveColumn1Dataset (self.dataset_path) saveColumn2Dataset (self.training_data, self.dico, self.file_name) def showTable(self): """ This function display the corresponding matrix to an image """ self.tableWidget.setVisible (True) if hasattr (self, 'image') : self.image.setVisible (False) self.pushButton_table.setEnabled (False) self.pushButton_next.setEnabled(True) global index_data_pre self.frame_3.setGeometry (QtCore.QRect (10, 180, 1000, 450)) self.tableWidget.setRowCount(int (globals.height_m)) self.tableWidget.setColumnCount(int (globals.length_m)) matrix_image, id_class = self.training_data[globals.index_data_pre] for i, row in enumerate (matrix_image) : for j, val in enumerate (row) : self.tableWidget.setItem (i, j, QTableWidgetItem (str (val))) def preprocess(self): """ This function preprocess an image dataset. """ if self.dataset_path != None : if self.input_length.text() == "0" or self.input_length.text() == "": self.input_length.setText("30") if self.input_height.text() == "0" or self.input_height.text() == "": self.input_height.setText("30") # Setting values for matrix sizes global length_m global height_m globals.length_m = int(self.input_length.text()) globals.height_m = int(self.input_height.text()) ## Preprocessing global input_array global output_array f = open(self.dataset_path,'r') categories = list() f.readline() for ligne in f.readlines() : var=ligne.strip().split(',') classe=var[1] #class if classe not in categories : categories.append(classe) self.training_data = Preprocessing (self.dataset_path, self.file_path) for i in range (len (self.training_data)) : matrix, id_class = self.training_data[i] globals.input_array.append (matrix) globals.output_array.append (categories[id_class]) self.start.setEnabled (False) self.input_height.setEnabled(False) self.input_length.setEnabled (False) self.pushButton_table.setEnabled (True) self.pushButton_save.setEnabled (True) def open_dataset (self) : """ This function looks for the csv file and initializes the Window attributes. """ global dataset_name dlg = QFileDialog() dlg.setFileMode(QFileDialog.AnyFile) dlg.selectNameFilter("Csv data files (*.csv)") dlg.setNameFilter("Arff data files (*.arff) ;; Csv data files (*.csv) ;; All files (*.*)") filenames = [] if dlg.exec_(): filenames = dlg.selectedFiles() f = open(filenames[0], 'r') self.dataset_path = str(filenames[0]) with f: self.textEdit.setText(filenames[0].split('/')[-1]) self.file_name = filenames[0].split('/')[-1].split('.')[0] if self.dataset_path != None : self.file_path = os.path.dirname(self.dataset_path) + globals.directory globals.dataset_name = self.file_name ## RESET global input_height global input_length global index_data global index_data_pre global input_array global output_array globals.input_height = 0 globals.input_length = 0 globals.index_data = 0 globals.index_data_pre = 0 globals.input_array = [] globals.output_array = [] self.frame_3.setGeometry(QtCore.QRect(10, 180, 1000, 450)) self.pushButton_next.setEnabled (False) self.pushButton_previous.setEnabled (False) self.start.setEnabled (False) self.valider.setEnabled(True) self.pushButton_save.setEnabled (False) self.pushButton_table.setEnabled (False) if hasattr (self, 'tableWidget') : self.tableWidget.setVisible (False) if hasattr (self, 'image') : self.image.setVisible (False) def get_dataset_information(self): """ This function gets information about the dataset such as the number of instances and the number of classes. """ text="Nombre d'instances: "+str(get_number_instances(self.dataset_path)) self.label_instances.setText(text) text = "Nombre de classes: " + str (get_number_class (self.dataset_path)) self.label_classes.setText(text) self.input_height.setEnabled(True) self.input_length.setEnabled(True) self.valider.setEnabled (False) self.start.setEnabled(True) self.pushButton_next.setEnabled (True) if hasattr (self, 'training_data') : self.pushButton_table.setEnabled (True) self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450)) if not hasattr (self, 'image') : self.image = QLabel (self.frame_3) self.image.setGeometry (QtCore.QRect (0,0,500, 450)) self.image.setObjectName ("image") image_list = [] global index_data csv_file = open (self.dataset_path, "r") csv_file.readline() for line in csv_file.readlines() : var = line.strip().split(',') image_list.append (var[0]) csv_file.close() self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450)) self.image.show() def previous_state(self): """ This function returns to the previous instance in the dataset. """ global index_data global index_data_pre if self.pushButton_table.isEnabled() or not hasattr(self, 'training_data'): if globals.index_data - 1 >= 0 : globals.index_data -= 1 if globals.index_data - 1 < 0: self.pushButton_next.setEnabled(True) self.pushButton_previous.setEnabled(False) else : if globals.index_data_pre - 1 >= 0 : globals.index_data_pre -= 1 if globals.index_data_pre - 1 < 0: self.pushButton_next.setEnabled(True) self.pushButton_previous.setEnabled(False) if not self.valider.isEnabled () and not hasattr(self, "training_data"): if hasattr (self, 'training_data') and self.start.isEnabled(): self.pushButton_table.setEnabled(False) elif hasattr (self, 'training_data') : self.pushButton_table.setEnabled (True) self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450)) if not hasattr (self, 'image') : self.image = QLabel (self.frame_3) self.image.setGeometry (QtCore.QRect (0,0,500, 450)) self.image.setObjectName ("image") image_list = [] global index_data csv_file = open (self.dataset_path, "r") csv_file.readline() for line in csv_file.readlines() : var = line.strip().split(',') image_list.append (var[0]) csv_file.close() self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450)) self.image.show() else : self.showTable() def next_state(self): """ This function goes to the next instance in the dataset. """ global index_data global index_data_pre if self.pushButton_table.isEnabled() or not hasattr( self, 'training_data' ): # Image Mode if globals.index_data + 1 < get_number_instances (self.dataset_path): globals.index_data += 1 if globals.index_data + 1 >= get_number_instances(self.dataset_path): self.pushButton_next.setEnabled(False) self.pushButton_previous.setEnabled(True) else : if globals.index_data_pre + 1 < get_number_instances (self.dataset_path) * 2: globals.index_data_pre += 1 if globals.index_data_pre + 1 >= get_number_instances(self.dataset_path): self.pushButton_next.setEnabled(False) self.pushButton_previous.setEnabled(True) if not self.valider.isEnabled () and not hasattr (self, "training_data"): if hasattr (self, 'training_data') and self.start.isEnabled(): self.pushButton_table.setEnabled(False) elif hasattr (self, 'training_data') : self.pushButton_table.setEnabled (True) self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450)) if not hasattr (self, 'image') : self.image = QLabel (self.frame_3) self.image.setGeometry (QtCore.QRect (0,0,500, 450)) self.image.setObjectName ("image") image_list = [] global index_data csv_file = open (self.dataset_path, "r") csv_file.readline() for line in csv_file.readlines() : var = line.strip().split(',') image_list.append (var[0]) csv_file.close() self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450)) self.image.show() else : self.showTable () ## GUI def __init__(self, *args, **kwargs): super(PreprocessingImageWindow, self).__init__(*args, **kwargs) self.file_path = None self.file_name = None self.dataset_path = None self.setObjectName("self") self.resize(1280, 720) self.setAutoFillBackground(True) self.setFixedSize(1280, 720) self.centralwidget = QWidget(self) self.centralwidget.setAutoFillBackground(True) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QGridLayout(self.centralwidget) self.gridLayout.setObjectName("gridLayout") self.tabWidget = QTabWidget(self.centralwidget) self.tabWidget.setAutoFillBackground(True) self.tabWidget.setObjectName("tabWidget") ## INFO BOX: self.tab1 = QWidget() self.tab1.setAutoFillBackground(True) self.tab1.setObjectName("tab1") self.frame = QFrame(self.tab1) self.frame.setGeometry(QtCore.QRect(10, 60, 1000, 111)) self.frame.setAutoFillBackground(True) self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.frame.setObjectName("frame") self.label_2 = QLabel(self.frame) self.label_2.setGeometry(QtCore.QRect(11, 10, 184, 17)) font = QtGui.QFont() font.setItalic(True) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.widget = QWidget(self.frame) self.widget.setGeometry(QtCore.QRect(100, 30, 301, 65)) self.widget.setObjectName("widget") self.verticalLayout = QVBoxLayout(self.widget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.label_instances = QLabel(self.widget) self.label_instances.setObjectName("label_instances") self.verticalLayout.addWidget(self.label_instances) self.label_classes = QLabel(self.widget) self.label_classes.setObjectName("label_classes") self.verticalLayout.addWidget(self.label_classes) ## Frame 2 PARAMETERS self.frame_2 = QFrame(self.tab1) self.frame_2.setGeometry(QtCore.QRect(1030, 60, 211, 261)) self.frame_2.setAutoFillBackground(True) self.frame_2.setFrameShape(QFrame.StyledPanel) self.frame_2.setFrameShadow(QFrame.Raised) self.frame_2.setObjectName("frame_2") self.toolBox = QToolBox(self.frame_2) self.toolBox.setGeometry(QtCore.QRect(10, 40, 191, 151)) self.toolBox.setObjectName("toolBox") self.page_resize = QWidget() self.page_resize.setGeometry(QtCore.QRect(100, 0, 191, 89)) self.page_resize.setObjectName("page_resize") self.layoutWidget = QWidget(self.page_resize) self.layoutWidget.setGeometry(QtCore.QRect(0, 0, 188, 52)) self.layoutWidget.setObjectName("layoutWidget") self.verticalLayout_2 = QVBoxLayout(self.layoutWidget) self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_2.setObjectName("verticalLayout_2") self.form = QFormLayout () self.input_length = QLineEdit() self.input_length.setValidator (QtGui.QIntValidator()) self.input_length.setObjectName("Choose_length") self.verticalLayout_2.addWidget(self.input_length) self.input_length.setEnabled (False) self.input_height = QLineEdit() self.input_height.setValidator (QtGui.QIntValidator()) self.input_height.setObjectName("Choose_height") self.verticalLayout_2.addWidget(self.input_height) self.input_height.setEnabled (False) self.form.addRow ("Length :", self.input_length) self.start = QPushButton(self.frame_2) self.start.setObjectName("pushButton_start") self.verticalLayout_2.addWidget(self.start) self.page_resize.setLayout (self.form) self.form.addRow ("height :", self.input_height) self.form.addRow (self.start) self.input_length.setText ("40") self.input_height.setText ("40") self.toolBox.addItem(self.page_resize, "") self.label_3 = QLabel(self.frame_2) self.label_3.setGeometry(QtCore.QRect(10, 10, 181, 17)) font = QtGui.QFont() font.setItalic(True) self.label_3.setFont(font) self.label_3.setObjectName("label_3") ## Frame 3 DISPLAY self.frame_3 = QFrame(self.tab1) self.frame_3.setGeometry(QtCore.QRect(10, 180, 1000, 450)) self.frame_3.setAutoFillBackground(True) self.frame_3.setFrameShape(QFrame.StyledPanel) self.frame_3.setFrameShadow(QFrame.Raised) self.frame_3.setObjectName("frame_3") ## Display matrix self.tableWidget = QTableWidget(self.frame_3) self.tableWidget.setGeometry(QtCore.QRect(0, 0, 1000, 450)) self.tableWidget.setAutoFillBackground(True) self.tableWidget.setObjectName("tableWidget") self.tableWidget.setColumnCount(0) self.tableWidget.setRowCount(0) ## Frame 4 VISUALIZATION self.frame_4 = QFrame(self.tab1) self.frame_4.setGeometry(QtCore.QRect(1030, 330, 211, 191)) self.frame_4.setFrameShape(QFrame.StyledPanel) self.frame_4.setFrameShadow(QFrame.Raised) self.frame_4.setObjectName("frame_4") ## BUTTON FOR VISUALIZATION self.pushButton_previous= QPushButton(self.frame_4) self.pushButton_previous.setGeometry(QtCore.QRect(50, 40, 121, 41)) self.pushButton_previous.setIconSize(QtCore.QSize(30, 30)) self.pushButton_previous.setAutoDefault(False) self.pushButton_previous.setDefault(False) self.pushButton_previous.setFlat(False) self.pushButton_previous.setObjectName("pushButton_previous") self.pushButton_next = QPushButton(self.frame_4) self.pushButton_next.setGeometry(QtCore.QRect(50, 85, 121, 41)) self.pushButton_next.setObjectName("pushButton_next") self.pushButton_table = QPushButton (self.frame_4) self.pushButton_table.setGeometry (QtCore.QRect (50, 130, 121, 41)) self.pushButton_table.setObjectName ("pushButton_table") ## SAVE self.frame_5 = QFrame(self.tab1) self.frame_5.setGeometry(QtCore.QRect(1080, 550, 121, 41)) self.frame_5.setFrameShape(QFrame.StyledPanel) self.frame_5.setFrameShadow(QFrame.Raised) self.frame_5.setObjectName("frame_5") self.pushButton_save = QPushButton (self.frame_5) self.pushButton_save.setGeometry (QtCore.QRect (0, 0, 121, 41)) self.pushButton_save.setObjectName ("pushButton_save") ## RETURN BUTTON self.frame_6 = QFrame(self.tab1) self.frame_6.setGeometry(QtCore.QRect(1080, 10, 121, 41)) self.frame_6.setFrameShape(QFrame.StyledPanel) self.frame_6.setFrameShadow(QFrame.Raised) self.frame_6.setObjectName("frame_6") self.pushButton_return = QPushButton (self.frame_6) self.pushButton_return.setGeometry (QtCore.QRect (0, 0, 121, 41)) self.pushButton_return.setObjectName ("pushButton_return") self.label_4 = QLabel(self.frame_4) self.label_4.setGeometry(QtCore.QRect(10, 10, 111, 17)) font = QtGui.QFont() font.setItalic(True) self.label_4.setFont(font) self.label_4.setObjectName("label_4") self.layoutWidget2 = QWidget(self.tab1) self.layoutWidget2.setGeometry(QtCore.QRect(10, 20, 611, 31)) self.layoutWidget2.setObjectName("layoutWidget2") self.horizontalLayout = QHBoxLayout(self.layoutWidget2) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") self.label = QLabel(self.layoutWidget2) font = QtGui.QFont() font.setItalic(True) self.label.setFont(font) self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) self.textEdit = QTextEdit(self.layoutWidget2) self.textEdit.setObjectName("textEdit") self.horizontalLayout.addWidget(self.textEdit) self.toolButton = QToolButton(self.layoutWidget2) self.toolButton.setObjectName("toolButton") self.horizontalLayout.addWidget(self.toolButton) self.valider = QPushButton(self.layoutWidget2) self.valider.setObjectName("valider") self.horizontalLayout.addWidget(self.valider) self.tabWidget.addTab(self.tab1, "") self.gridLayout.addWidget(self.tabWidget, 0, 1, 1, 1) self.setCentralWidget(self.centralwidget) self.lbl = QLabel(self.frame_3) self.lbl.setGeometry(QtCore.QRect(10, 180, 0, 381)) ## ACTIVATED OR NOT self.tableWidget.setVisible(False) self.pushButton_next.setEnabled(False) self.pushButton_previous.setEnabled(False) self.valider.setEnabled(False) self.start.setEnabled(False) self.pushButton_table.setEnabled (False) self.pushButton_save.setEnabled (False) self.toolButton.clicked.connect(self.open_dataset) self.start.clicked.connect(self.preprocess) self.pushButton_previous.clicked.connect(self.previous_state) self.pushButton_next.clicked.connect(self.next_state) self.valider.clicked.connect (self.get_dataset_information) self.pushButton_table.clicked.connect (self.showTable) self.pushButton_save.clicked.connect (self.save) p = QtGui.QPalette() p.setColor(QtGui.QPalette.Window, QtGui.QColor(133,132,130)) p.setColor(QtGui.QPalette.Button, QtGui.QColor(153,150,150)) p.setColor(QtGui.QPalette.WindowText, QtGui.QColor(13,13,12)) p.setColor(self.toolBox.backgroundRole(), QtGui.QColor(189,187,185)) p.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(13,13,12)) self.setPalette(p) self.retranslateUi(self) self.tabWidget.setCurrentIndex(0) self.toolBox.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(self) def retranslateUi(self,MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Graphic Interface")) self.label_2.setText(_translate("MainWindow", "Dataset Information:")) self.label_instances.setText(_translate("MainWindow", "Number of instances:")) self.label_classes.setText(_translate("MainWindow", "Number of classes:")) self.label.setText(_translate("MainWindow", "Select a dataset:")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab1), _translate("MainWindow", "Preprocessing")) self.toolBox.setItemText(self.toolBox.indexOf(self.page_resize), _translate("MainWindow", "Resizing")) self.label_3.setText(_translate("MainWindow", "Preprocessing parameters:")) self.start.setText(_translate("MainWindow", "Start")) self.pushButton_previous.setText(_translate("MainWindow", "Previous image")) self.pushButton_next.setText(_translate("MainWindow", "Next image")) self.pushButton_table.setText (_translate ("MainWindow", "Show Matrix")) self.pushButton_save.setText (_translate ("MainWindow", "Save")) self.pushButton_return.setText (_translate ("MainWindow", "Back")) self.label_4.setText(_translate("MainWindow", "Visualization:")) self.toolButton.setText(_translate("MainWindow", "...")) self.valider.setText(_translate("MainWindow", "Validate"))