コード例 #1
0
ファイル: editor.py プロジェクト: coyove/RouteMaster
    def __init__(self):
        super().__init__()

        self.searcher = SvgSearch(BLOCK_DIR)
        SvgSource.Search = self.searcher
        SvgSource.Parent = self

        self.loader = Loader()
        # self.loader.addTask("MFADEf")

        self.setWindowTitle(APP_NAME)
        self.setGeometry(0, 0, 800, 500)

        bar = QStatusBar(self)
        self.barPosition = QLabel(bar)
        bar.addWidget(self.barPosition, 1)
        self.barSelection = QLabel(bar)
        bar.addWidget(self.barSelection, 1)
        self.barZoom = QLabel(bar)
        bar.addWidget(self.barZoom, 1)
        self.barCursor = QLabel(bar)
        bar.addWidget(self.barCursor, 1)
        self.barHistory = QLabel(bar)
        bar.addWidget(self.barHistory, 1)
        self.setStatusBar(bar)

        main = QWidget(self)
        vbox = QVBoxLayout()
        vbox.setContentsMargins(0, 0, 0, 0)

        self.propertyPanel = Property(main)

        self.searchBox = QLineEdit(self)
        self.searchBox.setPlaceholderText(TR('Search blocks'))
        self.searchBox.textChanged.connect(self.updateSearches)
        # self.searchBox.returnPressed.connect(self.searchBlocks)
        self.searchResults = SvgBar(self)
        vbox.addWidget(
            Property._genVBox(self, self.searchBox, self.searchResults, 8))

        main.setLayout(vbox)
        self.setCentralWidget(main)

        splitter = QSplitter(QtCore.Qt.Orientation.Horizontal)
        splitter.addWidget(self.propertyPanel)

        self.mapview = Map(main)
        self._updateCurrentFile('')
        splitter.addWidget(self.mapview)

        splitter.setStretchFactor(1, 2)
        splitter.setSizes([100, 100])
        vbox.addWidget(splitter, 255)

        self.topMenus = {}
        self._addMenu(TR('&File'), TR('&New'), 'Ctrl+N', self.doNew)
        self._addMenu(TR('&File'), TR('&New Window'), 'Ctrl+Shift+N',
                      lambda x: startNew())
        self._addMenu(TR('&File'), '-')
        self._addMenu(TR('&File'), TR('&Open'), 'Ctrl+O', self.doOpen)
        self._addMenu(TR('&File'), '-')
        self._addMenu(TR('&File'), TR('&Save'), 'Ctrl+S', self.doSave)
        self._addMenu(TR('&File'), TR('&Save As...'), 'Ctrl+Shift+S',
                      self.doSaveAs)
        self._addMenu(TR('&File'), '-')
        self._addMenu(TR('&File'), TR('&Export PNG...'), '',
                      lambda x: self.doExportPngSvg(png=True))
        self._addMenu(TR('&File'), TR('E&xport SVG...'), '',
                      lambda x: self.doExportPngSvg(png=False))
        self._addMenu(TR('&File'), '-')
        self._addMenu(TR('&File'), TR('&File Properties...'), 'F3',
                      lambda x: FileProperty(self, self.fileMeta).exec_())
        self._addMenu(TR('&File'), '-')
        self._addMenu(
            TR('&File'), TR('&Open Data Folder'), '',
            lambda x: QtGui.QDesktopServices.openUrl(
                QtCore.QUrl.fromLocalFile(BLOCK_DIR)))
        self._addMenu(TR('&File'), TR('&Download SVG Blocks'), '',
                      self.actDownloadBlocks)
        self._addMenu(TR('&File'), '-')
        self._addMenu(TR('&File'), TR('&Quit'), '',
                      lambda x: self._askSave(thenQuit=True))

        self._addMenu(TR('&Edit'), TR('&Undo'), '',
                      lambda x: self.mapview.actUndoRedo())
        self._addMenu(TR('&Edit'), TR('&Redo'), '',
                      lambda x: self.mapview.actUndoRedo(redo=True))
        self._addMenu(TR('&Edit'), '-')
        self._addMenu(TR('&Edit'), TR('&Cut'), '',
                      lambda x: self.mapview.actCut())
        self._addMenu(TR('&Edit'), TR('&Copy'), '',
                      lambda x: self.mapview.actCopy())
        self._addMenu(TR('&Edit'), TR('&Paste'), '',
                      lambda x: self.mapview.actPaste())
        self._addMenu(TR('&Edit'), '-')
        self._addMenu(TR('&Edit'), TR('&Clear History'), 'Ctrl+K',
                      lambda x: self.mapview.data.clearHistory())
        self._addMenu(TR('&Edit'), '-')
        self._addMenu(TR('&Edit'), TR('&Select by Text'), 'Ctrl+F',
                      lambda x: self.mapview.actSelectByText())

        self._addMenu(TR('&View'), TR('&Center'), '',
                      lambda x: self.mapview.center())
        self._addMenu(TR('&View'), TR('Center &Selected'), 'Ctrl+Shift+H',
                      lambda x: self.mapview.center(selected=True))
        self._addMenu(TR('&View'), TR('100% &Zoom'), '',
                      lambda x: self.mapview.center(resetzoom=True))
        self._addMenu(TR('&View'), '-')
        self.showRuler = self._addMenu(TR('&View'), TR('&Ruler'), '',
                                       self.actShowRuler)
        self.showRuler.setCheckable(True)
        self.mapview.showRuler = not FLAGS["hide_ruler"]
        self.showRuler.setChecked(self.mapview.showRuler)
        self._addMenu(TR('&View'), '-')
        self._addMenu(TR('&View'), TR('&Logs'), '',
                      lambda x: Logger(self, logfile).exec_())

        self._addMenu(TR('&Help'), TR('&About'), '',
                      lambda x: About(self).exec_()).setMenuRole(
                          QAction.MenuRole.AboutRole)

        self.propertyPanel.update()
        self.showMaximized()

        self.fileMeta = {}
        import socket
        self.resetFileMeta = lambda: self.__setattr__(
            "fileMeta", {
                "author": socket.gethostname(),
                "desc": APP_NAME
            })
        self.resetFileMeta()

        self.load(args.file or '')

        if args.convert:
            self.setVisible(False)
            if args.convert.endswith('.svg'):
                exportMapDataSvg(self, args.convert, self.mapview.data)
            else:
                self.mapview.scale = float(args.png_scale)
                exportMapDataPng(self, args.convert, self.mapview.data)
            print('Successfully export to {}'.format(args.convert))
            sys.exit(0)
コード例 #2
0
 def _createStatusBar(self):
     status = QStatusBar()
     status.showMessage("")
     self.setStatusBar(status)
コード例 #3
0
ファイル: gui.py プロジェクト: Jerryhu1/MasterThesis
 def _createLowerbar(self):
     status = QStatusBar()
     status.showMessage("I'm the Status Bar")
     self.setStatusBar(status)
コード例 #4
0
    def _setupUi(self):
        self.setWindowTitle(tr("{} Results").format(self.app.NAME))
        self.resize(630, 514)
        self.centralwidget = QWidget(self)
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setSpacing(0)
        self.actionsButton = QPushButton(tr("Actions"))
        self.detailsButton = QPushButton(tr("Details"))
        self.dupesOnlyCheckBox = QCheckBox(tr("Dupes Only"))
        self.deltaValuesCheckBox = QCheckBox(tr("Delta Values"))
        self.searchEdit = SearchEdit()
        self.searchEdit.setMaximumWidth(300)
        self.horizontalLayout = horizontalWrap(
            [
                self.actionsButton,
                self.detailsButton,
                self.dupesOnlyCheckBox,
                self.deltaValuesCheckBox,
                None,
                self.searchEdit,
                8,
            ]
        )
        self.horizontalLayout.setSpacing(8)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.resultsView = ResultsView(self.centralwidget)
        self.resultsView.setSelectionMode(QAbstractItemView.ExtendedSelection)
        self.resultsView.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.resultsView.setSortingEnabled(True)
        self.resultsView.setWordWrap(False)
        self.resultsView.verticalHeader().setVisible(False)
        h = self.resultsView.horizontalHeader()
        h.setHighlightSections(False)
        h.setSectionsMovable(True)
        h.setStretchLastSection(False)
        h.setDefaultAlignment(Qt.AlignLeft)
        self.verticalLayout.addWidget(self.resultsView)
        self.setCentralWidget(self.centralwidget)
        self._setupActions()
        self._setupMenu()
        self.statusbar = QStatusBar(self)
        self.statusbar.setSizeGripEnabled(True)
        self.setStatusBar(self.statusbar)
        self.statusLabel = QLabel(self)
        self.statusbar.addPermanentWidget(self.statusLabel, 1)

        if self.app.prefs.resultWindowIsMaximized:
            self.setWindowState(self.windowState() | Qt.WindowMaximized)
        else:
            if self.app.prefs.resultWindowRect is not None:
                self.setGeometry(self.app.prefs.resultWindowRect)
                # if not on any screen move to center of default screen
                # moves to center of closest screen if partially off screen
                frame = self.frameGeometry()
                if QDesktopWidget().screenNumber(self) == -1:
                    moveToScreenCenter(self)
                elif QDesktopWidget().availableGeometry(self).contains(frame) is False:
                    frame.moveCenter(QDesktopWidget().availableGeometry(self).center())
                    self.move(frame.topLeft())
            else:
                moveToScreenCenter(self)
    def __init__(self):
        super(PasswordChangeWrappedUI, self).__init__()
        self.setupUi(self)
        self.statusBar = QStatusBar()

        print("PasswordChangeWrappedUI", self.label_avatar.text())
コード例 #6
0
 def __init__(self, main_client_window):
     main_client_window.setObjectName("MainClientWindow")
     main_client_window.resize(756, 534)
     main_client_window.setMinimumSize(QSize(756, 534))
     self.centralwidget = QWidget(main_client_window)
     self.centralwidget.setObjectName("centralwidget")
     self.label_contacts = QLabel(self.centralwidget)
     self.label_contacts.setGeometry(QRect(10, 0, 101, 16))
     self.label_contacts.setObjectName("label_contacts")
     self.btn_add_contact = QPushButton(self.centralwidget)
     self.btn_add_contact.setGeometry(QRect(10, 450, 121, 31))
     self.btn_add_contact.setObjectName("btn_add_contact")
     self.btn_remove_contact = QPushButton(self.centralwidget)
     self.btn_remove_contact.setGeometry(QRect(140, 450, 121, 31))
     self.btn_remove_contact.setObjectName("btn_remove_contact")
     self.label_history = QLabel(self.centralwidget)
     self.label_history.setGeometry(QRect(300, 0, 391, 21))
     self.label_history.setObjectName("label_history")
     self.text_message = QTextEdit(self.centralwidget)
     self.text_message.setGeometry(QRect(300, 360, 441, 71))
     self.text_message.setObjectName("text_message")
     self.label_new_message = QLabel(self.centralwidget)
     self.label_new_message.setGeometry(QRect(300, 270, 450, 76))
     self.label_new_message.setObjectName("label_new_message")
     self.text_menu = QMenuBar(self.label_new_message)
     self.text_menu.move(0, 51)
     self.action_bold = QAction(QIcon(os.path.join(STATIC, 'img/b.jpg')),
                                'Bold', self.text_message)
     self.action_italic = QAction(QIcon(os.path.join(STATIC, 'img/i.jpg')),
                                  'Italic', self.text_message)
     self.action_underlined = QAction(
         QIcon(os.path.join(STATIC, 'img/u.jpg')), 'Underlined',
         self.text_message)
     self.action_smile = QAction(
         QIcon(os.path.join(STATIC, 'img/smile.gif')), 'smile',
         self.text_message)
     self.list_contacts = QListView(self.centralwidget)
     self.list_contacts.setGeometry(QRect(10, 20, 251, 411))
     self.list_contacts.setObjectName("list_contacts")
     self.list_messages = QListView(self.centralwidget)
     self.list_messages.setGeometry(QRect(300, 20, 441, 271))
     self.list_messages.setObjectName("list_messages")
     self.btn_send = QPushButton(self.centralwidget)
     self.btn_send.setGeometry(QRect(610, 450, 131, 31))
     self.btn_send.setObjectName("btn_send")
     self.btn_clear = QPushButton(self.centralwidget)
     self.btn_clear.setGeometry(QRect(460, 450, 131, 31))
     self.btn_clear.setObjectName("btn_clear")
     main_client_window.setCentralWidget(self.centralwidget)
     self.menubar = QMenuBar(main_client_window)
     self.menubar.setGeometry(QRect(0, 0, 756, 21))
     self.menubar.setObjectName("menubar")
     self.menu_file = QMenu(self.menubar)
     self.menu_file.setObjectName("file")
     self.menu_contacts = QMenu(self.menubar)
     self.menu_contacts.setObjectName("contacts")
     self.menu_profile = QMenu(self.menubar)
     self.menu_profile.setObjectName("profile")
     main_client_window.setMenuBar(self.menubar)
     self.statusBar = QStatusBar(main_client_window)
     self.statusBar.setObjectName("statusBar")
     main_client_window.setStatusBar(self.statusBar)
     self.menu_exit = QAction(main_client_window)
     self.menu_exit.setObjectName("menu_exit")
     self.menu_add_contact = QAction(main_client_window)
     self.menu_add_contact.setObjectName("menu_add_contact")
     self.menu_del_contact = QAction(main_client_window)
     self.menu_del_contact.setObjectName("menu_del_contact")
     self.menu_file.addAction(self.menu_exit)
     self.menu_contacts.addAction(self.menu_add_contact)
     self.menu_contacts.addAction(self.menu_del_contact)
     self.menu_contacts.addSeparator()
     self.menu_profile_avatar = QAction(main_client_window)
     self.menu_profile_avatar.setObjectName("menu_profile_avatar")
     self.menu_profile.addAction(self.menu_profile_avatar)
     self.menu_profile.addSeparator()
     self.menubar.addAction(self.menu_file.menuAction())
     self.menubar.addAction(self.menu_contacts.menuAction())
     self.menubar.addAction(self.menu_profile.menuAction())
     self.retranslate_ui(main_client_window)
     self.btn_clear.clicked.connect(self.text_message.clear)
     QMetaObject.connectSlotsByName(main_client_window)
コード例 #7
0
ファイル: view.py プロジェクト: Rworld-Ravi/biopeaks
    def __init__(self, model, controller):
        super().__init__()

        self._model = model
        self._controller = controller
        self.segmentcursor = False
        self.togglecolors = {"#1f77b4": "m", "m": "#1f77b4"}

        #################################################################
        # define GUI layout and connect input widgets to external slots #
        #################################################################

        self.setWindowTitle("biopeaks")
        self.setGeometry(50, 50, 1750, 750)
        self.setWindowIcon(QIcon(":/python_icon.png"))

        # figure0 for signal
        self.figure0 = Figure()
        self.canvas0 = FigureCanvas(self.figure0)
        self.ax00 = self.figure0.add_subplot(1, 1, 1)
        self.ax00.set_frame_on(False)
        self.figure0.subplots_adjust(left=0.04, right=0.98, bottom=0.25)
        self.line00 = None
        self.scat = None
        self.segmentspan = None

        # figure1 for marker
        self.figure1 = Figure()
        self.canvas1 = FigureCanvas(self.figure1)
        self.ax10 = self.figure1.add_subplot(1, 1, 1, sharex=self.ax00)
        self.ax10.get_xaxis().set_visible(False)
        self.ax10.set_frame_on(False)
        self.figure1.subplots_adjust(left=0.04, right=0.98)
        self.line10 = None

        # figure2 for statistics
        self.figure2 = Figure()
        self.canvas2 = FigureCanvas(self.figure2)
        self.ax20 = self.figure2.add_subplot(3, 1, 1, sharex=self.ax00)
        self.ax20.get_xaxis().set_visible(False)
        self.ax20.set_frame_on(False)
        self.line20 = None
        self.ax21 = self.figure2.add_subplot(3, 1, 2, sharex=self.ax00)
        self.ax21.get_xaxis().set_visible(False)
        self.ax21.set_frame_on(False)
        self.line21 = None
        self.ax22 = self.figure2.add_subplot(3, 1, 3, sharex=self.ax00)
        self.ax22.get_xaxis().set_visible(False)
        self.ax22.set_frame_on(False)
        self.line22 = None
        self.figure2.subplots_adjust(left=0.04, right=0.98)

        # navigation bar
        self.navitools = CustomNavigationToolbar(self.canvas0, self)

        # peak editing
        self.editcheckbox = QCheckBox("editable", self)
        self.editcheckbox.stateChanged.connect(self._model.set_peakseditable)

        # peak saving batch
        self.savecheckbox = QCheckBox("save during batch processing", self)
        self.savecheckbox.stateChanged.connect(self._model.set_savebatchpeaks)

        # peak auto-correction batch
        self.correctcheckbox = QCheckBox("correct during batch processing",
                                         self)
        self.correctcheckbox.stateChanged.connect(
            self._model.set_correctbatchpeaks)

        # selecting stats for saving
        self.periodcheckbox = QCheckBox("period", self)
        self.periodcheckbox.stateChanged.connect(
            lambda: self.select_stats("period"))
        self.ratecheckbox = QCheckBox("rate", self)
        self.ratecheckbox.stateChanged.connect(
            lambda: self.select_stats("rate"))
        self.tidalampcheckbox = QCheckBox("tidal amplitude", self)
        self.tidalampcheckbox.stateChanged.connect(
            lambda: self.select_stats("tidalamp"))

        # channel selection
        self.sigchanmenulabel = QLabel("biosignal")
        self.sigchanmenu = QComboBox(self)
        self.sigchanmenu.addItem("A1")
        self.sigchanmenu.addItem("A2")
        self.sigchanmenu.addItem("A3")
        self.sigchanmenu.addItem("A4")
        self.sigchanmenu.addItem("A5")
        self.sigchanmenu.addItem("A6")
        self.sigchanmenu.currentTextChanged.connect(self._model.set_signalchan)
        # initialize with default value
        self._model.set_signalchan(self.sigchanmenu.currentText())

        self.markerchanmenulabel = QLabel("marker")
        self.markerchanmenu = QComboBox(self)
        self.markerchanmenu.addItem("none")
        self.markerchanmenu.addItem("I1")
        self.markerchanmenu.addItem("I2")
        self.markerchanmenu.addItem("A1")
        self.markerchanmenu.addItem("A2")
        self.markerchanmenu.addItem("A3")
        self.markerchanmenu.addItem("A4")
        self.markerchanmenu.addItem("A5")
        self.markerchanmenu.addItem("A6")
        self.markerchanmenu.currentTextChanged.connect(
            self._model.set_markerchan)
        # initialize with default value
        self._model.set_markerchan(self.markerchanmenu.currentText())

        # processing mode (batch or single file)
        self.batchmenulabel = QLabel("mode")
        self.batchmenu = QComboBox(self)
        self.batchmenu.addItem("single file")
        self.batchmenu.addItem("multiple files")
        self.batchmenu.currentTextChanged.connect(self._model.set_batchmode)
        self.batchmenu.currentTextChanged.connect(self.toggle_options)
        # initialize with default value
        self._model.set_batchmode(self.batchmenu.currentText())
        self.toggle_options(self.batchmenu.currentText())

        # modality selection
        self.modmenulabel = QLabel("modality")
        self.modmenu = QComboBox(self)
        self.modmenu.addItem("ECG")
        self.modmenu.addItem("PPG")
        self.modmenu.addItem("RESP")
        self.modmenu.currentTextChanged.connect(self._model.set_modality)
        self.modmenu.currentTextChanged.connect(self.toggle_options)
        # initialize with default value
        self._model.set_modality(self.modmenu.currentText())
        self.toggle_options(self.modmenu.currentText())

        # segment selection; this widget can be openend / set visible from
        # the menu and closed from within itself (see mapping of segmentermap);
        # it provides utilities to select a segment from the signal
        self.segmentermap = QSignalMapper(self)
        self.segmenter = QDockWidget("select a segment", self)
        # disable closing such that widget can only be closed by confirming
        # selection or custom button
        self.segmenter.setFeatures(QDockWidget.NoDockWidgetFeatures)
        # Limit number of decimals to four.
        regex = QRegExp("[0-9]*\.?[0-9]{4}")
        validator = QRegExpValidator(regex)

        self.startlabel = QLabel("start")
        self.startedit = QLineEdit()
        self.startedit.setValidator(validator)

        self.endlabel = QLabel("end")
        self.endedit = QLineEdit()
        self.endedit.setValidator(validator)

        segmentfromcursor = QAction(QIcon(":/mouse_icon.png"),
                                    "select with mouse", self)
        segmentfromcursor.triggered.connect(self.enable_segmentedit)
        self.startedit.addAction(segmentfromcursor, 1)
        self.endedit.addAction(segmentfromcursor, 1)

        self.previewedit = QPushButton("preview segment")
        lambdafn = lambda: self._model.set_segment(
            [self.startedit.text(), self.endedit.text()])
        self.previewedit.clicked.connect(lambdafn)

        self.confirmedit = QPushButton("confirm segment")
        self.confirmedit.clicked.connect(self._controller.segment_signal)
        self.confirmedit.clicked.connect(self.segmentermap.map)
        self.segmentermap.setMapping(self.confirmedit, 0)

        self.abortedit = QPushButton("abort segmentation")
        self.abortedit.clicked.connect(self.segmentermap.map)
        # reset the segment to None
        self.segmentermap.setMapping(self.abortedit, 2)

        self.segmenterlayout = QFormLayout()
        self.segmenterlayout.addRow(self.startlabel, self.startedit)
        self.segmenterlayout.addRow(self.endlabel, self.endedit)
        self.segmenterlayout.addRow(self.previewedit)
        self.segmenterlayout.addRow(self.confirmedit)
        self.segmenterlayout.addRow(self.abortedit)
        self.segmenterwidget = QWidget()
        self.segmenterwidget.setLayout(self.segmenterlayout)
        self.segmenter.setWidget(self.segmenterwidget)

        self.segmenter.setVisible(False)
        self.segmenter.setAllowedAreas(Qt.RightDockWidgetArea)
        self.addDockWidget(Qt.RightDockWidgetArea, self.segmenter)

        # set up menubar
        menubar = self.menuBar()

        # signal menu
        signalmenu = menubar.addMenu("biosignal")

        openSignal = QAction("load", self)
        openSignal.triggered.connect(self._controller.get_fpaths)
        signalmenu.addAction(openSignal)

        segmentSignal = QAction("select segment", self)
        segmentSignal.triggered.connect(self.segmentermap.map)
        self.segmentermap.setMapping(segmentSignal, 1)
        signalmenu.addAction(segmentSignal)

        self.segmentermap.mapped.connect(self.toggle_segmenter)

        saveSignal = QAction("save", self)
        saveSignal.triggered.connect(self._controller.get_wpathsignal)
        signalmenu.addAction(saveSignal)

        # peak menu
        peakmenu = menubar.addMenu("peaks")

        findPeaks = QAction("find", self)
        findPeaks.triggered.connect(self._controller.find_peaks)
        peakmenu.addAction(findPeaks)

        autocorrectPeaks = QAction("autocorrect", self)
        autocorrectPeaks.triggered.connect(self._controller.autocorrect_peaks)
        peakmenu.addAction(autocorrectPeaks)

        savePeaks = QAction("save", self)
        savePeaks.triggered.connect(self._controller.get_wpathpeaks)
        peakmenu.addAction(savePeaks)

        loadPeaks = QAction("load", self)
        loadPeaks.triggered.connect(self._controller.get_rpathpeaks)
        peakmenu.addAction(loadPeaks)

        # stats menu
        statsmenu = menubar.addMenu("statistics")

        calculateStats = QAction("calculate", self)
        calculateStats.triggered.connect(self._controller.calculate_stats)
        statsmenu.addAction(calculateStats)

        saveStats = QAction("save", self)
        saveStats.triggered.connect(self._controller.get_wpathstats)
        statsmenu.addAction(saveStats)

        # set up status bar to display error messages and current file path
        self.statusBar = QStatusBar()
        self.setStatusBar(self.statusBar)
        self.progressBar = QProgressBar(self)
        self.progressBar.setRange(0, 1)
        self.statusBar.addPermanentWidget(self.progressBar)
        self.currentFile = QLabel()
        self.statusBar.addPermanentWidget(self.currentFile)

        # set up the central widget containing the plot and navigationtoolbar
        self.centwidget = QWidget()
        self.setCentralWidget(self.centwidget)

        # connect canvas0 to keyboard and mouse input for peak editing;
        # only widgets (e.g. canvas) that currently have focus capture
        # keyboard input: "You must enable keyboard focus for a widget if
        # it processes keyboard events."
        self.canvas0.setFocusPolicy(Qt.ClickFocus)
        self.canvas0.setFocus()
        self.canvas0.mpl_connect("key_press_event",
                                 self._controller.edit_peaks)
        self.canvas0.mpl_connect("button_press_event", self.get_xcursor)

        # arrange the three figure canvases in splitter object
        self.splitter = QSplitter(Qt.Vertical)
        # setting opaque resizing to false is important, since resizing gets
        # very slow otherwise once axes are populated
        self.splitter.setOpaqueResize(False)
        self.splitter.addWidget(self.canvas0)
        self.splitter.addWidget(self.canvas1)
        self.splitter.addWidget(self.canvas2)

        # define GUI layout
        self.vlayout0 = QVBoxLayout(self.centwidget)
        self.vlayout1 = QVBoxLayout()
        self.vlayoutA = QFormLayout()
        self.vlayoutB = QFormLayout()
        self.vlayoutC = QVBoxLayout()
        self.vlayoutD = QVBoxLayout()
        self.hlayout0 = QHBoxLayout()
        self.hlayout1 = QHBoxLayout()

        self.optionsgroupA = QGroupBox("processing options")
        self.vlayoutA.addRow(self.modmenulabel, self.modmenu)
        self.vlayoutA.addRow(self.batchmenulabel, self.batchmenu)
        self.optionsgroupA.setLayout(self.vlayoutA)

        self.optionsgroupB = QGroupBox("channels")
        self.vlayoutB.addRow(self.sigchanmenulabel, self.sigchanmenu)
        self.vlayoutB.addRow(self.markerchanmenulabel, self.markerchanmenu)
        self.optionsgroupB.setLayout(self.vlayoutB)

        self.optionsgroupC = QGroupBox("peak options")
        self.vlayoutC.addWidget(self.editcheckbox)
        self.vlayoutC.addWidget(self.savecheckbox)
        self.vlayoutC.addWidget(self.correctcheckbox)
        self.optionsgroupC.setLayout(self.vlayoutC)

        self.optionsgroupD = QGroupBox("select statistics for saving")
        self.vlayoutD.addWidget(self.periodcheckbox)
        self.vlayoutD.addWidget(self.ratecheckbox)
        self.vlayoutD.addWidget(self.tidalampcheckbox)
        self.optionsgroupD.setLayout(self.vlayoutD)

        self.vlayout1.addWidget(self.optionsgroupA)
        self.vlayout1.addWidget(self.optionsgroupB)
        self.vlayout1.addWidget(self.optionsgroupC)
        self.vlayout1.addWidget(self.optionsgroupD)
        self.hlayout0.addLayout(self.vlayout1)
        self.hlayout0.addWidget(self.splitter)
        self.hlayout0.setStretch(0, 1)
        self.hlayout0.setStretch(1, 15)
        self.vlayout0.addLayout(self.hlayout0)

        self.hlayout1.addWidget(self.navitools)
        self.vlayout0.addLayout(self.hlayout1)

        ##############################################
        # connect output widgets to external signals #
        ##############################################
        self._model.signal_changed.connect(self.plot_signal)
        self._model.marker_changed.connect(self.plot_marker)
        self._model.peaks_changed.connect(self.plot_peaks)
        self._model.period_changed.connect(self.plot_period)
        self._model.rate_changed.connect(self.plot_rate)
        self._model.tidalamp_changed.connect(self.plot_tidalamp)
        self._model.path_changed.connect(self.display_path)
        self._model.segment_changed.connect(self.plot_segment)
        self._model.status_changed.connect(self.display_status)
        self._model.progress_changed.connect(self.display_progress)
        self._model.model_reset.connect(self.reset_plot)
コード例 #8
0
    def __setup_ui__(self):
        self.setWindowTitle("测试")
        #窗口大小
        self.resize(1400, 800)
        # 工具栏
        self.frame_tool = QFrame(self)
        self.frame_tool.setObjectName("frame_tool")
        self.frame_tool.setGeometry(0, 0, self.width(), 25)
        self.frame_tool.setStyleSheet("border-color: rgb(0, 0, 0);")
        self.frame_tool.setFrameShape(QFrame.Panel)
        self.frame_tool.setFrameShadow(QFrame.Raised)

        # 1.1 界面1按钮
        self.window1_btn = QToolButton(self.frame_tool)
        self.window1_btn.setCheckable(True)
        self.window1_btn.setText("window1")
        self.window1_btn.setObjectName("menu_btn")
        self.window1_btn.resize(100, 25)
        self.window1_btn.clicked.connect(self.click_window1)
        self.window1_btn.setAutoRaise(True)

        # 1.2 界面2按钮
        self.window2_btn = QToolButton(self.frame_tool)
        self.window2_btn.setCheckable(True)
        self.window2_btn.setText("window2")
        self.window2_btn.setObjectName("menu_btn")
        self.window2_btn.resize(100, 25)
        self.window2_btn.move(self.window1_btn.width(), 0)
        self.window2_btn.clicked.connect(self.click_window2)
        self.window2_btn.setAutoRaise(True)

        self.btn_group = QButtonGroup(self.frame_tool)
        self.btn_group.addButton(self.window1_btn, 1)
        self.btn_group.addButton(self.window2_btn, 2)

        # 2. 工作区域
        self.main_frame = QFrame(self)
        self.main_frame.setGeometry(0, 25, self.width(),
                                    self.height() - self.frame_tool.height())
        # self.main_frame.setStyleSheet("background-color: rgb(65, 95, 255)")

        # 创建堆叠布局
        self.stacked_layout = QStackedLayout(self.main_frame)

        # 第一个布局界面
        self.main_frame1 = QMainWindow()
        self.frame1_bar = QStatusBar()
        self.frame1_bar.setObjectName("frame1_bar")
        self.main_frame1.setStatusBar(self.frame1_bar)
        self.frame1_bar.showMessage("欢迎进入frame1")

        rom_frame = QFrame(self.main_frame1)
        rom_frame.setGeometry(0, 0, self.width(),
                              self.main_frame.height() - 25)
        rom_frame.setFrameShape(QFrame.Panel)
        rom_frame.setFrameShadow(QFrame.Raised)

        frame1_bar_frame = QFrame(self.main_frame1)
        frame1_bar_frame.setGeometry(0, self.main_frame.height(), self.width(),
                                     25)

        # 第二个布局界面
        self.main_frame2 = QMainWindow()
        self.frame2_bar = QStatusBar()
        self.frame2_bar.setObjectName("frame2_bar")
        self.main_frame2.setStatusBar(self.frame2_bar)
        self.frame2_bar.showMessage("欢迎进入frame2")

        custom_frame = QFrame(self.main_frame2)
        custom_frame.setGeometry(0, 0, self.width(),
                                 self.main_frame.height() - 25)
        custom_frame.setFrameShape(QFrame.Panel)
        custom_frame.setFrameShadow(QFrame.Raised)

        frame2_bar_frame = QFrame(self.main_frame2)
        frame2_bar_frame.setGeometry(0, self.main_frame.height(), self.width(),
                                     25)

        # 把两个布局界面放进去
        self.stacked_layout.addWidget(self.main_frame1)
        self.stacked_layout.addWidget(self.main_frame2)
コード例 #9
0
 def __init__(self):
     super(RegisterWrappedUI, self).__init__()
     self.setupUi(self)
     self.statusBar = QStatusBar()
     self.verticalLayout.addWidget(self.statusBar)
コード例 #10
0
 def createBottomArea(self):
     status = QStatusBar()
     self.setStatusBar(status)
コード例 #11
0
ファイル: upload_window.py プロジェクト: ytfqj/deriva-qt
    def __init__(self, MainWin):

        # Main Window
        MainWin.setObjectName("UploadWindow")
        MainWin.setWindowTitle(MainWin.tr(self.title))
        MainWin.resize(800, 600)
        self.centralWidget = QWidget(MainWin)
        self.centralWidget.setObjectName("centralWidget")
        MainWin.setCentralWidget(self.centralWidget)
        self.verticalLayout = QVBoxLayout(self.centralWidget)
        self.verticalLayout.setContentsMargins(11, 11, 11, 11)
        self.verticalLayout.setSpacing(6)
        self.verticalLayout.setObjectName("verticalLayout")

        self.horizontalLayout = QHBoxLayout()
        self.pathLabel = QLabel("Directory:")
        self.horizontalLayout.addWidget(self.pathLabel)
        self.pathTextBox = QLineEdit()
        self.pathTextBox.setReadOnly(True)
        self.horizontalLayout.addWidget(self.pathTextBox)
        self.browseButton = QPushButton("Browse", self.centralWidget)
        self.browseButton.clicked.connect(MainWin.on_actionBrowse_triggered)
        self.horizontalLayout.addWidget(self.browseButton)
        self.verticalLayout.addLayout(self.horizontalLayout)

        # Splitter for Upload list/Log
        self.splitter = QSplitter(Qt.Vertical)

        # Table View (Upload list)
        self.uploadList = TableWidget(self.centralWidget)
        self.uploadList.setObjectName("uploadList")
        self.uploadList.setStyleSheet("""
            QTableWidget {
                    border: 2px solid grey;
                    border-radius: 5px;
            }
            """)
        self.uploadList.setEditTriggers(
            QAbstractItemView.NoEditTriggers
        )  # use NoEditTriggers to disable editing
        self.uploadList.setAlternatingRowColors(True)
        self.uploadList.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.uploadList.setSelectionMode(QAbstractItemView.NoSelection)
        self.uploadList.verticalHeader().setDefaultSectionSize(
            18)  # tighten up the row size
        self.uploadList.horizontalHeader().setStretchLastSection(True)
        self.uploadList.setSortingEnabled(True)  # allow sorting
        self.splitter.addWidget(self.uploadList)

        # Log Widget
        self.logTextBrowser = QPlainTextEditLogger(self.centralWidget)
        self.logTextBrowser.widget.setObjectName("logTextBrowser")
        self.logTextBrowser.widget.setStyleSheet("""
            QPlainTextEdit {
                    border: 2px solid grey;
                    border-radius: 5px;
                    background-color: lightgray;
            }
            """)
        self.splitter.addWidget(self.logTextBrowser.widget)

        # add splitter
        self.splitter.setSizes([400, 200])
        self.verticalLayout.addWidget(self.splitter)

        # Actions

        # Browse
        self.actionBrowse = QAction(MainWin)
        self.actionBrowse.setObjectName("actionBrowse")
        self.actionBrowse.setText(MainWin.tr("Browse"))
        self.actionBrowse.setToolTip(MainWin.tr("Set the upload directory"))
        self.actionBrowse.setShortcut(MainWin.tr("Ctrl+B"))

        # Upload
        self.actionUpload = QAction(MainWin)
        self.actionUpload.setObjectName("actionUpload")
        self.actionUpload.setText(MainWin.tr("Upload"))
        self.actionUpload.setToolTip(MainWin.tr("Upload files"))
        self.actionUpload.setShortcut(MainWin.tr("Ctrl+L"))
        self.actionUpload.setEnabled(False)

        # Rescan
        self.actionRescan = QAction(MainWin)
        self.actionRescan.setObjectName("actionRescan")
        self.actionRescan.setText(MainWin.tr("Rescan"))
        self.actionRescan.setToolTip(MainWin.tr("Rescan the upload directory"))
        self.actionRescan.setShortcut(MainWin.tr("Ctrl+R"))
        self.actionRescan.setEnabled(False)

        # Cancel
        self.actionCancel = QAction(MainWin)
        self.actionCancel.setObjectName("actionCancel")
        self.actionCancel.setText(MainWin.tr("Cancel"))
        self.actionCancel.setToolTip(
            MainWin.tr("Cancel any upload(s) in-progress"))
        self.actionCancel.setShortcut(MainWin.tr("Ctrl+C"))

        # Options
        self.actionOptions = QAction(MainWin)
        self.actionOptions.setObjectName("actionOptions")
        self.actionOptions.setText(MainWin.tr("Options"))
        self.actionOptions.setToolTip(MainWin.tr("Configuration Options"))
        self.actionOptions.setShortcut(MainWin.tr("Ctrl+P"))

        # Login
        self.actionLogin = QAction(MainWin)
        self.actionLogin.setObjectName("actionLogin")
        self.actionLogin.setText(MainWin.tr("Login"))
        self.actionLogin.setToolTip(MainWin.tr("Login to the server"))
        self.actionLogin.setShortcut(MainWin.tr("Ctrl+G"))
        self.actionLogin.setEnabled(False)

        # Logout
        self.actionLogout = QAction(MainWin)
        self.actionLogout.setObjectName("actionLogout")
        self.actionLogout.setText(MainWin.tr("Logout"))
        self.actionLogout.setToolTip(MainWin.tr("Logout of the server"))
        self.actionLogout.setShortcut(MainWin.tr("Ctrl+O"))
        self.actionLogout.setEnabled(False)

        # Exit
        self.actionExit = QAction(MainWin)
        self.actionExit.setObjectName("actionExit")
        self.actionExit.setText(MainWin.tr("Exit"))
        self.actionExit.setToolTip(MainWin.tr("Exit the application"))
        self.actionExit.setShortcut(MainWin.tr("Ctrl+Z"))

        # Help
        self.actionHelp = QAction(MainWin)
        self.actionHelp.setObjectName("actionHelp")
        self.actionHelp.setText(MainWin.tr("Help"))
        self.actionHelp.setToolTip(MainWin.tr("Help"))
        self.actionHelp.setShortcut(MainWin.tr("Ctrl+H"))

        # Menu Bar
        """
        self.menuBar = QMenuBar(MainWin)
        self.menuBar.setObjectName("menuBar")
        MainWin.setMenuBar(self.menuBar)
        self.menuBar.setStyleSheet(
            "QMenuBar{font-family: Arial;font-style: normal;font-size: 10pt;font-weight: bold;};")
        """

        # Tool Bar

        self.mainToolBar = QToolBar(MainWin)
        self.mainToolBar.setObjectName("mainToolBar")
        self.mainToolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
        MainWin.addToolBar(Qt.TopToolBarArea, self.mainToolBar)

        # Upload
        self.mainToolBar.addAction(self.actionUpload)
        self.actionUpload.setIcon(qApp.style().standardIcon(
            QStyle.SP_FileDialogToParent))

        # Rescan
        self.mainToolBar.addAction(self.actionRescan)
        self.actionRescan.setIcon(qApp.style().standardIcon(
            QStyle.SP_BrowserReload))

        # Cancel
        self.mainToolBar.addAction(self.actionCancel)
        self.actionCancel.setIcon(qApp.style().standardIcon(
            QStyle.SP_BrowserStop))
        self.actionCancel.setEnabled(False)

        # Options
        self.mainToolBar.addAction(self.actionOptions)
        self.actionOptions.setIcon(qApp.style().standardIcon(
            QStyle.SP_FileDialogDetailedView))

        # this spacer right justifies everything that comes after it
        spacer = QWidget()
        spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        self.mainToolBar.addWidget(spacer)

        # Login
        self.mainToolBar.addAction(self.actionLogin)
        self.actionLogin.setIcon(qApp.style().standardIcon(
            QStyle.SP_DialogApplyButton))

        # Logout
        self.mainToolBar.addAction(self.actionLogout)
        self.actionLogout.setIcon(qApp.style().standardIcon(
            QStyle.SP_DialogOkButton))

        # Help
        #self.mainToolBar.addAction(self.actionHelp)
        self.actionHelp.setIcon(qApp.style().standardIcon(
            QStyle.SP_MessageBoxQuestion))

        # Exit
        self.mainToolBar.addAction(self.actionExit)
        self.actionExit.setIcon(qApp.style().standardIcon(
            QStyle.SP_DialogCancelButton))

        # Status Bar

        self.statusBar = QStatusBar(MainWin)
        self.statusBar.setToolTip("")
        self.statusBar.setStatusTip("")
        self.statusBar.setObjectName("statusBar")
        MainWin.setStatusBar(self.statusBar)

        # configure logging
        self.logTextBrowser.widget.log_update_signal.connect(MainWin.updateLog)
        self.logTextBrowser.setFormatter(
            logging.Formatter("%(asctime)s - %(levelname)s - %(message)s"))
        logging.getLogger().addHandler(self.logTextBrowser)

        # finalize UI setup
        QMetaObject.connectSlotsByName(MainWin)
コード例 #12
0
ファイル: subMenu.py プロジェクト: MFurkan41/WhatsSend
    def __init__(self,MainWindow, headers, apiKey,checkBoxState):
        super(Ui_OtherWindow,self).__init__()

        self.ScRate = GetSystemMetrics(0)/1920
        self.mainWindow = MainWindow
        self.headers = headers  
        
        self.mainWindow.setObjectName("MainWindow")
        self.mainWindow.resize(350*self.ScRate, 393*self.ScRate)
        self.mainWindow.setMinimumSize(QSize(350*self.ScRate, 393*self.ScRate))
        self.mainWindow.setMaximumSize(QSize(350*self.ScRate, 393*self.ScRate))
        self.mainWindow.setWindowFlags(self.mainWindow.windowFlags() & ~Qt.WindowCloseButtonHint)
        self.mainWindow.setWindowIcon(QIcon(Icons["Standart"]))

        self.mainWindow = MainWindow
        self.headers = headers
        

        self.centralwidget = QWidget(self.mainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName("gridLayout")
        self.verticalLayout = QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.verticalLayout_4 = QVBoxLayout()
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.label = QLabel(self.centralwidget)
        font = QFont()
        font.setPointSize(10*self.ScRate)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.verticalLayout_4.addWidget(self.label)
        self.lineEdit = QLineEdit(self.centralwidget)
        self.lineEdit.setObjectName("lineEdit")
        self.verticalLayout_4.addWidget(self.lineEdit)
        self.verticalLayout.addLayout(self.verticalLayout_4)
        self.label_2 = QLabel(self.centralwidget)
        font = QFont()
        font.setPointSize(10*self.ScRate)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.verticalLayout.addWidget(self.label_2)
        self.horizontalLayout = QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.treeWidget = QTreeWidget(self.centralwidget)
        self.treeWidget.setContextMenuPolicy(Qt.CustomContextMenu)
        self.treeWidget.customContextMenuRequested.connect(self.on_context_menu)
        sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.treeWidget.sizePolicy().hasHeightForWidth())
        self.treeWidget.setSizePolicy(sizePolicy)
        self.treeWidget.setObjectName("treeWidget")
        for i in range(len(self.headers)):
            item_0 = QTreeWidgetItem(self.treeWidget)
            item_0.setFlags(item_0.flags() | Qt.ItemIsEditable)
        self.horizontalLayout.addWidget(self.treeWidget)
        self.verticalLayout_2 = QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.horizontalLayout.addLayout(self.verticalLayout_2)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.gridLayout.addLayout(self.verticalLayout, 0, 0, 3, 1)
        self.horizontalLayout_2 = QHBoxLayout()
        self.horizontalLayout_2.setContentsMargins(150, -1, -1, -1)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")

        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.setObjectName("pushButton_2")
        self.horizontalLayout_2.addWidget(self.pushButton_2)

        self.pushButton = QPushButton(self.centralwidget)
        sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
        self.pushButton.setSizePolicy(sizePolicy)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout_2.addWidget(self.pushButton)
        self.gridLayout.addLayout(self.horizontalLayout_2, 7, 0, 1, 1)
        spacerItem = QSpacerItem(20, 10, QSizePolicy.Minimum, QSizePolicy.Expanding)
        self.gridLayout.addItem(spacerItem, 4, 0, 1, 1)
        self.checkBox = QCheckBox(self.centralwidget)
        self.checkBox.setChecked(eval(checkBoxState))
        font = QFont()
        font.setFamily("MS Shell Dlg 2")
        font.setPointSize(9)
        font.setItalic(False)
        self.checkBox.setFont(font)
        self.checkBox.setObjectName("checkBox")
        self.gridLayout.addWidget(self.checkBox, 3, 0, 1, 1)
        self.mainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(self.mainWindow)
        self.menubar.setGeometry(QRect(0, 0, 350*self.ScRate, 26*self.ScRate))
        self.menubar.setObjectName("menubar")
        self.mainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(self.mainWindow)
        self.statusbar.setObjectName("statusbar")
        self.mainWindow.setStatusBar(self.statusbar)

        self.create_popup_menu()
        self.pushButton.clicked.connect(self.saveBtn)
        self.pushButton_2.clicked.connect(self.cancel)
        self.mainWindow.keyPressEvent = self.keyPressEvent

        if type(apiKey) == list:
            try:
                self.lineEdit.setText(apiKey[0])
            except IndexError:
                self.lineEdit.setText("")
        else:
            self.lineEdit.setText(apiKey)
        self.retranslateUi(self.mainWindow)
        self.treeWidget.resizeColumnToContents(0)


        root = self.treeWidget.invisibleRootItem()
        child_count = root.childCount()
        for i in range(child_count):
            item = root.child(i)
            url = item.text(0)
            if url == "İsim" or url == "Telefon No (Örn 9053xx..)":
                item.setFlags(item.flags() & ~Qt.ItemIsEditable)

            if url == "Mesaj Durumu":
                item.setHidden(True)

        QMetaObject.connectSlotsByName(self.mainWindow)
コード例 #13
0
    def __init__(self): 
        super().__init__()

        # Configure
        self.isConnected = True
        self.isCleanUp = True

        self.setWindowTitle("TargetUpdateApp")
        self.createMenu()

        self.extractThread = ExtractThread()
        self.ftpThread = FtpThread()
        self.telnetThread = TelnetThread()   

        self.labelHost = QLabel("Host:")
        self.inputHost = QLineEdit(self)

        self.labelPort = QLabel("Port:")
        self.inputPort = QLineEdit(self)
        
        self.labelUsername = QLabel("Username:"******"Password:"******"Test connections")
        self.testConnectionsBtn.clicked.connect(lambda:self.connectionsTest())

        self.syncRsetBtn = QPushButton("Sync / Rset")
        self.syncRsetBtn.clicked.connect(lambda:self.syncRset())

        self.hBoxLayout = QHBoxLayout()
        self.hBoxLayout.addWidget(self.labelHost)
        self.hBoxLayout.addWidget(self.inputHost)
        self.hBoxLayout.addWidget(self.labelPort)
        self.hBoxLayout.addWidget(self.inputPort)
        self.hBoxLayout.addWidget(self.labelUsername)
        self.hBoxLayout.addWidget(self.inputUsername)
        self.hBoxLayout.addWidget(self.labelPassword)
        self.hBoxLayout.addWidget(self.inputPassword)
        self.hBoxLayout.addWidget(self.testConnectionsBtn)
        self.hBoxLayout.addWidget(self.syncRsetBtn)

        # Set default connection params
        self.inputHost.setText(global_ftpHost)
        self.inputPort.setText(str(global_ftpPort))
        self.inputUsername.setText(global_ftpUsername)
        self.inputPassword.setText(global_ftpPassword)

        # Log
        self.logOutput = QTextBrowser()
        self.logOutput.verticalScrollBar().setValue(self.logOutput.verticalScrollBar().maximum())
        
        # Status bar
        self.statusBar = QStatusBar()
        
        # Layout
        self.widget = QWidget(self)
        self.setCentralWidget(self.widget)
        self.vBoxlayout = QVBoxLayout()
        self.vBoxlayout.addLayout(self.hBoxLayout)
        self.vBoxlayout.addWidget(self.logOutput)
        self.vBoxlayout.addWidget(self.statusBar)
        self.widget.setLayout(self.vBoxlayout)

        self.resize(800, 500)
        self.show()
コード例 #14
0
    def __init__(self):
        super(MSCollection, self).__init__()

        css = 'styles/style.qss'
        with open(css, 'r') as fh:
            self.setStyleSheet(fh.read())

        self.setWindowTitle(texts.main_widow)
        screen = QDesktopWidget().screenGeometry()
        s_width = screen.width()
        s_heigth = screen.height()
        x = int(0.10 * s_width)
        y = int(0.10 * s_heigth)
        width = int(0.8 * s_width)
        height = int(0.8 * s_heigth)

        self.setGeometry(x, y, width, height)

        self.mdi_area = QMdiArea()
        brush = QBrush(QColor(250, 248, 224))
        brush.setStyle(Qt.SolidPattern)
        self.mdi_area.setBackground(brush)

        self.setCentralWidget(self.mdi_area)
        self.menubar = QMenuBar(self)

        self.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(self)
        self.setStatusBar(self.statusbar)

        # Menu and Submenu
        self.menu_insert = QMenu(self.menubar)
        self.menu_insert.setTitle(texts.insert)

        self.menu_edit = QMenu(self.menubar)
        self.menu_edit.setTitle(texts.edit)
        self.menu_edit_movie_others = QMenu(self.menu_edit)
        self.menu_edit_movie_others.setTitle(texts.menu_movie_others)
        self.menu_edit_series_others = QMenu(self.menu_edit)
        self.menu_edit_series_others.setTitle(texts.menu_series_others)
        self.menu_edit_season = QMenu(self.menu_edit)
        self.menu_edit_season.setTitle(texts.season_p)
        self.menu_edit_general = QMenu(self.menu_insert)
        self.menu_edit_general.setTitle(texts.general)
        self.menu_delete_orphans = QMenu(texts.delete_orphans)

        self.menu_search = QMenu(self.menubar)
        self.menu_search.setTitle(texts.search)
        self.menu_search_movies = QMenu(self.menu_search)
        self.menu_search_movies.setTitle(texts.movie_p)
        self.menu_search_series = QMenu(self.menu_search)
        self.menu_search_series.setTitle(texts.series_p)

        # Actions Insert ######################################################
        self.action_insert_movie = QAction(texts.movie_p,
                                           self,
                                           triggered=self.insert_movie)

        self.action_insert_series = QAction(texts.series_p,
                                            self,
                                            triggered=self.insert_series)

        self.action_insert_season = QAction(texts.season_p,
                                            self,
                                            triggered=self.insert_season)

        # AddAction Insert
        self.menu_insert.addAction(self.action_insert_movie)
        self.menu_insert.addAction(self.action_insert_series)
        self.menu_insert.addAction(self.action_insert_season)

        # Actions Edit ######################################################
        self.action_edit_movie = QAction(texts.movie_p,
                                         self,
                                         triggered=self.edit_movie)

        self.action_edit_series = QAction(texts.series_p,
                                          self,
                                          triggered=self.edit_series)

        self.action_edit_season = QAction(texts.season_p,
                                          self,
                                          triggered=self.edit_season)

        self.action_edit_rewrite_html = QAction(texts.rewrite_html,
                                                self,
                                                triggered=self.rewrite_html)

        self.action_edit_movie_cast = QAction(texts.cast_s,
                                              self,
                                              triggered=self.edit_movie_cast)

        self.action_edit_series_cast = QAction(texts.cast_s,
                                               self,
                                               triggered=self.edit_series_cast)

        self.action_edit_director = QAction(texts.director_s,
                                            self,
                                            triggered=self.edit_director)

        self.action_edit_creator = QAction(texts.creator_s,
                                           self,
                                           triggered=self.edit_creator)

        self.action_edit_box = QAction(texts.box, self)
        self.action_edit_box.triggered.connect(lambda: self.edit_others('box'))

        self.action_edit_category = QAction(texts.category_p, self)
        self.action_edit_category.triggered.connect(
            lambda: self.edit_others('category'))

        self.action_edit_media = QAction(texts.media_s, self)
        self.action_edit_media.triggered.connect(
            lambda: self.edit_others('media'))

        self.action_edit_actor = QAction(texts.actor_s, self)
        self.action_edit_actor.triggered.connect(
            lambda: self.edit_others('actor'))

        self.action_edit_character = QAction(texts.character_s, self)
        self.action_edit_character.triggered.connect(
            lambda: self.edit_others('character'))

        self.action_edit_keyword = QAction(texts.keyword, self)
        self.action_edit_keyword.triggered.connect(
            lambda: self.edit_others('keyword'))

        text = texts.season_s + ' ' + texts.cast_s
        self.action_edit_season_cast = QAction(text,
                                               self,
                                               triggered=self.edit_season_cast)

        # AddAction Edit
        self.menu_edit.addAction(self.action_edit_movie)
        self.menu_edit.addAction(self.menu_edit_movie_others.menuAction())
        self.menu_edit_movie_others.addAction(self.action_edit_movie_cast)
        self.menu_edit_movie_others.addAction(self.action_edit_director)
        self.menu_edit_movie_others.addAction(self.action_edit_box)

        self.menu_edit.addAction(self.action_edit_series)
        self.menu_edit.addAction(self.menu_edit_series_others.menuAction())
        self.menu_edit_series_others.addAction(self.action_edit_series_cast)
        self.menu_edit_series_others.addAction(self.action_edit_creator)

        self.menu_edit.addAction(self.menu_edit_general.menuAction())
        self.menu_edit_general.addAction(self.action_edit_category)
        self.menu_edit_general.addAction(self.action_edit_media)
        self.menu_edit_general.addAction(self.action_edit_actor)
        self.menu_edit_general.addAction(self.action_edit_character)
        self.menu_edit_general.addAction(self.action_edit_keyword)

        self.menu_edit.addAction(self.action_edit_season)
        self.menu_edit.addAction(self.action_edit_season_cast)

        # Actions Search ######################################################
        self.actions_view_movie_web_url = QAction(
            texts.lb_url, self, triggered=self.view_movie_web_url)

        self.actions_view_series_web_url = QAction(
            texts.lb_url, self, triggered=self.view_series_web_url)

        self.actions_search_movie_box = QAction(
            texts.box, self, triggered=self.search_movie_box)

        self.actions_search_movie_title = QAction(texts.title_p, self)
        self.actions_search_movie_title.triggered.connect(
            lambda: self.search_ms_title('movie'))

        self.actions_search_series_title = QAction(texts.title_p, self)
        self.actions_search_series_title.triggered.connect(
            lambda: self.search_ms_title('series'))

        self.actions_search_movie_category = QAction(texts.category_p, self)
        self.actions_search_movie_category.triggered.connect(
            lambda: self.search_ms_category('movie'))

        self.actions_search_series_category = QAction(texts.category_p, self)
        self.actions_search_series_category.triggered.connect(
            lambda: self.search_ms_category('series'))

        self.actions_search_movie_keyword = QAction(texts.keyword, self)
        self.actions_search_movie_keyword.triggered.connect(
            lambda: self.search_ms_keyword('movie'))

        self.actions_search_series_keyword = QAction(texts.keyword, self)
        self.actions_search_series_keyword.triggered.connect(
            lambda: self.search_ms_keyword('series'))

        text = texts.media_s + '/' + texts.year_s
        self.actions_search_movie_my = QAction(text, self)
        self.actions_search_movie_my.triggered.connect(
            lambda: self.search_ms_my('movie'))

        self.actions_search_series_my = QAction(text, self)
        self.actions_search_series_my.triggered.connect(
            lambda: self.search_ms_my('series'))

        # AddAction Search
        self.menu_search_movies.addAction(self.actions_search_movie_title)
        self.menu_search_movies.addAction(self.actions_search_movie_box)
        self.menu_search_movies.addAction(self.actions_search_movie_category)
        self.menu_search_movies.addAction(self.actions_search_movie_keyword)
        self.menu_search_movies.addAction(self.actions_search_movie_my)

        self.menu_search_series.addAction(self.actions_search_series_title)
        self.menu_search_series.addAction(self.actions_search_series_category)
        self.menu_search_series.addAction(self.actions_search_series_keyword)
        self.menu_search_series.addAction(self.actions_search_series_my)

        self.menu_search.addAction(self.menu_search_movies.menuAction())
        self.menu_search.addAction(self.menu_search_series.menuAction())

        # Actions Delete Orphans ##############################################
        self.action_delete_orphans_director = QAction(
            texts.director_p, self, triggered=self.delete_orphans_director)

        self.action_delete_orphans_creator = QAction(
            texts.creator_p, self, triggered=self.delete_orphans_creator)

        self.action_delete_orphans_cast = QAction(
            texts.cast_p, self, triggered=self.delete_orphans_cast)

        self.action_delete_orphans_actors = QAction(
            texts.actor_p, self, triggered=self.delete_orphans_actors)

        self.action_delete_orphans_character = QAction(
            texts.character_p, self, triggered=self.delete_orphans_character)

        self.action_delete_orphans_media = QAction(
            texts.media_p, self, triggered=self.delete_orphans_media)

        self.action_delete_orphans_category = QAction(
            texts.category_p, self, triggered=self.delete_orphans_category)

        # AddAction Search
        self.menu_delete_orphans.addAction(self.action_delete_orphans_director)
        self.menu_delete_orphans.addAction(self.action_delete_orphans_creator)
        self.menu_delete_orphans.addAction(self.action_delete_orphans_cast)
        self.menu_delete_orphans.addAction(self.action_delete_orphans_actors)
        self.menu_delete_orphans.addAction(
            self.action_delete_orphans_character)
        self.menu_delete_orphans.addAction(self.action_delete_orphans_media)
        self.menu_delete_orphans.addAction(self.action_delete_orphans_category)

        self.menu_edit.addAction(self.menu_delete_orphans.menuAction())
        self.menu_edit.addAction(self.action_edit_rewrite_html)

        # AddAction Menu ######################################################
        self.menubar.addAction(self.menu_insert.menuAction())
        self.menubar.addAction(self.menu_edit.menuAction())
        self.menubar.addAction(self.menu_search.menuAction())
コード例 #15
0
ファイル: compute_thermo.py プロジェクト: pk-organics/SEQCROW
    def _build_ui(self):
        #each group has an empty widget at the bottom so they resize the way I want while also having the
        #labels where I want them
        layout = QGridLayout()

        self.tab_widget = QTabWidget()
        layout.addWidget(self.tab_widget)

        #layout for absolute thermo stuff
        absolute_widget = QWidget()
        absolute_layout = QGridLayout(absolute_widget)

        #box for sp
        sp_area_widget = QGroupBox("Single-point")
        sp_layout = QGridLayout(sp_area_widget)

        self.sp_selector = FilereaderComboBox(self.session,
                                              otherItems=['energy'])
        self.sp_selector.currentIndexChanged.connect(self.set_sp)
        sp_layout.addWidget(self.sp_selector, 0, 0, 1, 3, Qt.AlignTop)

        nrg_label = QLabel("E =")
        sp_layout.addWidget(nrg_label, 1, 0, 1, 1,
                            Qt.AlignRight | Qt.AlignVCenter)

        self.sp_nrg_line = QLineEdit()
        self.sp_nrg_line.setReadOnly(True)
        self.sp_nrg_line.setToolTip("electronic energy")
        sp_layout.addWidget(self.sp_nrg_line, 1, 1, 1, 1, Qt.AlignTop)

        sp_layout.addWidget(QLabel("E<sub>h</sub>"), 1, 2, 1, 1,
                            Qt.AlignVCenter)

        sp_layout.addWidget(QWidget(), 2, 0)

        sp_layout.setColumnStretch(0, 0)
        sp_layout.setColumnStretch(1, 1)
        sp_layout.setRowStretch(0, 0)
        sp_layout.setRowStretch(1, 0)
        sp_layout.setRowStretch(2, 1)

        row = 0
        #box for thermo
        therm_area_widget = QGroupBox("Thermal corrections")
        thermo_layout = QGridLayout(therm_area_widget)

        self.thermo_selector = FilereaderComboBox(self.session,
                                                  otherItems=['frequency'])
        self.thermo_selector.currentIndexChanged.connect(self.set_thermo_mdl)
        thermo_layout.addWidget(self.thermo_selector, row, 0, 1, 3,
                                Qt.AlignTop)

        row += 1

        thermo_layout.addWidget(QLabel("T ="), row, 0, 1, 1,
                                Qt.AlignRight | Qt.AlignVCenter)

        self.temperature_line = QDoubleSpinBox()
        self.temperature_line.setMaximum(2**31 - 1)
        self.temperature_line.setValue(298.15)
        self.temperature_line.setSingleStep(10)
        self.temperature_line.setSuffix(" K")
        self.temperature_line.setMinimum(0)
        self.temperature_line.valueChanged.connect(self.set_thermo)
        thermo_layout.addWidget(self.temperature_line, row, 1, 1, 2,
                                Qt.AlignTop)

        row += 1

        thermo_layout.addWidget(QLabel("𝜔<sub>0</sub> ="), row, 0, 1, 1,
                                Qt.AlignRight | Qt.AlignVCenter)

        self.v0_edit = QDoubleSpinBox()
        self.v0_edit.setMaximum(4000)
        self.v0_edit.setValue(self.settings.w0)
        self.v0_edit.setSingleStep(25)
        self.v0_edit.setSuffix(" cm\u207b\u00b9")
        self.v0_edit.valueChanged.connect(self.set_thermo)
        self.v0_edit.setMinimum(0)
        self.v0_edit.setToolTip(
            "frequency parameter for quasi treatments of entropy")
        thermo_layout.addWidget(self.v0_edit, row, 1, 1, 2, Qt.AlignTop)

        row += 1

        thermo_layout.addWidget(QLabel("𝛿ZPE ="), row, 0, 1, 1,
                                Qt.AlignRight | Qt.AlignVCenter)

        self.zpe_line = QLineEdit()
        self.zpe_line.setReadOnly(True)
        self.zpe_line.setToolTip("zero-point energy correction")
        thermo_layout.addWidget(self.zpe_line, row, 1, 1, 1, Qt.AlignTop)

        thermo_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                                Qt.AlignVCenter)

        row += 1

        thermo_layout.addWidget(QLabel("𝛿H<sub>RRHO</sub> ="), row, 0, 1, 1,
                                Qt.AlignRight | Qt.AlignVCenter)

        self.enthalpy_line = QLineEdit()
        self.enthalpy_line.setReadOnly(True)
        self.enthalpy_line.setToolTip("RRHO enthalpy correction")
        thermo_layout.addWidget(self.enthalpy_line, row, 1, 1, 1, Qt.AlignTop)

        thermo_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                                Qt.AlignVCenter)

        row += 1

        thermo_layout.addWidget(QLabel("𝛿G<sub>RRHO</sub> ="), row, 0, 1, 1,
                                Qt.AlignRight | Qt.AlignVCenter)

        self.rrho_g_line = QLineEdit()
        self.rrho_g_line.setReadOnly(True)
        self.rrho_g_line.setToolTip(
            """RRHO free energy correction\nRotational motion is completely independent from vibrations\nNormal mode vibrations behave like harmonic oscillators"""
        )
        thermo_layout.addWidget(self.rrho_g_line, row, 1, 1, 1, Qt.AlignTop)

        thermo_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                                Qt.AlignVCenter)

        row += 1

        dqrrho_g_label = QLabel()
        dqrrho_g_label.setText(
            "<a href=\"Grimme's Quasi-RRHO\" style=\"text-decoration: none;\">𝛿G<sub>Quasi-RRHO</sub></a> ="
        )
        dqrrho_g_label.setTextFormat(Qt.RichText)
        dqrrho_g_label.setTextInteractionFlags(Qt.TextBrowserInteraction)
        dqrrho_g_label.linkActivated.connect(self.open_link)
        dqrrho_g_label.setToolTip("click to open a relevant reference\n" + \
                                  "see the \"Computation of internal (gas‐phase) entropies\" section for a description of the method")

        thermo_layout.addWidget(dqrrho_g_label, row, 0, 1, 1,
                                Qt.AlignRight | Qt.AlignVCenter)

        self.qrrho_g_line = QLineEdit()
        self.qrrho_g_line.setReadOnly(True)
        self.qrrho_g_line.setToolTip("Quasi-RRHO free energy correction\n" + \
        "Vibrational entropy of each mode is weighted and complemented with rotational entropy\n" + \
        "The weighting is much lower for modes with frequencies less than 𝜔\u2080")
        thermo_layout.addWidget(self.qrrho_g_line, row, 1, 1, 1, Qt.AlignTop)

        thermo_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                                Qt.AlignVCenter)

        row += 1

        dqharm_g_label = QLabel("")
        dqharm_g_label.setText(
            "<a href=\"Truhlar's Quasi-Harmonic\" style=\"text-decoration: none;\">𝛿G<sub>Quasi-Harmonic</sub></a> ="
        )
        dqharm_g_label.setTextFormat(Qt.RichText)
        dqharm_g_label.setTextInteractionFlags(Qt.TextBrowserInteraction)
        dqharm_g_label.linkActivated.connect(self.open_link)
        dqharm_g_label.setToolTip("click to open a relevant reference\n" + \
                                  "see the \"Computations\" section for a description of the method")

        thermo_layout.addWidget(dqharm_g_label, row, 0, 1, 1,
                                Qt.AlignRight | Qt.AlignVCenter)

        self.qharm_g_line = QLineEdit()
        self.qharm_g_line.setReadOnly(True)
        self.qharm_g_line.setToolTip("Quasi-hamonic free energy correction\n" + \
        "For entropy, real vibrational modes lower than 𝜔\u2080 are treated as 𝜔\u2080")
        thermo_layout.addWidget(self.qharm_g_line, row, 1, 1, 1, Qt.AlignTop)

        thermo_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                                Qt.AlignVCenter)

        thermo_layout.addWidget(QWidget(), row + 1, 0)

        thermo_layout.setColumnStretch(0, 0)
        thermo_layout.setColumnStretch(1, 1)
        for i in range(0, row):
            thermo_layout.setRowStretch(i, 0)

        thermo_layout.setRowStretch(row + 1, 1)

        row = 0
        # for for total
        sum_area_widget = QGroupBox("Thermochemistry")
        sum_layout = QGridLayout(sum_area_widget)

        sum_layout.addWidget(QLabel("ZPE ="), row, 0, 1, 1,
                             Qt.AlignRight | Qt.AlignVCenter)

        self.zpe_sum_line = QLineEdit()
        self.zpe_sum_line.setReadOnly(True)
        self.zpe_sum_line.setToolTip(
            "sum of electronic energy and ZPE correction")
        sum_layout.addWidget(self.zpe_sum_line, row, 1, 1, 1, Qt.AlignTop)

        sum_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                             Qt.AlignVCenter)

        row += 1

        sum_layout.addWidget(QLabel("H<sub>RRHO</sub> ="), row, 0, 1, 1,
                             Qt.AlignRight | Qt.AlignVCenter)

        self.h_sum_line = QLineEdit()
        self.h_sum_line.setReadOnly(True)
        self.h_sum_line.setToolTip(
            "sum of electronic energy and RRHO enthalpy correction")
        sum_layout.addWidget(self.h_sum_line, row, 1, 1, 1, Qt.AlignTop)

        sum_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                             Qt.AlignVCenter)

        row += 1

        sum_layout.addWidget(QLabel("G<sub>RRHO</sub> ="), row, 0, 1, 1,
                             Qt.AlignRight | Qt.AlignVCenter)

        self.rrho_g_sum_line = QLineEdit()
        self.rrho_g_sum_line.setReadOnly(True)
        self.rrho_g_sum_line.setToolTip(
            "sum of electronic energy and RRHO free energy correction\nRotational motion is completely independent from vibrations\nNormal mode vibrations behave like harmonic oscillators"
        )
        sum_layout.addWidget(self.rrho_g_sum_line, row, 1, 1, 1, Qt.AlignTop)

        sum_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                             Qt.AlignVCenter)

        row += 1

        sum_layout.addWidget(QLabel("G<sub>Quasi-RRHO</sub> ="), row, 0, 1, 1,
                             Qt.AlignRight | Qt.AlignVCenter)

        self.qrrho_g_sum_line = QLineEdit()
        self.qrrho_g_sum_line.setReadOnly(True)
        self.qrrho_g_sum_line.setToolTip("Sum of electronic energy and quasi-RRHO free energy correction\n" + \
        "Vibrational entropy of each mode is weighted and complemented with rotational entropy\n" + \
        "The weighting is much lower for modes with frequencies less than 𝜔\u2080")
        sum_layout.addWidget(self.qrrho_g_sum_line, row, 1, 1, 1, Qt.AlignTop)

        sum_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                             Qt.AlignVCenter)

        row += 1

        sum_layout.addWidget(QLabel("G<sub>Quasi-Harmonic</sub> ="), row, 0, 1,
                             1, Qt.AlignRight | Qt.AlignVCenter)

        self.qharm_g_sum_line = QLineEdit()
        self.qharm_g_sum_line.setReadOnly(True)
        self.qharm_g_sum_line.setToolTip("Sum of electronic energy and quasi-harmonic free energy correction\n" + \
        "For entropy, real vibrational modes lower than 𝜔\u2080 are treated as 𝜔\u2080")
        sum_layout.addWidget(self.qharm_g_sum_line, row, 1, 1, 1, Qt.AlignTop)

        sum_layout.addWidget(QLabel("E<sub>h</sub>"), row, 2, 1, 1,
                             Qt.AlignVCenter)

        sum_layout.addWidget(QWidget(), row + 1, 0)

        sum_layout.setColumnStretch(0, 0)
        for i in range(0, row):
            sum_layout.setRowStretch(i, 0)

        sum_layout.setRowStretch(row + 1, 1)

        splitter = QSplitter(Qt.Horizontal)
        splitter.setChildrenCollapsible(False)
        splitter.addWidget(sp_area_widget)
        splitter.addWidget(therm_area_widget)
        splitter.addWidget(sum_area_widget)

        absolute_layout.addWidget(splitter)

        self.status = QStatusBar()
        self.status.setSizeGripEnabled(False)
        self.status.setStyleSheet("color: red")
        absolute_layout.addWidget(self.status, 1, 0, 1, 1, Qt.AlignTop)

        self.tab_widget.addTab(absolute_widget, "absolute")

        relative_widget = QWidget()
        relative_layout = QGridLayout(relative_widget)

        size = [self.settings.ref_col_1, self.settings.ref_col_2]
        self.ref_group = ThermoGroup("reference group", self.session,
                                     self.nrg_fr, self.thermo_co, size)
        self.ref_group.changes.connect(self.calc_relative_thermo)
        relative_layout.addWidget(self.ref_group, 0, 0, 1, 3, Qt.AlignTop)

        size = [self.settings.other_col_1, self.settings.other_col_2]
        self.other_group = ThermoGroup("other group", self.session,
                                       self.nrg_fr, self.thermo_co, size)
        self.other_group.changes.connect(self.calc_relative_thermo)
        relative_layout.addWidget(self.other_group, 0, 3, 1, 3, Qt.AlignTop)

        self.relative_temperature = QDoubleSpinBox()
        self.relative_temperature.setMaximum(2**31 - 1)
        self.relative_temperature.setValue(self.settings.rel_temp)
        self.relative_temperature.setSingleStep(10)
        self.relative_temperature.setSuffix(" K")
        self.relative_temperature.setMinimum(0)
        self.relative_temperature.valueChanged.connect(
            self.calc_relative_thermo)
        relative_layout.addWidget(QLabel("T ="), 1, 0, 1, 1,
                                  Qt.AlignRight | Qt.AlignVCenter)
        relative_layout.addWidget(self.relative_temperature, 1, 1, 1, 5,
                                  Qt.AlignLeft | Qt.AlignVCenter)

        self.relative_v0 = QDoubleSpinBox()
        self.relative_v0.setMaximum(2**31 - 1)
        self.relative_v0.setValue(self.settings.w0)
        self.relative_v0.setSingleStep(25)
        self.relative_v0.setSuffix(" cm\u207b\u00b9")
        self.relative_v0.setMinimum(0)
        self.relative_v0.setToolTip(
            "frequency parameter for quasi treatments of entropy")
        self.relative_v0.valueChanged.connect(self.calc_relative_thermo)
        relative_layout.addWidget(QLabel("𝜔<sub>0</sub> ="), 2, 0, 1, 1,
                                  Qt.AlignRight | Qt.AlignVCenter)
        relative_layout.addWidget(self.relative_v0, 2, 1, 1, 5,
                                  Qt.AlignLeft | Qt.AlignVCenter)

        relative_layout.addWidget(
            QLabel("Boltzmann-weighted relative energies in kcal/mol:"), 3, 0,
            1, 6, Qt.AlignVCenter | Qt.AlignLeft)

        relative_layout.addWidget(QLabel("ΔE"), 4, 0,
                                  Qt.AlignTop | Qt.AlignVCenter)
        self.relative_dE = QLineEdit()
        self.relative_dE.setReadOnly(True)
        relative_layout.addWidget(self.relative_dE, 5, 0,
                                  Qt.AlignTop | Qt.AlignVCenter)

        relative_layout.addWidget(QLabel("ΔZPE"), 4, 1,
                                  Qt.AlignTop | Qt.AlignVCenter)
        self.relative_dZPVE = QLineEdit()
        self.relative_dZPVE.setReadOnly(True)
        relative_layout.addWidget(self.relative_dZPVE, 5, 1,
                                  Qt.AlignTop | Qt.AlignVCenter)

        relative_layout.addWidget(QLabel("ΔH<sub>RRHO</sub>"), 4, 2,
                                  Qt.AlignTop | Qt.AlignVCenter)
        self.relative_dH = QLineEdit()
        self.relative_dH.setReadOnly(True)
        relative_layout.addWidget(self.relative_dH, 5, 2,
                                  Qt.AlignTop | Qt.AlignVCenter)

        relative_layout.addWidget(QLabel("ΔG<sub>RRHO</sub>"), 4, 3,
                                  Qt.AlignTop | Qt.AlignVCenter)
        self.relative_dG = QLineEdit()
        self.relative_dG.setReadOnly(True)
        relative_layout.addWidget(self.relative_dG, 5, 3,
                                  Qt.AlignTop | Qt.AlignVCenter)

        relative_layout.addWidget(QLabel("ΔG<sub>Quasi-RRHO</sub>"), 4, 4,
                                  Qt.AlignTop | Qt.AlignVCenter)
        self.relative_dQRRHOG = QLineEdit()
        self.relative_dQRRHOG.setReadOnly(True)
        relative_layout.addWidget(self.relative_dQRRHOG, 5, 4,
                                  Qt.AlignTop | Qt.AlignVCenter)

        relative_layout.addWidget(QLabel("ΔG<sub>Quasi-Harmonic</sub>"), 4, 5,
                                  Qt.AlignTop | Qt.AlignVCenter)
        self.relative_dQHARMG = QLineEdit()
        self.relative_dQHARMG.setReadOnly(True)
        relative_layout.addWidget(self.relative_dQHARMG, 5, 5,
                                  Qt.AlignTop | Qt.AlignVCenter)

        relative_layout.setRowStretch(0, 1)
        relative_layout.setRowStretch(1, 0)
        relative_layout.setRowStretch(2, 0)
        relative_layout.setRowStretch(3, 0)
        relative_layout.setRowStretch(4, 0)
        relative_layout.setRowStretch(5, 0)

        self.tab_widget.addTab(relative_widget, "relative")

        #menu stuff
        menu = QMenuBar()

        export = menu.addMenu("&Export")
        copy = QAction("&Copy CSV to clipboard", self.tool_window.ui_area)
        copy.triggered.connect(self.copy_csv)
        shortcut = QKeySequence(Qt.CTRL + Qt.Key_C)
        copy.setShortcut(shortcut)
        export.addAction(copy)
        self.copy = copy

        save = QAction("&Save CSV...", self.tool_window.ui_area)
        save.triggered.connect(self.save_csv)
        #this shortcut interferes with main window's save shortcut
        #I've tried different shortcut contexts to no avail
        #thanks Qt...
        #shortcut = QKeySequence(Qt.CTRL + Qt.Key_S)
        #save.setShortcut(shortcut)
        #save.setShortcutContext(Qt.WidgetShortcut)
        export.addAction(save)

        delimiter = export.addMenu("Delimiter")

        comma = QAction("comma", self.tool_window.ui_area, checkable=True)
        comma.setChecked(self.settings.delimiter == "comma")
        comma.triggered.connect(lambda *args, delim="comma": self.settings.
                                __setattr__("delimiter", delim))
        delimiter.addAction(comma)

        tab = QAction("tab", self.tool_window.ui_area, checkable=True)
        tab.setChecked(self.settings.delimiter == "tab")
        tab.triggered.connect(lambda *args, delim="tab": self.settings.
                              __setattr__("delimiter", delim))
        delimiter.addAction(tab)

        space = QAction("space", self.tool_window.ui_area, checkable=True)
        space.setChecked(self.settings.delimiter == "space")
        space.triggered.connect(lambda *args, delim="space": self.settings.
                                __setattr__("delimiter", delim))
        delimiter.addAction(space)

        semicolon = QAction("semicolon",
                            self.tool_window.ui_area,
                            checkable=True)
        semicolon.setChecked(self.settings.delimiter == "semicolon")
        semicolon.triggered.connect(lambda *args, delim="semicolon": self.
                                    settings.__setattr__("delimiter", delim))
        delimiter.addAction(semicolon)

        add_header = QAction("&Include CSV header",
                             self.tool_window.ui_area,
                             checkable=True)
        add_header.setChecked(self.settings.include_header)
        add_header.triggered.connect(self.header_check)
        export.addAction(add_header)

        comma.triggered.connect(
            lambda *args, action=tab: action.setChecked(False))
        comma.triggered.connect(
            lambda *args, action=space: action.setChecked(False))
        comma.triggered.connect(
            lambda *args, action=semicolon: action.setChecked(False))

        tab.triggered.connect(
            lambda *args, action=comma: action.setChecked(False))
        tab.triggered.connect(
            lambda *args, action=space: action.setChecked(False))
        tab.triggered.connect(
            lambda *args, action=semicolon: action.setChecked(False))

        space.triggered.connect(
            lambda *args, action=comma: action.setChecked(False))
        space.triggered.connect(
            lambda *args, action=tab: action.setChecked(False))
        space.triggered.connect(
            lambda *args, action=semicolon: action.setChecked(False))

        semicolon.triggered.connect(
            lambda *args, action=comma: action.setChecked(False))
        semicolon.triggered.connect(
            lambda *args, action=tab: action.setChecked(False))
        semicolon.triggered.connect(
            lambda *args, action=space: action.setChecked(False))

        menu.setNativeMenuBar(False)
        self._menu = menu
        layout.setMenuBar(menu)

        self.tool_window.ui_area.setLayout(layout)

        self.tool_window.manage(None)
コード例 #16
0
    def setup_ui(self):
        self.setObjectName("MainWindow")
        self.resize(820, 760)
        self.setMinimumSize(QSize(720, 560))
        self.setWindowTitle("Yugioh Duelist of Roses - Deck Edit")

        self.centralwidget = QWidget(self)
        self.centralwidget.setObjectName("centralwidget")
        self.setCentralWidget(self.centralwidget)

        self.horizontalLayout = QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName("horizontalLayout")

        self.deck_list = QListWidget(self.centralwidget)
        self.horizontalLayout.addWidget(self.deck_list)

        self.vertLayoutWidget = QWidget(self.centralwidget)
        self.verticalLayout = QVBoxLayout(self.vertLayoutWidget)
        self.button_set_deck = QPushButton(self.centralwidget)

        self.button_set_deck.setText("Set Deck")

        self.leader_layoutwidget = QWidget(self.centralwidget)
        self.leader_layout = QHBoxLayout(self.leader_layoutwidget)
        self.leader_layoutwidget.setLayout(self.leader_layout)
        self.lineedit_leader = QLineEdit(self.centralwidget)
        self.leader_label = QLabel(self.centralwidget)

        self.leader_layout.addWidget(self.lineedit_leader)
        self.leader_layout.addWidget(self.leader_label)

        self.lineedit_leader_rank = QLineEdit(self.centralwidget)

        for widget in (self.button_set_deck, self.leader_layoutwidget, self.lineedit_leader_rank):
            self.verticalLayout.addWidget(widget)
        self.cards_scroll = QScrollArea(self.centralwidget)
        self.cards_scroll.setWidgetResizable(True)

        self.card_slots = []
        self.cards_verticalWidget = QWidget(self.centralwidget)

        self.cards_vertical = QVBoxLayout(self.centralwidget)
        self.cards_verticalWidget.setLayout(self.cards_vertical)
        self.cards_scroll.setWidget(self.cards_verticalWidget)

        for i in range(40):
            layoutwidget = QWidget(self.centralwidget)
            layout = QHBoxLayout(layoutwidget)
            layoutwidget.setLayout(layout)

            index_text = QLabel(self.centralwidget)
            index_text.setText("{0:>2}".format(i))
            textedit = QLineEdit(self.centralwidget)
            textedit.setMinimumSize(20, 20)
            textedit.setMaximumSize(100, 5000)
            card_name_text = QLabel(self.centralwidget)
            card_name_text.setText("---")
            card_name_text.setTextInteractionFlags(QtCore.Qt.TextSelectableByMouse)

            layout.addWidget(index_text)
            layout.addWidget(textedit)
            layout.addWidget(card_name_text)
            self.card_slots.append((textedit, index_text, card_name_text, layout, layoutwidget))

            self.cards_vertical.addWidget(layoutwidget)

        self.verticalLayout.addWidget(self.cards_scroll)
        self.horizontalLayout.addWidget(self.vertLayoutWidget)

        self.menubar = self.menuBar()
        self.file_menu = self.menubar.addMenu("File")
        self.file_menu.setObjectName("menuLoad")


        self.file_load_action = QAction("Load", self)
        self.file_load_action.triggered.connect(self.button_load_decks)
        self.file_menu.addAction(self.file_load_action)
        self.file_save_action = QAction("Save", self)
        self.file_save_action.triggered.connect(self.button_save_decks)
        self.file_menu.addAction(self.file_save_action)

        self.statusbar = QStatusBar(self)
        self.statusbar.setObjectName("statusbar")
        self.setStatusBar(self.statusbar)

        print("done")
コード例 #17
0
    def create_main_frame(self):
        self.main_frame = QWidget()
        # Default Fonts
        button_default_font = QtGui.QFont('SansSerif', 16)
        item_default_font = QtGui.QFont('SansSerif', 12)
        # Update Button
        self.refresh_button = QPushButton('Refresh', parent=self.main_frame)
        self.refresh_button.setFont(button_default_font)
        self.refresh_button.setIcon(self.style().standardIcon(
            QtWidgets.QStyle.SP_BrowserReload))
        self.refresh_button.clicked.connect(self.refresh)
        # Delete button
        self.delete_button = QPushButton('Delete', parent=self.main_frame)
        self.delete_button.setFont(button_default_font)
        self.delete_button.setIcon(self.style().standardIcon(
            QtWidgets.QStyle.SP_TrashIcon))
        self.delete_button.clicked.connect(self.delete_selected_shot)
        # Plot button
        self.plot_button = QPushButton('Plot', parent=self.main_frame)
        self.plot_button.setFont(button_default_font)
        self.plot_button.clicked.connect(self.update_plot)
        self.plot_button.setIcon(self.style().standardIcon(
            QtWidgets.QStyle.SP_MediaPlay))

        # Shots List
        self.shot_list_widget = QListWidget()
        self.shot_list_widget.setFont(item_default_font)
        self.shot_list_widget.itemClicked.connect(self.on_shot_list_clicked)

        # Layout construction
        vbox_shots = QVBoxLayout()
        vbox_shots.addWidget(self.refresh_button)
        vbox_shots.addWidget(self.delete_button)
        vbox_shots.addWidget(self.shot_list_widget)
        vbox_shots.addWidget(self.plot_button)

        self.l = pg.GraphicsLayoutWidget(border=(100, 100, 100))
        # 1st row : RF power
        self.PowQ1 = self.l.addPlot(
            row=0,
            col=0,
            name='Pow1',
            title=
            'Q1 Power (<font color="blue">PiG</font>, <font color="red">PrG</font>, <font color="green">PiD</font>, <font color="magenta">PrD</font>)'
        )  #plotItem
        self.PowQ2 = self.l.addPlot(
            row=0,
            col=1,
            name='Pow2',
            title=
            'Q2 Power (<font color="blue">PiG</font>, <font color="red">PrG</font>, <font color="green">PiD</font>, <font color="magenta">PrD</font>)'
        )
        self.PowQ4 = self.l.addPlot(
            row=0,
            col=2,
            name='Pow4',
            title=
            'Q4 Power (<font color="blue">PiG</font>, <font color="red">PrG</font>, <font color="green">PiD</font>, <font color="magenta">PrD</font>)'
        )

        # 2nd row : VSWR
        self.VSWRQ1 = self.l.addPlot(
            row=1,
            col=0,
            name='VSWRQ1',
            title=
            'Q1 VSWR (<font color="blue">Gauche</font>, <font color="red">Droite</font>)'
        )
        self.VSWRQ2 = self.l.addPlot(
            row=1,
            col=1,
            name='VSWRQ2',
            title=
            'Q2 VSWR (<font color="blue">gauche</font>, <font color="red">Droite</font>)'
        )
        self.VSWRQ4 = self.l.addPlot(
            row=1,
            col=2,
            name='VSWRQ4',
            title=
            'Q4 VSWR (<font color="blue">Gauche</font>, <font color="red">Droite</font>)'
        )
        self.VSWRQ1.setXLink(self.PowQ1)
        self.VSWRQ2.setXLink(self.PowQ2)
        self.VSWRQ4.setXLink(self.PowQ4)

        # 3nd row : RF voltages
        self.VolQ1 = self.l.addPlot(
            row=2,
            col=0,
            name='Vol1',
            title=
            'Q1 Voltages (<font color="blue">V1</font>, <font color="red">V2</font>, <font color="green">V3</font>, <font color="magenta">V4</font>)'
        )
        self.VolQ2 = self.l.addPlot(
            row=2,
            col=1,
            name='Vol2',
            title=
            'Q2 Voltages (<font color="blue">V1</font>, <font color="red">V2</font>, <font color="green">V3</font>, <font color="magenta">V4</font>)'
        )
        self.VolQ4 = self.l.addPlot(
            row=2,
            col=2,
            name='Vol4',
            title=
            'Q4 Voltages (<font color="blue">V1</font>, <font color="red">V2</font>, <font color="green">V3</font>, <font color="magenta">V4</font>)'
        )
        self.VolQ1.setXLink(self.PowQ1)
        self.VolQ2.setXLink(self.PowQ2)
        self.VolQ4.setXLink(self.PowQ4)

        # 4rd row : RF phase
        self.PhaQ1 = self.l.addPlot(
            row=3,
            col=0,
            name='Pha1',
            title='Q1 Phase (Ph4+Ph1-Ph6, Ph5+Ph1-Ph7)')
        self.PhaQ2 = self.l.addPlot(
            row=3,
            col=1,
            name='Pha2',
            title='Q2 Phase (Ph4+Ph1-Ph6, Ph5+Ph1-Ph7)')
        self.PhaQ4 = self.l.addPlot(
            row=3,
            col=2,
            name='Pha4',
            title='Q4 Phase (Ph4+Ph1-Ph6, Ph5+Ph1-Ph7)')
        self.PhaQ1.setXLink(self.PowQ1)
        self.PhaQ2.setXLink(self.PowQ2)
        self.PhaQ4.setXLink(self.PowQ4)

        # Layout assembly
        vbox_canvas = QVBoxLayout()
        vbox_canvas.addWidget(self.l)

        hbox = QHBoxLayout()
        hbox.addLayout(vbox_shots, 1)
        hbox.addLayout(vbox_canvas, 15)

        self.main_frame.setLayout(hbox)
        self.setCentralWidget(self.main_frame)

        # Status bar
        self.statusBar = QStatusBar()
        self.setStatusBar(self.statusBar)

        self.cross = CrossHairManager()
        self.cross.linkWithPlotItem(self.PowQ2)
        self.cross.linkWithPlotItem(self.VolQ2)
        self.cross.linkWithPlotItem(self.PhaQ2)
コード例 #18
0
ファイル: application1.py プロジェクト: rbccps-iisc/GT-Buddy
    def __init__(self):
        super().__init__()
        self.setGeometry(50, 50, 1920, 1080)
        self.setWindowTitle("Ground Truthing")
        # self.setWindowIcon(QtGui.QIcon('pythonlogo.png'))

        self.frame_counter = self.images_handler()
        # self.statusbar_init()
        LOGGER.info("initialised status bar")
        # menubar_init()

        vboxlayout = QVBoxLayout()
        hboxlayout = QHBoxLayout()


        # vboxlayout.addStretch(2)
        # vboxlayout.setStretch(1,2)

        self.topwid = ImageWindow()
        self.topwid.resize(self.topwid.sizeHint())
        self.botwid = ButtonWindow()
        self.botwid.resize(self.botwid.sizeHint())
        self.printer = DataDisplayWindow()
        self.topwid.image(self.frame_counter, self.printer)
        self.botwid.gridstruct(self.frame_counter, self.printer)
        self.printer.show_data(self.frame_counter)

        self.wid = QWidget(self)

        extractAction = QAction("Exit", self)
        extractAction.setShortcut("Ctrl+Q")
        extractAction.setStatusTip('Leave The App')
        extractAction.triggered.connect(self.close_application)

        saveFile = QAction("Save", self)
        saveFile.setShortcut("Ctrl+S")
        saveFile.setStatusTip('Save To Location')
        saveFile.triggered.connect(self.save_application)

        LOGGER.debug("frame Length = " + str(len(self.frame_counter.display_all())))

        extractNextImage = QAction("Next Frame", self)
        # extractNextImage.setShortcut("Alt+n")
        extractNextImage.setShortcut("Right")
        extractNextImage.setStatusTip("Next Frame...")
        extractNextImage.triggered.connect(lambda: self.topwid.changeimage("n", self.frame_counter, self.printer))

        extractPrevImage = QAction("Previous Frame", self)
        # extractPrevImage.setShortcut("Alt+b")
        extractPrevImage.setShortcut("Left")
        extractPrevImage.setStatusTip("Previous Frame...")
        extractPrevImage.triggered.connect(lambda: self.topwid.changeimage("b", self.frame_counter, self.printer))

        getshortcuts = QAction("Shortcuts", self)
        getshortcuts.setShortcut("Ctrl+K")
        getshortcuts.setStatusTip("Shortcuts List")
        getshortcuts.triggered.connect(lambda: self.short())

        reportBugs = QAction("Report", self)
        reportBugs.setShortcut("Ctrl+R")
        reportBugs.setStatusTip("Please report bugs")
        reportBugs.triggered.connect(lambda: self.bugreport())


        author = QLabel("Prajwal Rao\[email protected]")
        author.setStyleSheet("color : grey")

        self.statusBar = QStatusBar()
        self.statusBar.addPermanentWidget(author)
        self.setStatusBar(self.statusBar)

        mainMenu = self.menuBar()
        fileMenu = mainMenu.addMenu('&File')

        helpMenu = mainMenu.addMenu('&Help')


        fileMenu.addAction(extractNextImage)
        fileMenu.addAction(extractPrevImage)
        fileMenu.addAction(saveFile)
        fileMenu.addAction(extractAction)

        helpMenu.addAction(getshortcuts)
        helpMenu.addAction(reportBugs)

        self.setCentralWidget(self.wid)

        # vboxlayout.setAlignment(QtCore.Qt.AlignCenter)
        hboxlayout.addWidget(self.topwid)
        hboxlayout.addWidget(self.printer)
        vboxlayout.addLayout(hboxlayout)
        # vboxlayout.addWidget(self.topwid)
        # print("vbox size hint: ",vboxlayout.sizeHint())
        vboxlayout.addWidget(self.botwid.groupbox)
        self.wid.setLayout(vboxlayout)

        LOGGER.info("initialised menubar")
        # self.home()
        self.show()
コード例 #19
0
 def __init__(self):
     """View initializer."""
     super().__init__()
     
     self.number_point = 1
     self.function_type = 0
     self.firstpointvalue = ""
     self.secondpointvalue = "" 
     self.thirdpointvalue = "" 
     self.fourthpointvalue = ""
     self.firstendpointvalue = ""
     self.secondendpointvalue = "" 
     self.thirdendpointvalue = "" 
     self.fourthendpointvalue = ""
     self.first_link = 1
     self.second_link = 2
     self.third_link = 3
     self.fourth_link = 4
     
     # Set some main window's properties
     self.setWindowTitle('Function Image')
     self.setWindowIcon(QtGui.QIcon('Draw.ico'))
     self.setFixedSize(900, 600)
     
     # Set the central widget
     self._centralWidget = QWidget(self)
     self.setCentralWidget(self._centralWidget)
     
     #Set the Grid Layout
     self.layout = QGridLayout()
     
     #Set the First Part Outer Layout
     self.sublayout_1 = QVBoxLayout()
     self.sublayout_1.setContentsMargins(10, 0, 50, 0)
     
     self.basic_groupbox = QGroupBox("Basic Configuration")
     self.basic_groupbox.setContentsMargins(40, 0, 0, 0)
     self.basic_groupbox.setLayout(self.sublayout_1)
     
     #Set the The First Part of Inner Layout
     self.leftlayout_1 = QHBoxLayout()
     
     self.function_type_group_box = QGroupBox("Function Type :")
     self.function_type_group_box.setFixedHeight(60)
     self.function_type_group_box.setContentsMargins(100, 0, 0, 0)
     self.function_type_group_box.setLayout(self.leftlayout_1)
     
     self.type_radiobutton_1 = QRadioButton("A/B")
     self.type_radiobutton_1.setChecked(True)
     self.type_radiobutton_2 = QRadioButton("x - f(x)")
     self.type_radiobutton_3 = QRadioButton("None")
     
     #Place the Radiobutton
     self.leftlayout_1.addWidget(self.type_radiobutton_1)
     self.leftlayout_1.addWidget(self.type_radiobutton_2)
     self.leftlayout_1.addWidget(self.type_radiobutton_3)
     
     #Set the Second part of Inner Layout
     self.leftlayout_2 = QFormLayout()
     self.leftlayout_2.setHorizontalSpacing(20)
     
     self.function_info_group_box = QGroupBox("Function Info :")
     self.function_info_group_box.setFixedHeight(60)
     self.function_info_group_box.setContentsMargins(100, 10, 0, 0)
     self.function_info_group_box.setLayout(self.leftlayout_2)
     
     #Set and Place the Component for the form layout
     self.function_name = QLineEdit()
     self.function_name.setFixedWidth(200)
     self.leftlayout_2.addRow("Function Name:", self.function_name)
     
     #Set the Third Part of Inner Layout
     self.leftlayout_3 = QHBoxLayout()
     self.point_number = QGroupBox("Point Number :")
     self.point_number.setFixedHeight(60)
     self.point_number.setContentsMargins(100, 10, 0, 0)
     self.point_number.setLayout(self.leftlayout_3)
     
     self.number_1 = QRadioButton("1")
     self.number_2 = QRadioButton("2")
     self.number_3 = QRadioButton("3")
     self.number_4 = QRadioButton("4")
     
     self.number_1.setChecked(True)
     
     #Place the Radiobutton
     self.leftlayout_3.addWidget(self.number_1)
     self.leftlayout_3.addWidget(self.number_2)
     self.leftlayout_3.addWidget(self.number_3)
     self.leftlayout_3.addWidget(self.number_4)
     
     #Place all the Inner Layout for First Part of Outer Layout
     self.sublayout_1.addWidget(self.function_type_group_box)
     self.sublayout_1.addWidget(self.function_info_group_box)
     self.sublayout_1.addWidget(self.point_number)
     
     #Set the Second Part Outer Layout
     self.sublayout_2 = QHBoxLayout()
     self.advanced_groupbox = QGroupBox("Advanced Configuration")
     self.advanced_groupbox.setContentsMargins(40, 0, 0, 0)
     self.advanced_groupbox.setLayout(self.sublayout_2)
     
     #Create the stacked Layout
     self.stackedLayout = QStackedLayout()
     
     #Place the Page to Stacked Layout
     self.stackedLayout.addWidget(self.Page1())
     self.stackedLayout.addWidget(self.Page2())
     self.stackedLayout.addWidget(self.Page3())
     self.stackedLayout.addWidget(self.Page4())
     
     #Place the Stacked Layout
     self.sublayout_2.addLayout(self.stackedLayout)
     
     #Set the Third Part Outer Layout
     self.sublayout_3 = QVBoxLayout()
     self.preview_button =  QPushButton('Preview')
     self.sublayout_3.addWidget(self.preview_button)
     
     #Place all the Outer Layout
     self.layout.addWidget(self.basic_groupbox, 0, 0, 3, 2)
     self.layout.addWidget(self.advanced_groupbox, 0, 2, 2, 1)
     self.layout.addLayout(self.sublayout_3, 2, 2, 1, 1)
     
     #Place the Grid layout to Central Widget
     self._centralWidget.setLayout(self.layout)
     
     #Connect all Function
     self.number_1.clicked.connect(lambda: self.switchPage(self.number_1))
     self.number_2.clicked.connect(lambda: self.switchPage(self.number_2))
     self.number_3.clicked.connect(lambda: self.switchPage(self.number_3))
     self.number_4.clicked.connect(lambda: self.switchPage(self.number_4))
     
     self.preview_button.clicked.connect(self.CreateImage)
     
     self.type_radiobutton_1.clicked.connect(self.setFunctionType)
     self.type_radiobutton_2.clicked.connect(self.setFunctionType)
     self.type_radiobutton_3.clicked.connect(self.setFunctionType)
     
     #Set the Status Bar
     status = QStatusBar()
     status.showMessage("Welcome to the Creating function image tool")
     self.setStatusBar(status)
コード例 #20
0
    def __init__(self, parent=None):
        super(UIMainWindow, self).__init__(parent)
        currentDir = os.getcwd()
        dataDir = os.path.join(currentDir, "app_data")
        workFileDir = os.path.join(dataDir, "workfiles")
        self._outPutDir = os.path.join(currentDir, "savedfiles")
        self._interface_lang_file = os.path.join(
            workFileDir, 'interface_language_setting.txt')
        self._interface_lang_dict = os.path.join(
            workFileDir, 'interface_language_dict.json')
        self.fc_lg, self.fc_dict = self.set_lang()

        self._prompt_frame = QGroupBox(
            self.fc_dict["frame_prompt"][self.fc_lg])
        self._prompt_frame.setAlignment(Qt.AlignCenter)

        self.initial_prompt = self.fc_dict["pmt_1_start"][
            self.fc_lg] + "\n" + self.fc_dict["pmt_1_a"][
                self.fc_lg] + "\n" + self.fc_dict["pmt_1_b"][self.fc_lg]
        self._prompt_2 = self.fc_dict["pmt_2_start"][
            self.fc_lg] + "\n " + self.fc_dict["pmt_2_a"][
                self.fc_lg] + "\n " + self.fc_dict["pmt_2_b"][self.fc_lg]
        self._prompt_3 = self.fc_dict["pmt_3_start"][
            self.fc_lg] + "\n " + self.fc_dict["pmt_3_a"][self.fc_lg]
        self._prompt_5 = self.fc_dict["pmt_5"][self.fc_lg]

        self._prompt_frame_layout = QHBoxLayout()
        self._promptBox = QLabel()
        self._promptBox.setText(self.initial_prompt)
        self._promptBox.setFixedHeight(80)
        self._promptBox.setWordWrap(True)
        self._prompt_frame_layout.addWidget(self._promptBox)
        self._prompt_frame.setLayout(self._prompt_frame_layout)

        self._fileloader_frame = QGroupBox(
            self.fc_dict["frame_load"][self.fc_lg])
        self._fileloader_frame.setAlignment(Qt.AlignCenter)

        self._fileloader_src_layout = QHBoxLayout()
        self._file_openBox = QLineEdit()
        self._file_openBox.setFixedWidth(500)
        self._file_openBox.setReadOnly(True)
        self._file_openButton = QPushButton()
        self._file_openButton.setText(self.fc_dict["open_s"][self.fc_lg])
        self._file_openButton.setFixedWidth(80)
        self._file_openButton.clicked[bool].connect(self.open_file)
        self._file_reloadButton = QPushButton(
            self.fc_dict["r_load"][self.fc_lg])
        self._file_reloadButton.setFixedWidth(80)
        self._file_reloadButton.clicked[bool].connect(self.reload_file)
        self._fileloader_src_layout.addWidget(self._file_openBox)
        self._fileloader_src_layout.addWidget(self._file_openButton)
        self._fileloader_src_layout.addWidget(self._file_reloadButton)

        self._fileloader_opt_layout = QGridLayout()
        self._file_type_label = QLabel(self.fc_dict["f_type"][self.fc_lg])
        self._file_type_label.setFixedWidth(60)
        self._file_type_box = QComboBox()
        self._file_type_box.setFixedWidth(100)
        self._file_type_box.addItem('txt')
        self._file_type_box.addItem('docx')
        self._file_type_box.addItem('xlsx')

        self._file_bind_label = QLabel(self.fc_dict["bi_loc"][self.fc_lg])

        self._file_bind_label.setFixedWidth(80)
        self._file_bind_box = QComboBox()
        self._file_bind_box.setFixedWidth(120)
        self._file_bind_box.addItem(self.fc_dict["bind_sig"][self.fc_lg])
        self._file_bind_box.addItem(self.fc_dict["bind_mul"][self.fc_lg])
        self._file_num_label = QLabel(self.fc_dict["f_num"][self.fc_lg])
        self._file_num_label.setFixedWidth(80)
        self._file_num_box = QDoubleSpinBox()
        self._file_num_box.setFixedWidth(80)
        self._file_num_box.setMinimum(1)
        self._file_num_box.setDecimals(0)
        self._file_num_box.setDisabled(True)
        self._file_portion_label = QLabel(self.fc_dict["bi_rate"][self.fc_lg])
        self._file_portion_label.setFixedWidth(80)
        self._file_portion_label.setStatusTip(
            self.fc_dict["tip_portion"][self.fc_lg])
        self._file_portion_box = QDoubleSpinBox()
        self._file_portion_box.setDisabled(True)
        self._file_portion_box.setFixedWidth(80)
        self._file_portion_box.setMinimum(0)
        self._file_portion_box.setDecimals(0)
        self._file_portion_box.setPrefix("1:")
        self._file_portion_box.setValue(1)
        self._file_pos_label = QLabel(self.fc_dict["bi_pos"][self.fc_lg])
        self._file_pos_label.setFixedWidth(80)
        self._file_pos_box = QComboBox()
        self._file_pos_box.setDisabled(True)
        self._file_pos_box.setFixedWidth(120)

        self._file_pos_box.addItem(self.fc_dict["u_d"][self.fc_lg])
        self._file_pos_box.addItem(self.fc_dict["l_r"][self.fc_lg])
        self._file_pos_box.addItem(self.fc_dict["bi-sep"][self.fc_lg])

        self._fileloader_mark_layout = QGridLayout()
        self._fileloader_mark_label = QLabel(
            self.fc_dict["conc_mk"][self.fc_lg])
        self._fileloader_mark_label.setFixedWidth(80)
        self._file_num_mark_box = QCheckBox(self.fc_dict["l_num"][self.fc_lg])
        self._file_num_mark_box.setFixedWidth(80)
        self._file_num_mark_box.setStatusTip(
            self.fc_dict["tip_num"][self.fc_lg])
        self._file_num_mark_box.clicked[bool].connect(self.mark_num)
        self._file_num_mark_box.setDisabled(True)
        self._file_chapt_num_box = QCheckBox(
            self.fc_dict["title_ch"][self.fc_lg])
        self._file_chapt_num_box.setFixedWidth(100)
        self._file_chapt_num_box.setStatusTip(
            self.fc_dict["tip_format"][self.fc_lg])
        self._file_chapt_num_box.clicked[bool].connect(self.mark_chapter)
        self._file_chapt_num_box.setDisabled(True)
        self._file_tab_mark_box = QCheckBox(self.fc_dict["mk_tab"][self.fc_lg])
        self._file_tab_mark_box.setFixedWidth(100)
        self._file_tab_mark_box.setStatusTip(
            self.fc_dict["tip_tab"][self.fc_lg])
        self._file_tab_mark_box.clicked[bool].connect(self.mark_tab)
        self._file_tab_mark_box.setDisabled(True)
        self._file_cuc_mark_box = QCheckBox(self.fc_dict["mk_seg"][self.fc_lg])
        self._file_cuc_mark_box.setFixedWidth(100)
        self._file_cuc_mark_box.setStatusTip(
            self.fc_dict["tip_seg"][self.fc_lg])
        self._file_cuc_mark_box.clicked[bool].connect(self.mark_cuc)
        self._file_cuc_mark_box.setDisabled(True)
        self._file_table_mark_box = QCheckBox(
            self.fc_dict["mk_table"][self.fc_lg])
        self._file_table_mark_box.setFixedWidth(100)
        self._file_table_mark_box.setStatusTip(
            self.fc_dict["tip_table"][self.fc_lg])
        self._file_table_mark_box.clicked[bool].connect(self.mark_table)
        self._file_table_mark_box.setDisabled(True)
        self._fileloader_mark_layout.addWidget(self._fileloader_mark_label, 0,
                                               0)
        self._fileloader_mark_layout.addWidget(self._file_num_mark_box, 0, 1)
        self._fileloader_mark_layout.addWidget(self._file_chapt_num_box, 0, 2)
        self._fileloader_mark_layout.addWidget(self._file_tab_mark_box, 0, 3)
        self._fileloader_mark_layout.addWidget(self._file_cuc_mark_box, 0, 4)
        self._fileloader_mark_layout.addWidget(self._file_table_mark_box, 0, 5)

        self._fileloader_opt_layout.addWidget(self._file_type_label, 0, 0)
        self._fileloader_opt_layout.addWidget(self._file_type_box, 0, 1)
        self._fileloader_opt_layout.addWidget(self._file_bind_label, 0, 2)
        self._fileloader_opt_layout.addWidget(self._file_bind_box, 0, 3)
        self._fileloader_opt_layout.addWidget(self._file_pos_label, 0, 4)
        self._fileloader_opt_layout.addWidget(self._file_pos_box, 0, 5)
        self._fileloader_opt_layout.addWidget(self._file_num_label, 0, 6)
        self._fileloader_opt_layout.addWidget(self._file_num_box, 0, 7)
        self._fileloader_opt_layout.addLayout(self._fileloader_mark_layout, 1,
                                              0, 1, 6)
        self._fileloader_opt_layout.addWidget(self._file_portion_label, 1, 6)
        self._fileloader_opt_layout.addWidget(self._file_portion_box, 1, 7)

        self._fileloader_frame_layout = QVBoxLayout()
        self._fileloader_frame_layout.addLayout(self._fileloader_opt_layout)
        self._fileloader_frame_layout.addLayout(self._fileloader_mark_layout)
        self._fileloader_frame_layout.addLayout(self._fileloader_src_layout)
        self._fileloader_frame_layout.setAlignment(Qt.AlignCenter)

        self._fileloader_frame.setLayout(self._fileloader_frame_layout)
        self._fileloader_frame_layout.setAlignment(Qt.AlignCenter)

        self._generator_frame = QGroupBox(
            self.fc_dict["frame_profile"][self.fc_lg])
        self._generator_frame.setAlignment(Qt.AlignCenter)

        self._ss_book_frame = QGroupBox(self.fc_dict["win_sl"][self.fc_lg])
        self._ss_book_frame.setAlignment(Qt.AlignCenter)

        self._ss_book_frame_layout = QGridLayout()
        self._ss_book_title = QLabel(self.fc_dict["title_book"][self.fc_lg])
        self._ss_book_title.setFixedWidth(80)
        self._ss_book_title.setStatusTip(
            self.fc_dict["tip_fill_title"][self.fc_lg])
        self._ss_book_titleBox = QLineEdit()
        self._ss_book_version = QLabel(self.fc_dict["vn_num"][self.fc_lg])
        self._ss_book_version.setFixedWidth(80)
        self._ss_book_versionBox = QLineEdit()
        self._ss_book_versionBox.setFixedWidth(120)
        self._ss_book_versionBox.setText('s0')
        self._ss_book_versionBox.setReadOnly(True)
        self._ss_book_versionBox.setEnabled(False)
        self._ss_book_language = QLabel(self.fc_dict["corp_lang"][self.fc_lg])
        self._ss_book_language.setFixedWidth(80)
        self._ss_book_languageBox = QLineEdit()
        self._ss_book_languageBox.setFixedWidth(120)
        self._ss_book_languageBox.setText('en')
        self._ss_book_author = QLabel(self.fc_dict["ar_id"][self.fc_lg])
        self._ss_book_author.setFixedWidth(80)
        self._ss_book_author.setStatusTip(
            self.fc_dict["tip_fill_author"][self.fc_lg])
        self._ss_book_authorBox = QLineEdit()
        self._ss_book_authorBox.setFixedWidth(120)
        self._ss_book_translator = QLabel(self.fc_dict["tr_id"][self.fc_lg])
        self._ss_book_translator.setFixedWidth(80)
        self._ss_book_translatorBox = QLineEdit()
        self._ss_book_translatorBox.setFixedWidth(120)
        self._ss_book_translatorBox.setEnabled(False)
        self._ss_book_date = QLabel(self.fc_dict["issue_date"][self.fc_lg])
        self._ss_book_date.setFixedWidth(80)
        self._ss_book_date.setStatusTip(
            self.fc_dict["tip_fill_date"][self.fc_lg])
        self._ss_book_dateBox = QLineEdit()
        self._ss_book_dateBox.setFixedWidth(120)
        self._ss_book_genre = QLabel(self.fc_dict["issue_genre"][self.fc_lg])
        self._ss_book_genre.setFixedWidth(80)
        self._ss_book_genre.setStatusTip(
            self.fc_dict["tip_fill_genre"][self.fc_lg])
        self._ss_book_genreBox = QLineEdit()
        self._ss_book_genreBox.setFixedWidth(120)
        self._ss_book_contents = QLabel(
            self.fc_dict["win_preview"][self.fc_lg])
        self._ss_book_contents.setFixedWidth(120)
        self._ss_book_contentsBox = QTextEdit()
        self._ss_book_contentsBox.setReadOnly(True)

        self._ss_book_buttonLayout = QHBoxLayout()
        self._ss_book_redoButton = QPushButton(
            self.fc_dict["btn_refill"][self.fc_lg])
        self._ss_book_redoButton.setFixedWidth(80)
        self._ss_book_redoButton.setEnabled(False)
        self._ss_book_redoButton.clicked[bool].connect(self.json_sl_refiller)
        self._ss_book_uploadButton = QPushButton(
            self.fc_dict["btn_submit"][self.fc_lg])
        self._ss_book_uploadButton.setFixedWidth(80)
        self._ss_book_uploadButton.clicked[bool].connect(self.json_sl_filler)
        self._ss_book_buttonLayout.addWidget(self._ss_book_redoButton)
        self._ss_book_buttonLayout.addWidget(self._ss_book_uploadButton)

        self._ss_book_frame_layout.addWidget(self._ss_book_title, 0, 0)
        self._ss_book_frame_layout.addWidget(self._ss_book_titleBox, 0, 1, 1,
                                             3)
        self._ss_book_frame_layout.addWidget(self._ss_book_version, 1, 0)
        self._ss_book_frame_layout.addWidget(self._ss_book_versionBox, 1, 1)
        self._ss_book_frame_layout.addWidget(self._ss_book_language, 1, 2)
        self._ss_book_frame_layout.addWidget(self._ss_book_languageBox, 1, 3)
        self._ss_book_frame_layout.addWidget(self._ss_book_author, 2, 0)
        self._ss_book_frame_layout.addWidget(self._ss_book_authorBox, 2, 1)
        self._ss_book_frame_layout.addWidget(self._ss_book_translator, 2, 2)
        self._ss_book_frame_layout.addWidget(self._ss_book_translatorBox, 2, 3)
        self._ss_book_frame_layout.addWidget(self._ss_book_date, 3, 0)
        self._ss_book_frame_layout.addWidget(self._ss_book_dateBox, 3, 1)
        self._ss_book_frame_layout.addWidget(self._ss_book_genre, 3, 2)
        self._ss_book_frame_layout.addWidget(self._ss_book_genreBox, 3, 3)
        self._ss_book_frame_layout.addWidget(self._ss_book_contents, 4, 0, 1,
                                             2)
        self._ss_book_frame_layout.addWidget(self._ss_book_contentsBox, 5, 0,
                                             8, 4)
        self._ss_book_frame_layout.addLayout(self._ss_book_buttonLayout, 15, 0,
                                             1, 4)
        self._ss_book_frame.setLayout(self._ss_book_frame_layout)

        self._tt_book_frame = QGroupBox(self.fc_dict["win_tl"][self.fc_lg])
        self._tt_book_frame.setAlignment(Qt.AlignCenter)

        self._tt_book_frame_layout = QGridLayout()
        self._tt_book_title = QLabel(self.fc_dict["title_book"][self.fc_lg])
        self._tt_book_title.setFixedWidth(80)
        self._tt_book_title.setStatusTip(
            self.fc_dict["tip_fill_title_tl"][self.fc_lg])
        self._tt_book_titleBox = QLineEdit()
        self._tt_book_version = QLabel(self.fc_dict["vn_num"][self.fc_lg])
        self._tt_book_version.setFixedWidth(80)
        self._tt_book_version.setStatusTip(
            self.fc_dict["tip_fill_vn"][self.fc_lg])
        self._tt_book_versionBox = QLineEdit()
        self._tt_book_versionBox.setFixedWidth(120)
        self._tt_book_versionBox.setText('t1')
        self._tt_book_language = QLabel(self.fc_dict["corp_lang"][self.fc_lg])
        self._tt_book_language.setFixedWidth(80)
        self._tt_book_languageBox = QLineEdit()
        self._tt_book_languageBox.setFixedWidth(120)
        self._tt_book_languageBox.setText('zh')
        self._tt_book_author = QLabel(self.fc_dict["ar_id"][self.fc_lg])
        self._tt_book_author.setFixedWidth(80)
        self._tt_book_author.setStatusTip(
            self.fc_dict["tip_fill_author_tl"][self.fc_lg])
        self._tt_book_authorBox = QLineEdit()
        self._tt_book_authorBox.setFixedWidth(120)
        self._tt_book_translator = QLabel(self.fc_dict["tr_id"][self.fc_lg])
        self._tt_book_translator.setFixedWidth(80)
        self._tt_book_translator.setStatusTip(
            self.fc_dict["tip_fill_trans"][self.fc_lg])
        self._tt_book_translatorBox = QLineEdit()
        self._tt_book_translatorBox.setFixedWidth(120)
        self._tt_book_date = QLabel(self.fc_dict["issue_date"][self.fc_lg])
        self._tt_book_date.setFixedWidth(80)
        self._tt_book_date.setStatusTip(
            self.fc_dict["tip_fill_date_tl"][self.fc_lg])
        self._tt_book_dateBox = QLineEdit()
        self._tt_book_dateBox.setFixedWidth(120)
        self._tt_book_genre = QLabel(self.fc_dict["issue_genre"][self.fc_lg])
        self._tt_book_genre.setFixedWidth(80)
        self._tt_book_genre.setStatusTip(
            self.fc_dict["tip_fill_genre_tl"][self.fc_lg])
        self._tt_book_genreBox = QLineEdit()
        self._tt_book_genreBox.setFixedWidth(120)
        self._tt_book_contents = QLabel(
            self.fc_dict["win_preview"][self.fc_lg])
        self._tt_book_contents.setFixedWidth(120)
        self._tt_book_contentsBox = QTextEdit()
        self._tt_book_contentsBox.setReadOnly(True)

        self._tt_book_buttonLayout = QHBoxLayout()
        self._tt_book_redoButton = QPushButton(
            self.fc_dict["btn_refill"][self.fc_lg])
        self._tt_book_redoButton.setEnabled(False)
        self._tt_book_redoButton.setFixedWidth(80)
        self._tt_book_redoButton.clicked[bool].connect(self.json_tl_refiller)
        self._tt_book_uploadButton = QPushButton(
            self.fc_dict["btn_submit"][self.fc_lg])
        self._tt_book_uploadButton.setFixedWidth(80)
        self._tt_book_uploadButton.clicked[bool].connect(self.json_tl_filler)
        self._tt_book_uploadButton.setEnabled(False)
        self._tt_book_nextButton = QPushButton(
            self.fc_dict["btn_next"][self.fc_lg])
        self._tt_book_nextButton.setFixedWidth(80)
        self._tt_book_nextButton.setEnabled(False)
        self._tt_book_nextButton.clicked[bool].connect(self.load_next_version)
        self._tt_book_buttonLayout.addWidget(self._tt_book_redoButton)
        self._tt_book_buttonLayout.addWidget(self._tt_book_nextButton)
        self._tt_book_buttonLayout.addWidget(self._tt_book_uploadButton)

        self._tt_book_frame_layout.addWidget(self._tt_book_title, 0, 0)
        self._tt_book_frame_layout.addWidget(self._tt_book_titleBox, 0, 1, 1,
                                             3)
        self._tt_book_frame_layout.addWidget(self._tt_book_version, 1, 0)
        self._tt_book_frame_layout.addWidget(self._tt_book_versionBox, 1, 1)
        self._tt_book_frame_layout.addWidget(self._tt_book_language, 1, 2)
        self._tt_book_frame_layout.addWidget(self._tt_book_languageBox, 1, 3)
        self._tt_book_frame_layout.addWidget(self._tt_book_author, 2, 0)
        self._tt_book_frame_layout.addWidget(self._tt_book_authorBox, 2, 1)
        self._tt_book_frame_layout.addWidget(self._tt_book_translator, 2, 2)
        self._tt_book_frame_layout.addWidget(self._tt_book_translatorBox, 2, 3)
        self._tt_book_frame_layout.addWidget(self._tt_book_date, 3, 0)
        self._tt_book_frame_layout.addWidget(self._tt_book_dateBox, 3, 1)
        self._tt_book_frame_layout.addWidget(self._tt_book_genre, 3, 2)
        self._tt_book_frame_layout.addWidget(self._tt_book_genreBox, 3, 3)
        self._tt_book_frame_layout.addWidget(self._tt_book_contents, 4, 0, 1,
                                             2)
        self._tt_book_frame_layout.addWidget(self._tt_book_contentsBox, 5, 0,
                                             8, 4)
        self._tt_book_frame_layout.addLayout(self._tt_book_buttonLayout, 15, 0,
                                             1, 4)
        self._tt_book_frame.setLayout(self._tt_book_frame_layout)

        self._generator_frame_layout = QHBoxLayout()
        self._generator_frame_layout.addWidget(self._ss_book_frame)
        self._generator_frame_layout.addWidget(self._tt_book_frame)
        self._generator_frame.setLayout(self._generator_frame_layout)

        self._convert_layout = QHBoxLayout()
        self._bi_book_convertButton = QPushButton(
            self.fc_dict["btn_conv"][self.fc_lg])
        self._bi_book_convertButton.clicked[bool].connect(self.write_to_json)
        self._bi_book_convertButton.setFixedWidth(120)
        self._bi_book_convertButton.setStyleSheet("font:bold")
        self._convert_layout.addWidget(self._bi_book_convertButton)
        self._convert_layout.setAlignment(Qt.AlignCenter)

        mainWidget = QWidget()
        mainLayout = QVBoxLayout(mainWidget)
        mainLayout.setSpacing(2)
        mainLayout.addWidget(self._prompt_frame, 0)
        mainLayout.addWidget(self._fileloader_frame, 0)
        mainLayout.addWidget(self._generator_frame, 9)
        mainLayout.addLayout(self._convert_layout, 1)
        self.setCentralWidget(mainWidget)

        #----------创建主窗口状态栏----------
        self._statusBar = QStatusBar()
        self._statusBar.showMessage(self.fc_dict["greeting"][self.fc_lg])
        self._copyRightLabel = QLabel(self.fc_dict["copyright"][self.fc_lg])
        self._statusBar.addPermanentWidget(self._copyRightLabel)
        self.setStatusBar(self._statusBar)

        #----------设置页面尺寸及标题等----------
        self.setGeometry(200, 50, 800, 600)
        self.setObjectName("MainWindow")
        currentDir = os.getcwd()
        self.setWindowTitle(self.fc_dict["soft_title"][self.fc_lg])
        self.setWindowIcon(QIcon(currentDir +
                                 "/app_data/workfiles/myIcon.png"))
        self.setIconSize(QSize(100, 40))

        self._file_type_box.activated[str].connect(self._type_index_info)
        self._file_bind_box.activated[str].connect(self._bind_index_info)
        self._file_pos_box.activated[str].connect(self._pos_index_info)
        self._file_type_box.currentIndexChanged.connect(
            self._type_index_sender)
        self._file_bind_box.currentIndexChanged.connect(
            self._bind_index_sender)
        self._file_pos_box.currentIndexChanged.connect(self._pos_index_sender)
コード例 #21
0
    def InitWindow(self):
        mainMenu = self.menuBar()
        mainMenu.setToolTip('This is a <b>MenuBar</b> widget')
        self.menuBarLayout.addWidget(mainMenu)
        fileMenu = mainMenu.addMenu('File')
        OpenFile = QAction('Open File', self)
        fileMenu.addAction(OpenFile)
        fileMenu.addAction('Open Folder')
        fileMenu.addAction('Save File')
        fileMenu.addAction('Save File as')
        fileMenu.addAction('Exit')

        editMenu = mainMenu.addMenu('Edit')
        editMenu.addAction('Cut')
        editMenu.addAction('Copy')
        editMenu.addAction('Paste')
        editMenu.addAction('Delete')
        editMenu.addAction('Preferences')

        viewMenu = mainMenu.addMenu('View')
        viewMenu.addAction('Rotate View')
        viewMenu.addAction('Page Navigation')
        viewMenu.addAction('Page Display')
        viewMenu.addAction('Zoom')
        viewMenu.addAction("Set Interface Font...", lambda:
        self.setFont(QFontDialog.getFont(self)[0]))
        viewMenu.addAction("Take ScreenShoot...", lambda: self.grab().save(
            QFileDialog.getSaveFileName(self, "Save", os.path.expanduser("~"),
                                        "(*.png) PNG image file", "png")[0]))

        windowMenu = mainMenu.addMenu('Window')
        windowMenu.addAction('New Window')
        windowMenu.addAction('Minimize All')

        helpMenu = mainMenu.addMenu('Help')
        helpMenu.addAction('About App')
        helpMenu.addAction('About Developers')
        helpMenu.addAction("About Qt 5", lambda: QMessageBox.aboutQt(self))
        helpMenu.addAction("About Python 3", lambda:
        open_new_tab('https://www.python.org/about'))

        self.setLayout(self.menuBarLayout)
        toolbar_layout = QVBoxLayout()

        self.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        self.setIconSize(QSize(50, 30))
        toolbar = self.addToolBar("File")
        toolbar.setMovable(False)
        openfile = QAction(self, icon=QIcon("icons/File1.png"), text="Open File ")
        openfile.triggered.connect(self.OpenFile)
        toolbar.addAction(openfile)
        openfolder = QAction(self, icon=QIcon('icons/Folder1.png'), text="Open Folder")
        openfolder.triggered.connect(self.OpenFolder)
        openwebpage = QAction(self, icon=QIcon('icons/webpage.png'), text="Open Webpage")
        # openwebpage.triggered.connect(self.OpenFolder)
        toolbar.addAction(openfolder)
        toolbar.addAction(openwebpage)
        exit = QAction(self, icon=QIcon('icons/Exit2.png'), text="Exit")
        toolbar.addAction(exit)
        exit.triggered.connect(sys.exit)
        restart = QAction(self, icon=QIcon('icons/Restart1.png'), text="Restart")
        toolbar.addAction(restart)
        # exit.triggered.connect(restartMe)
        spacer = QWidget()
        spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)  # Study this later
        toolbar.addWidget(spacer)
        setting = QAction(self, icon=QIcon('icons/Support3.png'), text="Preferences")
        toolbar.addAction(setting)
        help = QAction(self, icon=QIcon('icons/Help1.png'), text="Get Assistance")
        toolbar.addAction(help)
        self.setLayout(toolbar_layout)

        self.statusBar = QStatusBar()
        self.setStatusBar(self.statusBar)
        self.statusBar.showMessage(" This is My Status Bar's Message")

        self.setWindowTitle(self.title)
        self.setGeometry(self.top, self.left, self.width, self.height)
コード例 #22
0
ファイル: traja-gui.py プロジェクト: gitter-badger/traja
    def initUI(self):
        self.setGeometry(600, 300, 1000, 600)
        self.center()
        self.setWindowTitle("Plot Trajectory")

        mainMenu = self.menuBar()
        fileMenu = mainMenu.addMenu("File")

        saveAction = QAction("Save as...")
        saveAction.setShortcut("Ctrl+S")
        saveAction.setStatusTip("Save plot to file")
        saveAction.setMenuRole(QAction.NoRole)
        saveAction.triggered.connect(self.file_save)
        fileMenu.addAction(saveAction)

        exitAction = QAction("&Exit", self)
        exitAction.setShortcut("Ctrl+Q")
        exitAction.setStatusTip("Exit Application")
        exitAction.setMenuRole(QAction.NoRole)
        exitAction.triggered.connect(self.close)
        fileMenu.addAction(exitAction)

        settingsMenu = mainMenu.addMenu("Settings")
        self.setStyleMenu = QMenu("Set Style", self)
        settingsMenu.addMenu(self.setStyleMenu)
        for style_name in ["default", "fast", "ggplot", "grayscale", "seaborn"]:
            styleAction = QAction(style_name, self, checkable=True)
            if style_name is CUR_STYLE:
                styleAction.setChecked(True)
            styleAction.triggered.connect(partial(self.set_style, style_name))
            self.setStyleMenu.addAction(styleAction)
        self.setTimeWindowMenu = QMenu("Set Time Window", self)
        settingsMenu.addMenu(self.setTimeWindowMenu)
        for window_str in ["None", "s", "30s", "H", "D"]:
            windowAction = QAction(window_str, self, checkable=True)
            if window_str is TIME_WINDOW:
                windowAction.setChecked(True)
            windowAction.triggered.connect(partial(self.set_time_window, window_str))
            self.setTimeWindowMenu.addAction(windowAction)

        # Grid Layout
        grid = QtWidgets.QGridLayout()
        widget = QtWidgets.QWidget(self)
        self.setCentralWidget(widget)
        widget.setLayout(grid)

        # Import CSV Button
        btn1 = QtWidgets.QPushButton("Import CSV", self)
        btn1.resize(btn1.sizeHint())
        btn1.clicked.connect(self.getCSV)
        grid.addWidget(btn1, 1, 0)

        # Canvas and Toolbar
        self.figure = plt.figure(figsize=(15, 5))
        self.canvas = FigureCanvas(self.figure)
        self.canvas.setContextMenuPolicy(Qt.CustomContextMenu)
        self.canvas.customContextMenuRequested.connect(self.popup)
        grid.addWidget(self.canvas, 2, 0, 1, 2)

        # DropDown mean / comboBox
        self.df = pd.DataFrame()
        self.columns = []
        self.plot_list = []

        self.comboBox = QtWidgets.QComboBox(self)
        self.comboBox.addItems(self.columns)
        grid.addWidget(self.comboBox, 0, 0)

        self.comboBox2 = QtWidgets.QComboBox(self)
        self.comboBox2.addItems(self.plot_list)
        grid.addWidget(self.comboBox2, 0, 1)

        # Plot Button
        btn2 = QtWidgets.QPushButton("Plot", self)
        btn2.resize(btn2.sizeHint())
        btn2.clicked.connect(self.plot)
        grid.addWidget(btn2, 1, 1)

        # Progress bar
        self.progress = QProgressBar(self)
        # self.progress.setRange(0, 1)
        grid.addWidget(self.progress, 3, 0, 1, 2)

        self.statusBar = QStatusBar()
        self.setStatusBar(self.statusBar)
        self.show()
コード例 #23
0
    def __init__(self):
        """
        Class constructor.
        
        .. codeauthor:: Bouthayna Haltout
        """

        super(MainWindow, self).__init__()
        self.MainUi = Ui.Ui_MainWindow()
        self.MainUi.setupUi(self)
        self.setGeometry(self.MainUi.left, self.MainUi.top, self.MainUi.width,
                         self.MainUi.height)
        self.manage = Management.Mana()

        self.scaleFactor = 1.0
        self.fitScaleFactor = 1.0
        self.x = -1  # Setting x and y to -1, as long as the coordinates of the apex are not chosen.
        self.y = -1
        self.apexS = False  # We set it to false to desactivate the choice of the apex.

        # Connecting the menu items to their respective functions.
        self.MainUi.actionNew.triggered.connect(self.new)
        self.MainUi.actionSave.triggered.connect(self.save)
        self.MainUi.actionOpen.triggered.connect(self.open)
        self.MainUi.actionExport.triggered.connect(self.export)
        self.MainUi.actionClose.triggered.connect(self.close)

        ## Connecting each action of the Toolbar to the its function ##

        # We connect the icons to the assigned functions.
        self.MainUi.playAction.triggered.connect(self.play)
        self.MainUi.fitToWindowAction.triggered.connect(self.scaleToFit)
        self.MainUi.zoominAction.triggered.connect(self.zoomIn)
        self.MainUi.zoomoutAction.triggered.connect(self.zoomOut)
        self.MainUi.truesizeAction.triggered.connect(self.trueSize)
        self.MainUi.nextAction.triggered.connect(self.nextImg)
        self.MainUi.previousAction.triggered.connect(self.previousImg)
        self.MainUi.nextAnalyseAction.triggered.connect(self.nextAnalysisImg)
        self.MainUi.previousAnalysisAction.triggered.connect(
            self.previousAnalysisImg)

        # titleAfterAnalysis and titleBeforeAnalysis showing the total number of images before and after the analysis.
        titleAfterAnalysis = QLabel("Steps Navigation")  #ou analysis
        titleBeforeAnalysis = QLabel("Images Navigation")
        self.totalNumberOfImg = QLabel(" / 0")
        self.totalNumberOfStep = QLabel(" / 0")

        # Connecting the QLineEdit to the pushOk functions allowing the user to go to the desired image.
        self.numberImg = QLineEdit(self)
        self.numberImg.setFixedWidth(25)
        self.numberImg.returnPressed.connect(self.pushOkImg)
        self.numberStep = QLineEdit(self)
        self.numberStep.setFixedWidth(25)
        self.numberStep.returnPressed.connect(self.pushOkStep)

        # Creating and connecting a QprogressBar that will allow the user to know that the analysis is running.
        self.progressBar = QProgressBar(self)
        self.progressBar.setRange(0, 100)

        # Creating the toolBar and adding all the widgets to it.
        self.toolbar = self.addToolBar("Options")
        self.toolbar.addWidget(titleBeforeAnalysis)
        self.toolbar.addAction(self.MainUi.previousAction)
        self.toolbar.addWidget(self.numberImg)
        self.toolbar.addWidget(self.totalNumberOfImg)
        self.toolbar.addAction(self.MainUi.nextAction)
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.MainUi.playAction)
        self.toolbar.addAction(self.MainUi.fitToWindowAction)
        self.toolbar.addAction(self.MainUi.zoomoutAction)
        self.toolbar.addAction(self.MainUi.truesizeAction)
        self.toolbar.addAction(self.MainUi.zoominAction)
        self.toolbar.addSeparator()
        self.toolbar.addWidget(titleAfterAnalysis)
        self.toolbar.addAction(self.MainUi.previousAnalysisAction)
        self.toolbar.addWidget(self.numberStep)
        self.toolbar.addWidget(self.totalNumberOfStep)
        self.toolbar.addAction(self.MainUi.nextAnalyseAction)
        self.toolbar.addSeparator()
        self.toolbar.addWidget(self.progressBar)
        self.addToolBarBreak()

        ## Image area and scroll area ##

        self.imageLabel = MouseTracker()
        self.imageLabel.resize(self.MainUi.width - self.MainUi.padding,
                               self.MainUi.height - self.MainUi.padding)

        # Sets the scroll area where the images are going to be opened.
        self.scrollArea = QScrollArea()
        self.scrollArea.setBackgroundRole(QPalette.Dark)
        self.scrollArea.setWidget(self.imageLabel)
        self.setCentralWidget(self.scrollArea)

        # Setting the Status bar
        self.statusBar = QStatusBar()
        self.setStatusBar(self.statusBar)
        self.statusMessage = QLabel('Please create or open a project.')
        self.statusBar.addWidget(self.statusMessage, 1)
        self.mouseCoordinates = QLabel()
        self.statusBar.addWidget(self.mouseCoordinates, 0)

        # Connecting the progressBar to the function confirm that will update the Value
        self.myLongTask = TaskBar()
        self.myLongTask.taskFinished.connect(self.confirm)
コード例 #24
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(784, 600)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        
        self.Time = QLCDNumber(self.centralwidget)
        self.Time.setGeometry(QRect(260, 80, 271, 121))
        self.Time.setFrameShape(QFrame.Box)
        self.Time.setFrameShadow(QFrame.Sunken)
        self.Time.setLineWidth(1)
        self.Time.setMidLineWidth(0)
        self.Time.setSmallDecimalPoint(False)
        self.Time.setDigitCount(8)
        self.Time.setObjectName("lcdNumber")
        
        self.label = QLabel(self.centralwidget)
        self.label.setGeometry(QRect(220, 0, 341, 61))
        font = QFont()
        font.setBold(False)
        font.setWeight(50)
        self.label.setFont(font)
        self.label.setFocusPolicy(Qt.NoFocus)
        self.label.setFrameShape(QFrame.NoFrame)
        self.label.setTextFormat(Qt.AutoText)
        self.label.setScaledContents(False)
        self.label.setAlignment(Qt.AlignCenter)
        self.label.setIndent(-1)
        self.label.setObjectName("label")
        
        self.line = QFrame(self.centralwidget)
        self.line.setGeometry(QRect(0, 40, 831, 31))
        self.line.setFrameShape(QFrame.HLine)
        self.line.setFrameShadow(QFrame.Sunken)
        self.line.setObjectName("line")
        self.line_2 = QFrame(self.centralwidget)
        self.line_2.setGeometry(QRect(0, 220, 801, 31))
        self.line_2.setFrameShape(QFrame.HLine)
        self.line_2.setFrameShadow(QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        
        self.Melody = QPushButton(self.centralwidget)
        self.Melody.setGeometry(QRect(-270, 240, 1091, 61))
        self.Melody.setObjectName("pushButton")
        
        self.Pause = QPushButton(self.centralwidget)
        self.Pause.setGeometry(QRect(520, 370, 81, 81))
        self.Pause.setDefault(True)
        self.Pause.setFlat(False)
        self.Pause.setObjectName("pushButton_2")
        
        self.Stop = QPushButton(self.centralwidget)
        self.Stop.setGeometry(QRect(190, 370, 81, 81))
        self.Stop.setDefault(True)
        self.Stop.setObjectName("pushButton_3")
        
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(MainWindow)
        self.menubar.setGeometry(QRect(0, 0, 784, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QMetaObject.connectSlotsByName(MainWindow)
コード例 #25
0
    def initUI(self):
        self.resize(800,800)
        self.setWindowTitle('特征选择窗口')
        self.setWindowIcon(QIcon('./image/选择.png'))
        self.all_dict = None
        self.model = None
        self.y_predict = None
        self.df = None
        self.res_list = None
        self.var_list = []


        self.tool_bar = QToolBar()
        self.set_parameter = QAction(QIcon('./image/参数.png'),'设置参数',self)
        self.run = QAction(QIcon('./image/运行程序.png'),'运行程序',self)
        self.save = QAction(QIcon('./image/下载保存.png'),'保存结果',self)
        self.analysis = QAction(QIcon('./image/对比分析.png'),'分析预测',self)
        self.tool_bar.addAction(self.set_parameter)
        self.tool_bar.addAction(self.run)
        self.tool_bar.addAction(self.analysis)
        self.tool_bar.addAction(self.save)

        self.status_bar = QStatusBar()

        self.lable = QLabel('选择算法:')
        self.comb1 = QComboBox()
        algorithm_list = ['FSFS','Lasso']
        self.comb1.addItems(algorithm_list)
        # self.comb2 = QComboBox()
        # self.comb2.addItems(['算法','内容'])
        self.completer = QCompleter(algorithm_list)
        self.completer.setCompletionMode(QCompleter.UnfilteredPopupCompletion)
        self.line_edit = QLineEdit()
        self.line_edit.setCompleter(self.completer)
        self.button = QPushButton('搜索')

        hlayout = QHBoxLayout()
        hlayout.addWidget(self.lable)
        hlayout.addWidget(self.comb1)

        # hlayout.addWidget(self.comb2)
        hlayout.addWidget(self.line_edit)
        hlayout.addWidget(self.button)
        hlayout.addWidget(self.tool_bar)
        hlayout.addStretch(3)
        hlayout.setSpacing(10)
        self.text_edit = QTextEdit()
        file_name = "./other/aboutFSFS.txt"
        with open(file_name, 'r', encoding='utf-8') as f:
            text = f.read()
        self.text_edit.setText(text)
        self.text_edit.setReadOnly(True)
        self.run.setEnabled(False)

        vlayout = QVBoxLayout()
        vlayout.addItem(hlayout)
        vlayout.addWidget(self.text_edit)
        vlayout.addWidget(self.status_bar)
        self.setLayout(vlayout)

        self.comb1.currentIndexChanged.connect(self.selectionChange1)
        # self.comb2.currentIndexChanged(self.selecttionChange2)
        self.button.clicked.connect(self.clickSearch)
        self.set_parameter.triggered.connect(self.getParameter)
        self.run.triggered.connect(self.runProcess)
        self.analysis.triggered.connect(self.runAnalysis)
        self.save.triggered.connect(self.triggeredSave)
コード例 #26
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(784, 600)
        self.centralwidget = QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        
        self.label = QLabel(self.centralwidget)
        self.label.setGeometry(QRect(220, 0, 341, 61))
        font = QFont()
        font.setBold(False)
        font.setWeight(50)
        self.label.setFont(font)
        self.label.setFocusPolicy(Qt.NoFocus)
        self.label.setFrameShape(QFrame.NoFrame)
        self.label.setTextFormat(Qt.AutoText)
        self.label.setScaledContents(False)
        self.label.setAlignment(Qt.AlignCenter)
        self.label.setIndent(-1)
        self.label.setObjectName("label")
        
        self.line = QFrame(self.centralwidget)
        self.line.setGeometry(QRect(0, 40, 831, 31))
        self.line.setFrameShape(QFrame.HLine)
        self.line.setFrameShadow(QFrame.Sunken)
        self.line.setObjectName("line")
        self.line_2 = QFrame(self.centralwidget)
        self.line_2.setGeometry(QRect(0, 220, 801, 31))
        self.line_2.setFrameShape(QFrame.HLine)
        self.line_2.setFrameShadow(QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        
        self.Melody1 = QPushButton(self.centralwidget)
        self.Melody1.setGeometry(QRect(-270, 240, 1091, 61))
        self.Melody1.setObjectName("pushButton")
        
        self.start = QPushButton(self.centralwidget)
        self.start.setGeometry(QRect(520, 370, 81, 81))
        self.start.setDefault(True)
        self.start.setFlat(False)
        self.start.setObjectName("pushButton_2")
        
        self.stop1 = QPushButton(self.centralwidget)
        self.stop1.setGeometry(QRect(190, 370, 81, 81))
        self.stop1.setCheckable(False)
        self.stop1.setAutoExclusive(True)
        self.stop1.setDefault(True)
        self.stop1.setObjectName("pushButton_3")
        
        self.hours = QSpinBox(self.centralwidget)
        self.hours.setGeometry(QRect(150, 120, 71, 31))
        self.hours.setObjectName("spinBox")
        self.mins = QSpinBox(self.centralwidget)
        self.mins.setGeometry(QRect(350, 120, 71, 31))
        self.mins.setObjectName("spinBox_2")
        self.sec = QSpinBox(self.centralwidget)
        self.sec.setGeometry(QRect(550, 120, 71, 31))
        self.sec.setObjectName("spinBox_3")
        
        self.label_h = QLabel(self.centralwidget)
        self.label_h.setGeometry(QRect(240, 130, 41, 16))
        self.label_h.setTextFormat(Qt.AutoText)
        self.label_h.setObjectName("label_3")
        self.label_m = QLabel(self.centralwidget)
        self.label_m.setGeometry(QRect(440, 130, 41, 16))
        self.label_m.setTextFormat(Qt.AutoText)
        self.label_m.setObjectName("label_4")
        self.label_s = QLabel(self.centralwidget)
        self.label_s.setGeometry(QRect(640, 130, 41, 16))
        self.label_s.setTextFormat(Qt.AutoText)
        self.label_s.setObjectName("label_5")
        
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QMenuBar(MainWindow)
        self.menubar.setGeometry(QRect(0, 0, 784, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        
        self.setngsButton = QPushButton(self.centralwidget)
        self.setngsButton.resize(100, 25)
        self.setngsButton.move(600, 20)
        self.setngsButton.setText("Доп. Настройки")

        self.retranslateUi(MainWindow)
        QMetaObject.connectSlotsByName(MainWindow)
コード例 #27
0
    def __init__(self, persepolis_setting):
        super().__init__()
        # MainWindow
        self.persepolis_setting = persepolis_setting

        icons = ':/' + \
            str(self.persepolis_setting.value('settings/icons')) + '/'

        self.setWindowTitle("Persepolis Download Manager")
        self.setWindowIcon(
            QIcon.fromTheme('persepolis', QIcon(':/persepolis.svg')))

        self.centralwidget = QWidget(self)
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        # enable drag and drop
        self.setAcceptDrops(True)
        # frame
        self.frame = QFrame(self.centralwidget)

        # download_table_horizontalLayout
        download_table_horizontalLayout = QHBoxLayout()
        tabels_splitter = QSplitter(Qt.Horizontal)
        # category_tree
        self.category_tree_qwidget = QWidget(self)
        category_tree_verticalLayout = QVBoxLayout()
        self.category_tree = CategoryTreeView(self)
        category_tree_verticalLayout.addWidget(self.category_tree)

        self.category_tree_model = QStandardItemModel()
        self.category_tree.setModel(self.category_tree_model)
        category_table_header = ['Category']
        self.category_tree_model.setHorizontalHeaderLabels(
            category_table_header)
        self.category_tree.header().setStretchLastSection(True)

        # inserting items in category_tree
        for item in ['All Downloads', 'Single Downloads']:
            qstandarditem = QStandardItem(item)
            font = QtGui.QFont()
            font.setBold(True)
            qstandarditem.setFont(font)
            qstandarditem.setEditable(False)
            self.category_tree_model.appendRow(qstandarditem)

# queue_panel
        self.queue_panel_widget = QWidget(self)

        queue_panel_verticalLayout_main = QVBoxLayout(self.queue_panel_widget)
        # queue_panel_show_button
        self.queue_panel_show_button = QPushButton(self)

        queue_panel_verticalLayout_main.addWidget(self.queue_panel_show_button)
        # queue_panel_widget_frame
        self.queue_panel_widget_frame = QFrame(self)
        self.queue_panel_widget_frame.setFrameShape(QFrame.StyledPanel)
        self.queue_panel_widget_frame.setFrameShadow(QFrame.Raised)

        queue_panel_verticalLayout_main.addWidget(
            self.queue_panel_widget_frame)

        queue_panel_verticalLayout = QVBoxLayout(self.queue_panel_widget_frame)
        queue_panel_verticalLayout_main.setContentsMargins(50, -1, 50, -1)

        # start_end_frame
        self.start_end_frame = QFrame(self)

        # start time
        start_verticalLayout = QVBoxLayout(self.start_end_frame)
        self.start_checkBox = QCheckBox(self)
        start_verticalLayout.addWidget(self.start_checkBox)

        self.start_frame = QFrame(self)
        self.start_frame.setFrameShape(QFrame.StyledPanel)
        self.start_frame.setFrameShadow(QFrame.Raised)

        start_frame_verticalLayout = QVBoxLayout(self.start_frame)
        horizontalLayout_5 = QHBoxLayout()

        self.start_hour_spinBox = QSpinBox(self.start_frame)
        self.start_hour_spinBox.setMaximum(23)
        horizontalLayout_5.addWidget(self.start_hour_spinBox)

        self.start_label = QLabel(self.start_frame)
        horizontalLayout_5.addWidget(self.start_label)

        self.start_minute_spinBox = QSpinBox(self.start_frame)
        self.start_minute_spinBox.setMaximum(59)
        horizontalLayout_5.addWidget(self.start_minute_spinBox)

        start_frame_verticalLayout.addLayout(horizontalLayout_5)

        start_verticalLayout.addWidget(self.start_frame)
        # end time

        self.end_checkBox = QCheckBox(self)
        start_verticalLayout.addWidget(self.end_checkBox)

        self.end_frame = QFrame(self)
        self.end_frame.setFrameShape(QFrame.StyledPanel)
        self.end_frame.setFrameShadow(QFrame.Raised)

        end_frame_verticalLayout = QVBoxLayout(self.end_frame)
        horizontalLayout_6 = QHBoxLayout()

        self.end_hour_spinBox = QSpinBox(self.end_frame)
        self.end_hour_spinBox.setMaximum(23)
        horizontalLayout_6.addWidget(self.end_hour_spinBox)

        self.end_label = QLabel(self.end_frame)
        horizontalLayout_6.addWidget(self.end_label)

        self.end_minute_spinBox = QSpinBox(self.end_frame)
        self.end_minute_spinBox.setMaximum(59)
        horizontalLayout_6.addWidget(self.end_minute_spinBox)

        end_frame_verticalLayout.addLayout(horizontalLayout_6)

        start_verticalLayout.addWidget(self.end_frame)

        self.reverse_checkBox = QCheckBox(self)
        start_verticalLayout.addWidget(self.reverse_checkBox)

        queue_panel_verticalLayout.addWidget(self.start_end_frame)

        # limit_after_frame
        self.limit_after_frame = QFrame(self)
        # limit_checkBox
        limit_verticalLayout = QVBoxLayout(self.limit_after_frame)
        self.limit_checkBox = QCheckBox(self)
        limit_verticalLayout.addWidget(self.limit_checkBox)
        # limit_frame
        self.limit_frame = QFrame(self)
        self.limit_frame.setFrameShape(QFrame.StyledPanel)
        self.limit_frame.setFrameShadow(QFrame.Raised)
        limit_verticalLayout.addWidget(self.limit_frame)

        limit_frame_verticalLayout = QVBoxLayout(self.limit_frame)
        # limit_spinBox
        limit_frame_horizontalLayout = QHBoxLayout()
        self.limit_spinBox = QSpinBox(self)
        self.limit_spinBox.setMinimum(1)
        self.limit_spinBox.setMaximum(1023)
        limit_frame_horizontalLayout.addWidget(self.limit_spinBox)
        # limit_comboBox
        self.limit_comboBox = QComboBox(self)
        self.limit_comboBox.addItem("")
        self.limit_comboBox.addItem("")
        limit_frame_horizontalLayout.addWidget(self.limit_comboBox)
        limit_frame_verticalLayout.addLayout(limit_frame_horizontalLayout)
        # limit_pushButton
        self.limit_pushButton = QPushButton(self)
        limit_frame_verticalLayout.addWidget(self.limit_pushButton)

        # after_checkBox
        self.after_checkBox = QtWidgets.QCheckBox(self)
        limit_verticalLayout.addWidget(self.after_checkBox)
        # after_frame
        self.after_frame = QtWidgets.QFrame(self)
        self.after_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.after_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        limit_verticalLayout.addWidget(self.after_frame)

        after_frame_verticalLayout = QVBoxLayout(self.after_frame)
        # after_comboBox
        self.after_comboBox = QComboBox(self)
        self.after_comboBox.addItem("")

        after_frame_verticalLayout.addWidget(self.after_comboBox)
        # after_pushButton
        self.after_pushButton = QPushButton(self)
        after_frame_verticalLayout.addWidget(self.after_pushButton)

        queue_panel_verticalLayout.addWidget(self.limit_after_frame)
        category_tree_verticalLayout.addWidget(self.queue_panel_widget)

        # keep_awake_checkBox
        self.keep_awake_checkBox = QCheckBox(self)
        queue_panel_verticalLayout.addWidget(self.keep_awake_checkBox)

        self.category_tree_qwidget.setLayout(category_tree_verticalLayout)
        tabels_splitter.addWidget(self.category_tree_qwidget)

        # download table widget
        self.download_table_content_widget = QWidget(self)
        download_table_content_widget_verticalLayout = QVBoxLayout(
            self.download_table_content_widget)

        self.download_table = DownloadTableWidget(self)
        download_table_content_widget_verticalLayout.addWidget(
            self.download_table)
        tabels_splitter.addWidget(self.download_table_content_widget)

        self.download_table.setColumnCount(13)
        self.download_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.download_table.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.download_table.verticalHeader().hide()
        #         self.download_table.setSortingEnabled(True)

        # hide gid and download dictioanry section
        self.download_table.setColumnHidden(8, True)
        self.download_table.setColumnHidden(9, True)

        download_table_header = [
            'File Name', 'Status', 'Size', 'Downloaded', 'Percentage',
            'Connections', 'Transfer rate', 'Estimate time left', 'Gid',
            'Info', 'First try date', 'Last try date', 'Category'
        ]
        self.download_table.setHorizontalHeaderLabels(download_table_header)

        # fixing the size of download_table when window is Maximized!
        self.download_table.horizontalHeader().setSectionResizeMode(0)
        self.download_table.horizontalHeader().setStretchLastSection(True)

        tabels_splitter.setStretchFactor(0, 3)  # category_tree width
        tabels_splitter.setStretchFactor(1, 10)  # ratio of tables's width
        download_table_horizontalLayout.addWidget(tabels_splitter)
        self.frame.setLayout(download_table_horizontalLayout)
        self.verticalLayout.addWidget(self.frame)
        self.setCentralWidget(self.centralwidget)

        # menubar
        self.menubar = QMenuBar(self)
        self.menubar.setGeometry(QRect(0, 0, 600, 24))
        self.setMenuBar(self.menubar)
        fileMenu = self.menubar.addMenu('&File')
        editMenu = self.menubar.addMenu('&Edit')
        viewMenu = self.menubar.addMenu('&View')
        downloadMenu = self.menubar.addMenu('&Download')
        queueMenu = self.menubar.addMenu('&Queue')
        helpMenu = self.menubar.addMenu('&Help')

        # viewMenu submenus
        sortMenu = viewMenu.addMenu('Sort by')
        # statusbar
        self.statusbar = QStatusBar(self)
        self.setStatusBar(self.statusbar)
        self.statusbar.showMessage("Persepolis Download Manager")
        # toolBar
        self.toolBar2 = QToolBar(self)
        self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar2)
        self.toolBar2.setWindowTitle('Menu')
        self.toolBar2.setIconSize(QSize(38, 38))
        self.toolBar2.setFloatable(False)
        self.toolBar2.setMovable(False)

        self.toolBar = QToolBar(self)
        self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.toolBar.setWindowTitle('Toolbar')
        self.toolBar.setIconSize(QSize(38, 38))
        self.toolBar.setFloatable(False)
        self.toolBar.setMovable(False)

        #toolBar and menubar and actions
        self.stopAllAction = QAction(QIcon(icons + 'stop_all'),
                                     'Stop all active downloads',
                                     self,
                                     statusTip='Stop all active downloads',
                                     triggered=self.stopAllDownloads)
        downloadMenu.addAction(self.stopAllAction)

        self.sort_file_name_Action = QAction('File name',
                                             self,
                                             triggered=self.sortByName)
        sortMenu.addAction(self.sort_file_name_Action)

        self.sort_file_size_Action = QAction('File size',
                                             self,
                                             triggered=self.sortBySize)
        sortMenu.addAction(self.sort_file_size_Action)

        self.sort_first_try_date_Action = QAction(
            'First try date', self, triggered=self.sortByFirstTry)
        sortMenu.addAction(self.sort_first_try_date_Action)

        self.sort_last_try_date_Action = QAction('Last try date',
                                                 self,
                                                 triggered=self.sortByLastTry)
        sortMenu.addAction(self.sort_last_try_date_Action)

        self.sort_download_status_Action = QAction('Download status',
                                                   self,
                                                   triggered=self.sortByStatus)
        sortMenu.addAction(self.sort_download_status_Action)

        self.trayAction = QAction('Show system tray icon',
                                  self,
                                  statusTip="Show/Hide system tray icon",
                                  triggered=self.showTray)
        self.trayAction.setCheckable(True)
        viewMenu.addAction(self.trayAction)

        self.showMenuBarAction = QAction('Show menubar',
                                         self,
                                         statusTip='Show menubar',
                                         triggered=self.showMenuBar)
        self.showMenuBarAction.setCheckable(True)
        viewMenu.addAction(self.showMenuBarAction)

        self.showSidePanelAction = QAction('Show side panel',
                                           self,
                                           statusTip='Show side panel',
                                           triggered=self.showSidePanel)
        self.showSidePanelAction.setCheckable(True)
        viewMenu.addAction(self.showSidePanelAction)

        self.minimizeAction = QAction(QIcon(icons + 'minimize'),
                                      'Minimize to system tray',
                                      self,
                                      shortcut="Ctrl+W",
                                      statusTip="Minimize to system tray",
                                      triggered=self.minMaxTray)
        viewMenu.addAction(self.minimizeAction)

        self.addlinkAction = QAction(QIcon(icons + 'add'),
                                     'Add New Download Link',
                                     self,
                                     shortcut="Ctrl+N",
                                     statusTip="Add New Download Link",
                                     triggered=self.addLinkButtonPressed)
        fileMenu.addAction(self.addlinkAction)

        self.addtextfileAction = QAction(
            QIcon(icons + 'file'),
            'Import links from text file',
            self,
            statusTip='Create a Text file and put links in it.line by line!',
            triggered=self.importText)
        fileMenu.addAction(self.addtextfileAction)

        self.resumeAction = QAction(QIcon(icons + 'play'),
                                    'Resume Download',
                                    self,
                                    shortcut="Ctrl+R",
                                    statusTip="Resume Download",
                                    triggered=self.resumeButtonPressed)
        downloadMenu.addAction(self.resumeAction)

        self.pauseAction = QAction(QIcon(icons + 'pause'),
                                   'Pause Download',
                                   self,
                                   shortcut="Ctrl+C",
                                   statusTip="Pause Download",
                                   triggered=self.pauseButtonPressed)
        downloadMenu.addAction(self.pauseAction)

        self.stopAction = QAction(QIcon(icons + 'stop'),
                                  'Stop Download',
                                  self,
                                  shortcut="Ctrl+S",
                                  statusTip="Stop/Cancel Download",
                                  triggered=self.stopButtonPressed)
        downloadMenu.addAction(self.stopAction)

        self.removeAction = QAction(QIcon(icons + 'remove'),
                                    'Remove Download',
                                    self,
                                    shortcut="Ctrl+D",
                                    statusTip="Remove Download",
                                    triggered=self.removeButtonPressed)
        downloadMenu.addAction(self.removeAction)

        self.propertiesAction = QAction(QIcon(icons + 'setting'),
                                        'Properties',
                                        self,
                                        shortcut="Ctrl+P",
                                        statusTip="Properties",
                                        triggered=self.propertiesButtonPressed)
        downloadMenu.addAction(self.propertiesAction)

        self.progressAction = QAction(QIcon(icons + 'window'),
                                      'Progress',
                                      self,
                                      shortcut="Ctrl+Z",
                                      statusTip="Progress",
                                      triggered=self.progressButtonPressed)
        downloadMenu.addAction(self.progressAction)

        self.openFileAction = QAction(QIcon(icons + 'file'),
                                      'Open file',
                                      self,
                                      statusTip='Open file',
                                      triggered=self.openFile)
        fileMenu.addAction(self.openFileAction)

        self.openDownloadFolderAction = QAction(
            QIcon(icons + 'folder'),
            'Open download folder',
            self,
            statusTip='Open download folder',
            triggered=self.openDownloadFolder)
        fileMenu.addAction(self.openDownloadFolderAction)

        self.deleteFileAction = QAction(QIcon(icons + 'trash'),
                                        'Delete file',
                                        self,
                                        statusTip='Delete file',
                                        triggered=self.deleteFile)
        fileMenu.addAction(self.deleteFileAction)

        self.openDefaultDownloadFolderAction = QAction(
            QIcon(icons + 'folder'),
            'Open default download folder',
            self,
            statusTip='Open default download folder',
            triggered=self.openDefaultDownloadFolder)
        fileMenu.addAction(self.openDefaultDownloadFolderAction)

        self.exitAction = QAction(QIcon(icons + 'exit'),
                                  'Exit',
                                  self,
                                  shortcut="Ctrl+Q",
                                  statusTip="Exit",
                                  triggered=self.closeEvent)
        fileMenu.addAction(self.exitAction)

        self.selectAction = QAction('Select multiple items ',
                                    self,
                                    statusTip='Select multiple items',
                                    triggered=self.selectDownloads)
        self.selectAction.setCheckable(True)
        editMenu.addAction(self.selectAction)

        self.selectAllAction = QAction(QIcon(icons + 'select_all'),
                                       'Select All',
                                       self,
                                       statusTip='Select All',
                                       triggered=self.selectAll)
        editMenu.addAction(self.selectAllAction)
        self.selectAllAction.setEnabled(False)

        self.removeSelectedAction = QAction(
            QIcon(icons + 'multi_remove'),
            'Remove selected downloads form list',
            self,
            statusTip='Remove selected downloads form list',
            triggered=self.removeSelected)
        editMenu.addAction(self.removeSelectedAction)
        self.removeSelectedAction.setEnabled(False)

        self.deleteSelectedAction = QAction(
            QIcon(icons + 'multi_trash'),
            'Delete selected download files',
            self,
            statusTip='Delete selected download files',
            triggered=self.deleteSelected)
        editMenu.addAction(self.deleteSelectedAction)
        self.deleteSelectedAction.setEnabled(False)

        self.createQueueAction = QAction(QIcon(icons + 'add_queue'),
                                         'Create new queue',
                                         self,
                                         statusTip='Create new download queue',
                                         triggered=self.createQueue)
        queueMenu.addAction(self.createQueueAction)

        self.removeQueueAction = QAction(QIcon(icons + 'remove_queue'),
                                         'Remove this queue',
                                         self,
                                         statusTip='Remove this queue',
                                         triggered=self.removeQueue)
        queueMenu.addAction(self.removeQueueAction)

        self.startQueueAction = QAction(QIcon(icons + 'start_queue'),
                                        'Start this queue',
                                        self,
                                        statusTip='Start this queue',
                                        triggered=self.startQueue)
        queueMenu.addAction(self.startQueueAction)

        self.stopQueueAction = QAction(QIcon(icons + 'stop_queue'),
                                       'Stop this queue',
                                       self,
                                       statusTip='Stop this queue',
                                       triggered=self.stopQueue)
        queueMenu.addAction(self.stopQueueAction)

        self.moveUpAction = QAction(
            QIcon(icons + 'up'),
            'Move up this item',
            self,
            statusTip='Move currently selected item up by one row',
            triggered=self.moveUp)
        queueMenu.addAction(self.moveUpAction)

        self.moveDownAction = QAction(
            QIcon(icons + 'down'),
            'Move down this item',
            self,
            statusTip='Move currently selected item down by one row',
            triggered=self.moveDown)
        queueMenu.addAction(self.moveDownAction)

        self.moveUpSelectedAction = QAction(
            QIcon(icons + 'multi_up'),
            'Move up selected items',
            self,
            statusTip='Move currently selected items up by one row',
            triggered=self.moveUpSelected)
        queueMenu.addAction(self.moveUpSelectedAction)

        self.moveDownSelectedAction = QAction(
            QIcon(icons + 'multi_down'),
            'Move down selected items',
            self,
            statusTip='Move currently selected items down by one row',
            triggered=self.moveDownSelected)
        queueMenu.addAction(self.moveDownSelectedAction)

        self.preferencesAction = QAction(QIcon(icons + 'preferences'),
                                         'Preferences',
                                         self,
                                         statusTip='Preferences',
                                         triggered=self.openPreferences,
                                         menuRole=5)
        editMenu.addAction(self.preferencesAction)

        self.aboutAction = QAction(QIcon(icons + 'about'),
                                   'About',
                                   self,
                                   statusTip='About',
                                   triggered=self.openAbout,
                                   menuRole=4)
        helpMenu.addAction(self.aboutAction)

        self.issueAction = QAction(QIcon(icons + 'about'),
                                   'Report an issue',
                                   self,
                                   statusTip='Report an issue',
                                   triggered=self.reportIssue)
        helpMenu.addAction(self.issueAction)

        self.updateAction = QAction(QIcon(icons + 'about'),
                                    'Check for newer version',
                                    self,
                                    statusTip='Check for newer release',
                                    triggered=self.newUpdate)
        helpMenu.addAction(self.updateAction)

        self.browserAction = QAction(QIcon(icons + 'browser'),
                                     'Browser integration',
                                     self,
                                     statusTip='Browser inegration',
                                     triggered=self.browserIntegration)
        helpMenu.addAction(self.browserAction)

        self.helpAction = QAction(QIcon(icons + 'about'),
                                  'Help',
                                  self,
                                  statusTip='Help',
                                  triggered=self.persepolisHelp)
        helpMenu.addAction(self.helpAction)

        self.qmenu = MenuWidget(self)

        self.toolBar2.addWidget(self.qmenu)

        # labels
        self.queue_panel_show_button.setText("Hide options")
        self.start_checkBox.setText("Start Time")
        self.start_label.setText(":")

        self.end_checkBox.setText("End Time")
        self.end_label.setText(":")

        self.reverse_checkBox.setText("Download bottom of\n the list first")

        self.limit_checkBox.setText("Limit Speed")
        self.limit_comboBox.setItemText(0, "KB/S")
        self.limit_comboBox.setItemText(1, "MB/S")
        self.limit_pushButton.setText("Apply")

        self.after_checkBox.setText("After download")
        self.after_comboBox.setItemText(0, "Shut Down")

        self.keep_awake_checkBox.setText("Keep system awake!")
        self.keep_awake_checkBox.setToolTip(
            "<html><head/><body><p>This option is preventing system from going to sleep.\
            This is necessary if your power manager is suspending system automatically. </p></body></html>"
        )

        self.after_pushButton.setText("Apply")
コード例 #28
0
    def __init__(self, persepolis_setting):
        super().__init__()
        # MainWindow
        self.persepolis_setting = persepolis_setting

        # add support for other languages
        locale = str(self.persepolis_setting.value('settings/locale'))
        QLocale.setDefault(QLocale(locale))
        self.translator = QTranslator()
        if self.translator.load(':/translations/locales/ui_' + locale, 'ts'):
            QCoreApplication.installTranslator(self.translator)

        # set ui direction
        ui_direction = self.persepolis_setting.value('ui_direction')

        if ui_direction == 'rtl':
            self.setLayoutDirection(Qt.RightToLeft)

        elif ui_direction in 'ltr':
            self.setLayoutDirection(Qt.LeftToRight)



        icons = ':/' + \
            str(self.persepolis_setting.value('settings/icons')) + '/'

        self.setWindowTitle(
            QCoreApplication.translate("mainwindow_ui_tr",
                                       "Persepolis Download Manager"))
        self.setWindowIcon(
            QIcon.fromTheme('persepolis', QIcon(':/persepolis.svg')))

        self.centralwidget = QWidget(self)
        self.verticalLayout = QVBoxLayout(self.centralwidget)
        # enable drag and drop
        self.setAcceptDrops(True)
        # frame
        self.frame = QFrame(self.centralwidget)

        # download_table_horizontalLayout
        download_table_horizontalLayout = QHBoxLayout()
        tabels_splitter = QSplitter(Qt.Horizontal)
        # category_tree
        self.category_tree_qwidget = QWidget(self)
        category_tree_verticalLayout = QVBoxLayout()
        self.category_tree = CategoryTreeView(self)
        category_tree_verticalLayout.addWidget(self.category_tree)

        self.category_tree_model = QStandardItemModel()
        self.category_tree.setModel(self.category_tree_model)
        category_table_header = [
            QCoreApplication.translate("mainwindow_ui_tr", 'Category')
        ]

        self.category_tree_model.setHorizontalHeaderLabels(
            category_table_header)
        self.category_tree.header().setStretchLastSection(True)

        self.category_tree.header().setDefaultAlignment(Qt.AlignCenter)

        # queue_panel
        self.queue_panel_widget = QWidget(self)

        queue_panel_verticalLayout_main = QVBoxLayout(self.queue_panel_widget)
        # queue_panel_show_button
        self.queue_panel_show_button = QPushButton(self)

        queue_panel_verticalLayout_main.addWidget(self.queue_panel_show_button)
        # queue_panel_widget_frame
        self.queue_panel_widget_frame = QFrame(self)
        self.queue_panel_widget_frame.setFrameShape(QFrame.StyledPanel)
        self.queue_panel_widget_frame.setFrameShadow(QFrame.Raised)

        queue_panel_verticalLayout_main.addWidget(
            self.queue_panel_widget_frame)

        queue_panel_verticalLayout = QVBoxLayout(self.queue_panel_widget_frame)
        queue_panel_verticalLayout_main.setContentsMargins(50, -1, 50, -1)

        # start_end_frame
        self.start_end_frame = QFrame(self)

        # start time
        start_verticalLayout = QVBoxLayout(self.start_end_frame)
        self.start_checkBox = QCheckBox(self)
        start_verticalLayout.addWidget(self.start_checkBox)

        self.start_frame = QFrame(self)
        self.start_frame.setFrameShape(QFrame.StyledPanel)
        self.start_frame.setFrameShadow(QFrame.Raised)

        start_frame_verticalLayout = QVBoxLayout(self.start_frame)

        self.start_time_qDataTimeEdit = QDateTimeEdit(self.start_frame)
        self.start_time_qDataTimeEdit.setDisplayFormat('H:mm')
        start_frame_verticalLayout.addWidget(self.start_time_qDataTimeEdit)

        start_verticalLayout.addWidget(self.start_frame)
        # end time

        self.end_checkBox = QCheckBox(self)
        start_verticalLayout.addWidget(self.end_checkBox)

        self.end_frame = QFrame(self)
        self.end_frame.setFrameShape(QFrame.StyledPanel)
        self.end_frame.setFrameShadow(QFrame.Raised)

        end_frame_verticalLayout = QVBoxLayout(self.end_frame)

        self.end_time_qDateTimeEdit = QDateTimeEdit(self.end_frame)
        self.end_time_qDateTimeEdit.setDisplayFormat('H:mm')
        end_frame_verticalLayout.addWidget(self.end_time_qDateTimeEdit)

        start_verticalLayout.addWidget(self.end_frame)

        self.reverse_checkBox = QCheckBox(self)
        start_verticalLayout.addWidget(self.reverse_checkBox)

        queue_panel_verticalLayout.addWidget(self.start_end_frame)

        # limit_after_frame
        self.limit_after_frame = QFrame(self)
        # limit_checkBox
        limit_verticalLayout = QVBoxLayout(self.limit_after_frame)
        self.limit_checkBox = QCheckBox(self)
        limit_verticalLayout.addWidget(self.limit_checkBox)
        # limit_frame
        self.limit_frame = QFrame(self)
        self.limit_frame.setFrameShape(QFrame.StyledPanel)
        self.limit_frame.setFrameShadow(QFrame.Raised)
        limit_verticalLayout.addWidget(self.limit_frame)

        limit_frame_verticalLayout = QVBoxLayout(self.limit_frame)
        # limit_spinBox
        limit_frame_horizontalLayout = QHBoxLayout()
        self.limit_spinBox = QDoubleSpinBox(self)
        self.limit_spinBox.setMinimum(1)
        self.limit_spinBox.setMaximum(1023)
        limit_frame_horizontalLayout.addWidget(self.limit_spinBox)
        # limit_comboBox
        self.limit_comboBox = QComboBox(self)
        self.limit_comboBox.addItem("")
        self.limit_comboBox.addItem("")
        limit_frame_horizontalLayout.addWidget(self.limit_comboBox)
        limit_frame_verticalLayout.addLayout(limit_frame_horizontalLayout)
        # limit_pushButton
        self.limit_pushButton = QPushButton(self)
        limit_frame_verticalLayout.addWidget(self.limit_pushButton)

        # after_checkBox
        self.after_checkBox = QtWidgets.QCheckBox(self)
        limit_verticalLayout.addWidget(self.after_checkBox)
        # after_frame
        self.after_frame = QtWidgets.QFrame(self)
        self.after_frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.after_frame.setFrameShadow(QtWidgets.QFrame.Raised)
        limit_verticalLayout.addWidget(self.after_frame)

        after_frame_verticalLayout = QVBoxLayout(self.after_frame)
        # after_comboBox
        self.after_comboBox = QComboBox(self)
        self.after_comboBox.addItem("")

        after_frame_verticalLayout.addWidget(self.after_comboBox)
        # after_pushButton
        self.after_pushButton = QPushButton(self)
        after_frame_verticalLayout.addWidget(self.after_pushButton)

        queue_panel_verticalLayout.addWidget(self.limit_after_frame)
        category_tree_verticalLayout.addWidget(self.queue_panel_widget)

        # keep_awake_checkBox
        self.keep_awake_checkBox = QCheckBox(self)
        queue_panel_verticalLayout.addWidget(self.keep_awake_checkBox)

        self.category_tree_qwidget.setLayout(category_tree_verticalLayout)
        tabels_splitter.addWidget(self.category_tree_qwidget)

        # download table widget
        self.download_table_content_widget = QWidget(self)
        download_table_content_widget_verticalLayout = QVBoxLayout(
            self.download_table_content_widget)

        self.download_table = DownloadTableWidget(self)
        download_table_content_widget_verticalLayout.addWidget(
            self.download_table)
        tabels_splitter.addWidget(self.download_table_content_widget)

        self.download_table.setColumnCount(13)
        self.download_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.download_table.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.download_table.verticalHeader().hide()

        # hide gid and download dictioanry section
        self.download_table.setColumnHidden(8, True)
        self.download_table.setColumnHidden(9, True)

        download_table_header = [
            QCoreApplication.translate("mainwindow_ui_tr", 'File Name'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Status'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Size'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Downloaded'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Percentage'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Connections'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Transfer rate'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Estimated time left'), 'Gid',
            QCoreApplication.translate("mainwindow_ui_tr", 'Link'),
            QCoreApplication.translate("mainwindow_ui_tr", 'First try date'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Last try date'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Category')
        ]

        self.download_table.setHorizontalHeaderLabels(download_table_header)

        # fixing the size of download_table when window is Maximized!
        self.download_table.horizontalHeader().setSectionResizeMode(0)
        self.download_table.horizontalHeader().setStretchLastSection(True)

        tabels_splitter.setStretchFactor(0, 3)  # category_tree width
        tabels_splitter.setStretchFactor(1, 10)  # ratio of tables's width
        download_table_horizontalLayout.addWidget(tabels_splitter)
        self.frame.setLayout(download_table_horizontalLayout)
        self.verticalLayout.addWidget(self.frame)
        self.setCentralWidget(self.centralwidget)

        # menubar
        self.menubar = QMenuBar(self)
        self.menubar.setGeometry(QRect(0, 0, 600, 24))
        self.setMenuBar(self.menubar)
        fileMenu = self.menubar.addMenu(
            QCoreApplication.translate("mainwindow_ui_tr", '&File'))
        editMenu = self.menubar.addMenu(
            QCoreApplication.translate("mainwindow_ui_tr", '&Edit'))
        viewMenu = self.menubar.addMenu(
            QCoreApplication.translate("mainwindow_ui_tr", '&View'))
        downloadMenu = self.menubar.addMenu(
            QCoreApplication.translate("mainwindow_ui_tr", '&Download'))
        queueMenu = self.menubar.addMenu(
            QCoreApplication.translate("mainwindow_ui_tr", '&Queue'))
        videoFinderMenu = self.menubar.addMenu(
            QCoreApplication.translate("mainwindow_ui_tr", '&Video Finder'))
        helpMenu = self.menubar.addMenu(
            QCoreApplication.translate("mainwindow_ui_tr", '&Help'))

        # viewMenu submenus
        sortMenu = viewMenu.addMenu(
            QCoreApplication.translate("mainwindow_ui_tr", 'Sort by'))
        # statusbar
        self.statusbar = QStatusBar(self)
        self.setStatusBar(self.statusbar)
        self.statusbar.showMessage(
            QCoreApplication.translate("mainwindow_ui_tr",
                                       "Persepolis Download Manager"))
        # toolBar
        self.toolBar2 = QToolBar(self)
        self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar2)
        self.toolBar2.setWindowTitle(
            QCoreApplication.translate("mainwindow_ui_tr", 'Menu'))
        self.toolBar2.setFloatable(False)
        self.toolBar2.setMovable(False)

        self.toolBar = QToolBar(self)
        self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.toolBar.setWindowTitle(
            QCoreApplication.translate("mainwindow_ui_tr", 'Toolbar'))
        self.toolBar.setFloatable(False)
        self.toolBar.setMovable(False)

        #toolBar and menubar and actions
        self.videoFinderAddLinkAction = QAction(
            QIcon(icons + 'video_finder'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Find Video Links'),
            self,
            statusTip=QCoreApplication.translate(
                "mainwindow_ui_tr",
                'Download video or audio from Youtube, Vimeo, etc...'),
            triggered=self.showVideoFinderAddLinkWindow)
        videoFinderMenu.addAction(self.videoFinderAddLinkAction)

        self.stopAllAction = QAction(QIcon(icons + 'stop_all'),
                                     QCoreApplication.translate(
                                         "mainwindow_ui_tr",
                                         'Stop all active downloads'),
                                     self,
                                     statusTip='Stop all active downloads',
                                     triggered=self.stopAllDownloads)
        downloadMenu.addAction(self.stopAllAction)

        self.sort_file_name_Action = QAction(QCoreApplication.translate(
            "mainwindow_ui_tr", 'File name'),
                                             self,
                                             triggered=self.sortByName)
        sortMenu.addAction(self.sort_file_name_Action)

        self.sort_file_size_Action = QAction(QCoreApplication.translate(
            "mainwindow_ui_tr", 'File size'),
                                             self,
                                             triggered=self.sortBySize)
        sortMenu.addAction(self.sort_file_size_Action)

        self.sort_first_try_date_Action = QAction(
            QCoreApplication.translate("mainwindow_ui_tr", 'First try date'),
            self,
            triggered=self.sortByFirstTry)
        sortMenu.addAction(self.sort_first_try_date_Action)

        self.sort_last_try_date_Action = QAction(QCoreApplication.translate(
            "mainwindow_ui_tr", 'Last try date'),
                                                 self,
                                                 triggered=self.sortByLastTry)
        sortMenu.addAction(self.sort_last_try_date_Action)

        self.sort_download_status_Action = QAction(QCoreApplication.translate(
            "mainwindow_ui_tr", 'Download status'),
                                                   self,
                                                   triggered=self.sortByStatus)
        sortMenu.addAction(self.sort_download_status_Action)

        self.trayAction = QAction(
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Show system tray icon'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 "Show/Hide system tray icon"),
            triggered=self.showTray)
        self.trayAction.setCheckable(True)
        viewMenu.addAction(self.trayAction)

        self.showMenuBarAction = QAction(
            QCoreApplication.translate("mainwindow_ui_tr", 'Show menubar'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Show menubar'),
            triggered=self.showMenuBar)
        self.showMenuBarAction.setCheckable(True)
        viewMenu.addAction(self.showMenuBarAction)

        self.showSidePanelAction = QAction(
            QCoreApplication.translate("mainwindow_ui_tr", 'Show side panel'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Show side panel'),
            triggered=self.showSidePanel)
        self.showSidePanelAction.setCheckable(True)
        viewMenu.addAction(self.showSidePanelAction)

        self.minimizeAction = QAction(
            QIcon(icons + 'minimize'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Minimize to system tray'),
            self,
            shortcut="Ctrl+W",
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 "Minimize to system tray"),
            triggered=self.minMaxTray)
        viewMenu.addAction(self.minimizeAction)

        self.addlinkAction = QAction(
            QIcon(icons + 'add'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Add New Download Link'),
            self,
            shortcut="Ctrl+N",
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 "Add New Download Link"),
            triggered=self.addLinkButtonPressed)
        fileMenu.addAction(self.addlinkAction)

        self.addtextfileAction = QAction(
            QIcon(icons + 'file'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Import links from text file'),
            self,
            statusTip=QCoreApplication.translate(
                "mainwindow_ui_tr",
                'Create a Text file and put links in it.line by line!'),
            triggered=self.importText)
        fileMenu.addAction(self.addtextfileAction)

        self.resumeAction = QAction(
            QIcon(icons + 'play'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Resume Download'),
            self,
            shortcut="Ctrl+R",
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 "Resume Download"),
            triggered=self.resumeButtonPressed)
        downloadMenu.addAction(self.resumeAction)

        self.pauseAction = QAction(
            QIcon(icons + 'pause'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Pause Download'),
            self,
            shortcut="Ctrl+C",
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 "Pause Download"),
            triggered=self.pauseButtonPressed)
        downloadMenu.addAction(self.pauseAction)

        self.stopAction = QAction(
            QIcon(icons + 'stop'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Stop Download'),
            self,
            shortcut="Ctrl+S",
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 "Stop/Cancel Download"),
            triggered=self.stopButtonPressed)
        downloadMenu.addAction(self.stopAction)

        self.propertiesAction = QAction(
            QIcon(icons + 'setting'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Properties'),
            self,
            shortcut="Ctrl+P",
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 "Properties"),
            triggered=self.propertiesButtonPressed)
        downloadMenu.addAction(self.propertiesAction)

        self.progressAction = QAction(
            QIcon(icons + 'window'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Progress'),
            self,
            shortcut="Ctrl+Z",
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 "Progress"),
            triggered=self.progressButtonPressed)
        downloadMenu.addAction(self.progressAction)

        self.openFileAction = QAction(
            QIcon(icons + 'file'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Open file'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Open file'),
            triggered=self.openFile)
        fileMenu.addAction(self.openFileAction)

        self.openDownloadFolderAction = QAction(
            QIcon(icons + 'folder'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Open download folder'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Open download folder'),
            triggered=self.openDownloadFolder)
        fileMenu.addAction(self.openDownloadFolderAction)

        self.openDefaultDownloadFolderAction = QAction(
            QIcon(icons + 'folder'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Open default download folder'),
            self,
            statusTip=QCoreApplication.translate(
                "mainwindow_ui_tr", 'Open default download folder'),
            triggered=self.openDefaultDownloadFolder)
        fileMenu.addAction(self.openDefaultDownloadFolderAction)

        self.exitAction = QAction(
            QIcon(icons + 'exit'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Exit'),
            self,
            shortcut="Ctrl+Q",
            statusTip=QCoreApplication.translate("mainwindow_ui_tr", "Exit"),
            triggered=self.closeEvent)
        fileMenu.addAction(self.exitAction)

        self.clearAction = QAction(QIcon(icons + 'multi_remove'),
                                   QCoreApplication.translate(
                                       "mainwindow_ui_tr",
                                       'Clear download list'),
                                   self,
                                   statusTip=QCoreApplication.translate(
                                       "mainwindow_ui_tr",
                                       'Clear all items in download list'),
                                   triggered=self.clearDownloadList)
        editMenu.addAction(self.clearAction)

        self.removeSelectedAction = QAction(
            QIcon(icons + 'remove'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Remove selected downloads from list'),
            self,
            statusTip=QCoreApplication.translate(
                "mainwindow_ui_tr", 'Remove selected downloads form list'),
            triggered=self.removeSelected)
        editMenu.addAction(self.removeSelectedAction)
        self.removeSelectedAction.setEnabled(False)

        self.deleteSelectedAction = QAction(
            QIcon(icons + 'trash'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Delete selected download files'),
            self,
            statusTip=QCoreApplication.translate(
                "mainwindow_ui_tr", 'Delete selected download files'),
            triggered=self.deleteSelected)
        editMenu.addAction(self.deleteSelectedAction)
        self.deleteSelectedAction.setEnabled(False)

        self.createQueueAction = QAction(
            QIcon(icons + 'add_queue'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Create new queue'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Create new download queue'),
            triggered=self.createQueue)
        queueMenu.addAction(self.createQueueAction)

        self.removeQueueAction = QAction(
            QIcon(icons + 'remove_queue'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Remove this queue'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Remove this queue'),
            triggered=self.removeQueue)
        queueMenu.addAction(self.removeQueueAction)

        self.startQueueAction = QAction(
            QIcon(icons + 'start_queue'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Start this queue'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Start this queue'),
            triggered=self.startQueue)
        queueMenu.addAction(self.startQueueAction)

        self.stopQueueAction = QAction(
            QIcon(icons + 'stop_queue'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Stop this queue'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Stop this queue'),
            triggered=self.stopQueue)
        queueMenu.addAction(self.stopQueueAction)

        self.moveUpSelectedAction = QAction(
            QIcon(icons + 'multi_up'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Move up selected items'),
            self,
            statusTip=QCoreApplication.translate(
                "mainwindow_ui_tr",
                'Move currently selected items up by one row'),
            triggered=self.moveUpSelected)
        queueMenu.addAction(self.moveUpSelectedAction)

        self.moveDownSelectedAction = QAction(
            QIcon(icons + 'multi_down'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Move down selected items'),
            self,
            statusTip=QCoreApplication.translate(
                "mainwindow_ui_tr",
                'Move currently selected items down by one row'),
            triggered=self.moveDownSelected)
        queueMenu.addAction(self.moveDownSelectedAction)

        self.preferencesAction = QAction(
            QIcon(icons + 'preferences'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Preferences'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Preferences'),
            triggered=self.openPreferences,
            menuRole=5)
        editMenu.addAction(self.preferencesAction)

        self.aboutAction = QAction(
            QIcon(icons + 'about'),
            QCoreApplication.translate("mainwindow_ui_tr", 'About'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr", 'About'),
            triggered=self.openAbout,
            menuRole=4)
        helpMenu.addAction(self.aboutAction)

        self.issueAction = QAction(
            QIcon(icons + 'about'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Report an issue'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Report an issue'),
            triggered=self.reportIssue)
        helpMenu.addAction(self.issueAction)

        self.updateAction = QAction(
            QIcon(icons + 'about'),
            QCoreApplication.translate("mainwindow_ui_tr",
                                       'Check for newer version'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr",
                                                 'Check for newer release'),
            triggered=self.newUpdate)
        helpMenu.addAction(self.updateAction)

        self.logAction = QAction(
            QIcon(icons + 'about'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Show log file'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr", 'Help'),
            triggered=self.showLog)
        helpMenu.addAction(self.logAction)

        self.helpAction = QAction(
            QIcon(icons + 'about'),
            QCoreApplication.translate("mainwindow_ui_tr", 'Help'),
            self,
            statusTip=QCoreApplication.translate("mainwindow_ui_tr", 'Help'),
            triggered=self.persepolisHelp)
        helpMenu.addAction(self.helpAction)

        self.qmenu = MenuWidget(self)

        self.toolBar2.addWidget(self.qmenu)

        # labels
        self.queue_panel_show_button.setText(
            QCoreApplication.translate("mainwindow_ui_tr", "Hide options"))
        self.start_checkBox.setText(
            QCoreApplication.translate("mainwindow_ui_tr", "Start Time"))

        self.end_checkBox.setText(
            QCoreApplication.translate("mainwindow_ui_tr", "End Time"))

        self.reverse_checkBox.setText(
            QCoreApplication.translate("mainwindow_ui_tr",
                                       "Download bottom of\n the list first"))

        self.limit_checkBox.setText(
            QCoreApplication.translate("mainwindow_ui_tr", "Limit Speed"))
        self.limit_comboBox.setItemText(0, "KiB/s")
        self.limit_comboBox.setItemText(1, "MiB/s")
        self.limit_pushButton.setText(
            QCoreApplication.translate("mainwindow_ui_tr", "Apply"))

        self.after_checkBox.setText(
            QCoreApplication.translate("mainwindow_ui_tr", "After download"))
        self.after_comboBox.setItemText(
            0, QCoreApplication.translate("mainwindow_ui_tr", "Shut Down"))

        self.keep_awake_checkBox.setText(
            QCoreApplication.translate("mainwindow_ui_tr",
                                       "Keep system awake!"))
        self.keep_awake_checkBox.setToolTip(
            QCoreApplication.translate(
                "mainwindow_ui_tr",
                "<html><head/><body><p>This option is preventing system from going to sleep.\
            This is necessary if your power manager is suspending system automatically. </p></body></html>"
            ))

        self.after_pushButton.setText(
            QCoreApplication.translate("mainwindow_ui_tr", "Apply"))
コード例 #29
0
    def __init__(self, dwarf_args, flags=None):
        super(AppWindow, self).__init__(flags)

        self.dwarf_args = dwarf_args

        self.session_manager = SessionManager(self)
        self.session_manager.sessionCreated.connect(self.session_created)
        self.session_manager.sessionStopped.connect(self.session_stopped)
        self.session_manager.sessionClosed.connect(self.session_closed)

        self._tab_order = [
            'debug', 'modules', 'ranges', 'jvm-inspector', 'jvm-debugger'
        ]

        self._is_newer_dwarf = False
        self.q_settings = QSettings(utils.home_path() + "dwarf_window_pos.ini",
                                    QSettings.IniFormat)

        self.menu = self.menuBar()
        self.view_menu = None

        # dockwidgets
        self.watchpoints_dwidget = None
        self.breakpoint_dwiget = None
        self.bookmarks_dwiget = None
        self.registers_dock = None
        self.console_dock = None
        self.backtrace_dock = None
        self.threads_dock = None
        # panels
        self.asm_panel = None
        self.backtrace_panel = None
        self.bookmarks_panel = None
        self.console_panel = None
        self.context_panel = None
        self.debug_panel = None
        self.contexts_list_panel = None
        self.data_panel = None
        self.ftrace_panel = None
        self.breakpoints_panel = None
        self.objc_inspector_panel = None
        self.java_inspector_panel = None
        self.java_explorer_panel = None
        self.java_trace_panel = None
        self.modules_panel = None
        self.ranges_panel = None
        self.search_panel = None
        self.smali_panel = None
        self.watchpoints_panel = None

        self._ui_elems = []

        self.setWindowTitle(
            'Dwarf - A debugger for reverse engineers, crackers and security analyst'
        )

        # load external assets
        _app = QApplication.instance()

        # themes
        self.prefs = Prefs()
        utils.set_theme(self.prefs.get('dwarf_ui_theme', 'dark'), self.prefs)

        # load font
        if os.path.exists(utils.resource_path('assets/Anton.ttf')):
            QFontDatabase.addApplicationFont(
                utils.resource_path('assets/Anton.ttf'))
        else:
            QFontDatabase.addApplicationFont(':/assets/Anton.ttf')

        if os.path.exists(utils.resource_path('assets/OpenSans-Regular.ttf')):
            QFontDatabase.addApplicationFont(
                utils.resource_path('assets/OpenSans-Regular.ttf'))
        else:
            QFontDatabase.addApplicationFont(':/assets/OpenSans-Regular.ttf')

        if os.path.exists(utils.resource_path('assets/OpenSans-Bold.ttf')):
            QFontDatabase.addApplicationFont(
                utils.resource_path('assets/OpenSans-Bold.ttf'))
        else:
            QFontDatabase.addApplicationFont(':/assets/OpenSans-Bold.ttf')

        font = QFont("OpenSans", 9, QFont.Normal)
        # TODO: add settingsdlg
        font_size = self.prefs.get('dwarf_ui_font_size', 12)
        font.setPixelSize(font_size)
        _app.setFont(font)

        # mainwindow statusbar
        self.progressbar = QProgressBar()
        self.progressbar.setRange(0, 0)
        self.progressbar.setVisible(False)
        self.progressbar.setFixedHeight(15)
        self.progressbar.setFixedWidth(100)
        self.progressbar.setTextVisible(False)
        self.progressbar.setValue(30)
        self.statusbar = QStatusBar(self)
        self.statusbar.setAutoFillBackground(False)
        self.statusbar.addPermanentWidget(self.progressbar)
        self.statusbar.setObjectName("statusbar")
        self.setStatusBar(self.statusbar)

        self.main_tabs = QTabWidget(self)
        self.main_tabs.setMovable(False)
        self.main_tabs.setTabsClosable(True)
        self.main_tabs.setAutoFillBackground(True)
        self.main_tabs.tabCloseRequested.connect(self._on_close_tab)
        self.setCentralWidget(self.main_tabs)

        # pluginmanager
        self.plugin_manager = PluginManager(self)
        self.plugin_manager.reload_plugins()

        self.welcome_window = None
        if dwarf_args.any == '':
            self.welcome_window = WelcomeDialog(self)
            self.welcome_window.setModal(True)
            self.welcome_window.onIsNewerVersion.connect(
                self._enable_update_menu)
            self.welcome_window.onUpdateComplete.connect(
                self._on_dwarf_updated)
            self.welcome_window.setWindowTitle(
                'Welcome to Dwarf - A debugger for reverse engineers, crackers and security analyst'
            )
            self.welcome_window.onSessionSelected.connect(self._start_session)
            # wait for welcome screen
            self.hide()
            self.welcome_window.show()
        else:
            print('* Starting new Session')
            self._start_session(dwarf_args.target)
コード例 #30
0
ファイル: main.py プロジェクト: somebody11143/para
 def set_status(self, msg):
     status = QStatusBar()
     status.showMessage(msg)
     self.setStatusBar(status)