Esempio n. 1
0
    def monitorSizes(verbose=0):
        """ Return monitor sizes """
        _qd = QtWidgets.QDesktopWidget()
        if sys.platform == 'win32' and _qd is None:
            import ctypes
            user32 = ctypes.windll.user32
            wa = [[
                0, 0,
                user32.GetSystemMetrics(0),
                user32.GetSystemMetrics(1)
            ]]
        else:
            _applocalqt = QtWidgets.QApplication.instance()

            if _applocalqt is None:
                _applocalqt = QtWidgets.QApplication([])
                _qd = QtWidgets.QDesktopWidget()
            else:
                _qd = QtWidgets.QDesktopWidget()

            nmon = _qd.screenCount()
            wa = [_qd.screenGeometry(ii) for ii in range(nmon)]
            wa = [[w.x(), w.y(), w.width(), w.height()] for w in wa]

            if verbose:
                for ii, w in enumerate(wa):
                    print('monitor %d: %s' % (ii, str(w)))
        return wa
Esempio n. 2
0
    def place_window(self, window, category):
        screen = QtWidgets.QDesktopWidget().screenNumber(
            self.qapp.windows['main'])
        desktop_rect = QtWidgets.QDesktopWidget().availableGeometry(screen)

        window_rect = window.frameGeometry()
        prior_panel = self.selected(category, -2)

        if not prior_panel is None:
            prior_rect = prior_panel.frameGeometry()
            topleft = prior_panel.mapToGlobal(QtCore.QPoint(0, 0))
            prior_rect.moveTopLeft(
                QtCore.QPoint(topleft.x() + 10,
                              topleft.y() + 10))
            center = prior_rect.center()
        else:
            center = desktop_rect.center()

        window_rect.moveCenter(center)
        position = window_rect.topLeft()

        visible = False

        for screen in range(QtWidgets.QDesktopWidget().screenCount()):
            if QtWidgets.QDesktopWidget().availableGeometry(screen).contains(
                    window_rect):
                visible = True

        if not visible:
            position = desktop_rect.topLeft()

        return position
Esempio n. 3
0
    def setIntialPosition(self):
        screen = QtWidgets.QDesktopWidget().screenGeometry(self)

        xPos = screen.left() + screen.width() / 4
        yPos = screen.top() + screen.height() / 3

        self.setGeometry(xPos, yPos, 900, 500)
Esempio n. 4
0
def center_window(window_ptr):
    """Center a window on whatever screen it appears.
            window_ptr - a pointer to a Qt window, whether an application or a
                QDialog.
        returns nothing."""
    geometry = window_ptr.frameGeometry()
    center = QtWidgets.QDesktopWidget().availableGeometry().center()
    geometry.moveCenter(center)
    window_ptr.move(geometry.topLeft())
Esempio n. 5
0
    def __init__(self, application):
        super().__init__()
        self.application = application
        self.manager = ManagerWindow("Dataset Manager", self)
        if ICON_PATH.exists():
            #pix_map_icon = QtGui.QPixmap(str(ICON_PATH), format="PNG")
            #self.setWindowIcon(QtGui.QIcon(pix_map_icon))
            #  this fixes a warning on OSX, but doesn't work at all on windows
            self.setWindowIcon(QtGui.QIcon(str(ICON_PATH)))
        else:
            logging.warning(f'cannot find icon at {ICON_PATH}')
        self.resize(QtWidgets.QDesktopWidget().availableGeometry(self).size() *
                    0.5)  # change this for video capture
        self.model: Model = Model()
        self.processor_action = {
            QtWidgets.QAction(f"{key}", self): processor()
            for key, processor in sorted(
                processing.get_processor_classes().items())
        }

        self.track_menu = None
        self.groups: DefaultDict[int, Group] = defaultdict(Group)
        self.setWindowTitle('TimeView')

        self.scrollArea = ScrollArea(self)
        self.scrollAreaWidgetContents = \
            ScrollAreaWidgetContents(self.scrollArea)
        self.setCentralWidget(self.scrollArea)
        self.scrollArea.setWidget(self.scrollAreaWidgetContents)

        self.synchronized = True
        self.cursor_readout = False

        self.frames: List[Frame] = []
        self.selected_frame: Optional[Frame] = None
        self.moving_frame: Optional[Frame] = None
        self.from_index: Optional[int] = None
        self.to_index: Optional[int] = None

        self.axis_width = 10
        # for storing
        self.column_width_hint: List[int] = []
        self.all_column_widths: List[Dict[ViewTable, int]] = []

        self.reference_plot: Optional[pg.ViewBox] = None
        self.min_plot_width = self.width()

        self.help_window = self.createHelpWindow()
        self.createMenus()

        self.statusBar()
        self.status('Ready')
        self.guiAddPanel()
        self.evalTrackMenu()
Esempio n. 6
0
def main():
    KEITHLEY_ADDRESS = CONF.get('Ktransfer2600', 'KEITHLEY_ADDRESS')
    keithley = Keithley2600(KEITHLEY_ADDRESS)
    application = QtWidgets.QApplication(sys.argv)
    keithleyGUI = KeithleyGuiApp(keithley)
    desktop = QtWidgets.QDesktopWidget().availableGeometry()
    width = (desktop.width() - keithleyGUI.width()) / 2
    height = (desktop.height() - keithleyGUI.height()) / 2
    keithleyGUI.show()
    keithleyGUI.move(width, height)
    sys.exit(application.exec_())
Esempio n. 7
0
    def __init__(self, logWindow):
        """ Create an ErrorDialog object

          @param object logWindow: reference to LogWindow object that this
                                   popup belongs to
        """
        super().__init__()
        self.logWindow = logWindow
        self.setWindowFlags(QtCore.Qt.Window)
        # self.setWindowModality(QtCore.Qt.NonModal)
        self.setWindowTitle('Qudi Error')
        wid = QtWidgets.QDesktopWidget()
        screenWidth = wid.screen(wid.primaryScreen()).width()
        screenHeight = wid.screen(wid.primaryScreen()).height()
        self.setGeometry((screenWidth - 500) / 2, (screenHeight - 100) / 2,
                         500, 100)
        self.layout = QtWidgets.QVBoxLayout()
        self.layout.setContentsMargins(3, 3, 3, 3)
        self.setLayout(self.layout)
        self.messages = []

        self.msgLabel = QtWidgets.QLabel()
        # self.msgLabel.setWordWrap(False)
        # self.msgLabel.setMaximumWidth(800)
        self.msgLabel.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                    QtWidgets.QSizePolicy.Expanding)
        # self.msgLabel.setFrameStyle(QtGui.QFrame.Box)
        #self.msgLabel.setStyleSheet('QLabel { font-weight: bold }')
        self.layout.addWidget(self.msgLabel)
        self.msgLabel.setMaximumWidth(800)
        self.msgLabel.setMinimumWidth(500)
        self.msgLabel.setWordWrap(True)
        self.layout.addStretch()
        self.disableCheck = QtWidgets.QCheckBox('Disable error message popups')
        self.layout.addWidget(self.disableCheck)

        self.btnLayout = QtWidgets.QHBoxLayout()
        self.btnLayout.addStretch()
        self.okBtn = QtWidgets.QPushButton('OK')
        self.btnLayout.addWidget(self.okBtn)
        self.nextBtn = QtWidgets.QPushButton('Show next error')
        self.btnLayout.addWidget(self.nextBtn)
        self.nextBtn.hide()
        self.logBtn = QtWidgets.QPushButton('Show Log...')
        self.btnLayout.addWidget(self.logBtn)
        self.btnLayoutWidget = QtWidgets.QWidget()
        self.layout.addWidget(self.btnLayoutWidget)
        self.btnLayoutWidget.setLayout(self.btnLayout)
        self.btnLayout.addStretch()

        self.okBtn.clicked.connect(self.okClicked)
        self.nextBtn.clicked.connect(self.nextMessage)
        self.logBtn.clicked.connect(self.logClicked)
Esempio n. 8
0
 def __init__(self, text, title=None):
     super().__init__()
     self.vlay = QtWidgets.QVBoxLayout()
     self.setLayout(self.vlay)
     if title is not None:
         self.label = QtWidgets.QLabel()
         self.label.setText(title)
         self.label.setStyleSheet("font-weight: bold; font-size: 20px")
         self.vlay.addWidget(self.label)
     self.text = QtWidgets.QTextEdit()
     self.vlay.addWidget(self.text)
     self.text.setText(text)
     self.text.setReadOnly(True)
     # center window on screen
     qtRectangle = self.frameGeometry()
     centerPoint = QtWidgets.QDesktopWidget().availableGeometry().center()
     qtRectangle.moveCenter(centerPoint)
     self.setGeometry(qtRectangle.left(), qtRectangle.top(), 650, 300)
Esempio n. 9
0
    def __init__(self, dev=False, preload=False):
        super().__init__()
        self.title = 'CIDAN'
        scale = (self.logicalDpiX() / 96.0 - 1) / 2 + 1
        sizeObject = QtWidgets.QDesktopWidget().screenGeometry(-1)

        self.width = 1200 * scale
        self.height = 1066.6 * scale
        if self.height > sizeObject.height() * .90:
            self.height = sizeObject.height() * .90
        if self.width > sizeObject.width() * .95:
            self.width = sizeObject.width() * .95
        self.setWindowTitle(self.title)
        self.setMinimumSize(self.width, self.height)
        self.main_menu = self.menuBar()
        self.table_widget = MainWidget(self, dev=dev, preload=preload)
        self.setCentralWidget(self.table_widget)
        # self.setStyleSheet(qdarkstyle.load_stylesheet())
        style = str("""
            QWidget {font-size: %dpx;}
            QTabWidget {font-size: %dpx; padding:1px; margin:%dpx;}
            QTabBar::tab {
                background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                           stop: 0 #E1E1E1, stop: 0.4 #DDDDDD,
                                          stop: 0.5 #D8D8D8, stop: 1.0 #D3D3D3);
                /*border: 2px solid #C4C4C3;*/
                /*border-bottom-color: #C2C7CB; !* same as the pane color *!*/
                
                min-width: 8ex;
                padding:%dpx;
                border:%dpx;
            }
            
            QComboBox::item:checked {
              font-weight: bold;
              height: %dpx;
            }
            """ % (25 * scale, 25 * scale, 2 * scale, 1.25 * scale,
                   1.25 * scale, 25 * scale))
        self.setStyleSheet(qdarkstyle.load_stylesheet() + style)

        # extractAction.triggered.connect()

        self.show()
Esempio n. 10
0
    def __init__(self, image, input_path):
        QtWidgets.QMainWindow.__init__(self)
        self.image = image
        self.input_path = input_path
        self.image_view = AppImageView(parent=self)
        self.image_view.main_widget = self
        self.statusBar().showMessage('')

        padding = self.frameGeometry().size() - self.geometry().size()
        self.resize(image.size() + padding)

        central = QtWidgets.QWidget(self)
        self.vbox = QtWidgets.QVBoxLayout(central)
        self.vbox.setContentsMargins(0, 0, 0, 0)
        self.setCentralWidget(central)
        self.layout().setContentsMargins(0, 0, 0, 0)

        Expanding = QtWidgets.QSizePolicy.Expanding
        height_for_width = self.image_view.sizePolicy().hasHeightForWidth()
        policy = QtWidgets.QSizePolicy(Expanding, Expanding)
        policy.setHorizontalStretch(1)
        policy.setVerticalStretch(1)
        policy.setHeightForWidth(height_for_width)
        self.image_view.setSizePolicy(policy)

        self.image_view.setMouseTracking(True)
        self.image_view.setFocusPolicy(Qt.NoFocus)
        self.image_view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.image_view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.vbox.addWidget(self.image_view)

        screen = QtWidgets.QDesktopWidget().screenGeometry(self)
        size = self.geometry()
        self.move(
            (screen.width() - size.width()) // 4, (screen.height() - size.height()) // 4
        )

        self.update_view()
        self.image_view.reset()
Esempio n. 11
0
    def calculate_grab_region(self, psize=-1):
        '''
        this method will determine the ideal 'GrabRegion' on the screen
        where the MainWindow currently resides given psize.
        If psize=-1, the biggest possible psize given the screen is used.
        return value is a QRect.
        '''

        screenRect = QtWidgets.QDesktopWidget().availableGeometry(self)

        if psize == -1:
            width = height = 0
            for video_size, value in self.video_sizes.items():
                if value[0][1] <= screenRect.height(
                ) and value[0][0] <= screenRect.width():
                    width = self.video_sizes[video_size][0][0]
                    height = self.video_sizes[video_size][0][1]

            x = int(((screenRect.width() - width) / 2)) + screenRect.x()
            y = int(((screenRect.height() - height) / 2)) + screenRect.y()

        elif psize in self.video_sizes:
            width = self.video_sizes[psize][0][0]
            height = self.video_sizes[psize][0][1]
            if width <= screenRect.width() and height <= screenRect.height():
                x = int(((screenRect.width() - width) / 2) + screenRect.x())
                y = int(((screenRect.height() - height) / 2) + screenRect.y())
            else:
                width = height = 0
                x = int(((screenRect.width() - width) / 2) + screenRect.x())
                y = int(((screenRect.height() - height) / 2) + screenRect.y())
        else:
            width = height = 0
            x = int(((screenRect.width() - width) / 2) + screenRect.x())
            y = int(((screenRect.height() - height) / 2) + screenRect.y())
        retval = QtCore.QRect(x, y, width, height)
        return retval
Esempio n. 12
0
 def showEvent(self, event):
     self.resize(self.width() * 1.25, self.height())
     qr = self.frameGeometry()
     cp = QtWidgets.QDesktopWidget().availableGeometry().center()
     qr.moveCenter(cp)
     self.move(qr.topLeft())
Esempio n. 13
0
 def center(self):
     qr = self.frameGeometry()
     cp = QtWidgets.QDesktopWidget().availableGeometry().center()
     qr.moveCenter(cp)
     self.move(qr.topLeft())
Esempio n. 14
0
    def settings(self):
        '''
        this method handles the settings on the screenCast (context menu)
        '''
        mainWindow = self.main_window
        screenAG = QtWidgets.QDesktopWidget().availableGeometry(mainWindow)
        screenG = QtWidgets.QDesktopWidget().screenGeometry(mainWindow)

        menu = QtWidgets.QMenu(parent=self)

        audi_menu = self._generate_audio_input_menu()
        menu.addMenu(audi_menu)

        menu.addSeparator()
        main_window_size = self.get_grab_region()
        biggest_main_window_size = self.calculate_grab_region()
        itemset = sorted(
            set(list(self.video_sizes) + [main_window_size.height()]))
        for item in itemset:
            if item in self.video_sizes:
                text = f"{item}p ({self.video_sizes[item][0][0]}x{self.video_sizes[item][0][1]}) {self.video_sizes[item][1]}"
                icon = None
                if main_window_size.height() == self.video_sizes[item][0][1]:
                    icon = qta.icon('mdi.check-bold', color='orange')
                enabled = self._is_valid_width(self.video_sizes[item][0][0],
                                               self.video_sizes[item][0][1],
                                               screenAG)
            else:
                text = f"({main_window_size.width()}x{main_window_size.height()}) → {biggest_main_window_size.height()}p"
                icon = qta.icon('mdi.check-bold', color='orange')
                enabled = True
            action = menu.addAction(text)
            if icon is not None:
                action.setIcon(icon)
            if item == 240 or ((item == main_window_size.height())
                               and biggest_main_window_size.height() == 240):
                action.triggered.connect(lambda: self.resize(240))
            elif item == 360 or ((item == main_window_size.height())
                                 and biggest_main_window_size.height() == 360):
                action.triggered.connect(lambda: self.resize(360))
            elif item == 480 or ((item == main_window_size.height())
                                 and biggest_main_window_size.height() == 480):
                action.triggered.connect(lambda: self.resize(480))
            elif item == 720 or ((item == main_window_size.height())
                                 and biggest_main_window_size.height() == 720):
                action.triggered.connect(lambda: self.resize(720))
            elif item == 1080 or ((item == main_window_size.height()) and
                                  biggest_main_window_size.height() == 1080):
                action.triggered.connect(lambda: self.resize(1080))
            elif item == 1440 or ((item == main_window_size.height()) and
                                  biggest_main_window_size.height() == 1440):
                action.triggered.connect(lambda: self.resize(1440))
            elif item == 2160 or ((item == main_window_size.height()) and
                                  biggest_main_window_size.height() == 2160):
                action.triggered.connect(lambda: self.resize(2160))
            action.setEnabled(enabled)

        menu.addSeparator()

        action = menu.addAction(qta.icon('mdi.monitor', color='orange'),
                                f"{screenG.width()}x{screenG.height()}")
        action = menu.addAction(
            qta.icon('mdi.monitor-screenshot', color='orange'),
            f"{screenAG.width()}x{screenAG.height()}")

        cursorPoint = QtGui.QCursor.pos()
        menuSize = menu.sizeHint()
        menuPoint = QtCore.QPoint(cursorPoint.x() - menuSize.width(),
                                  cursorPoint.y() - menuSize.height())
        menu.exec_(menuPoint)
    def __init__(self, mainEngine, dataList=None, *args):
        """Constructor"""
        QtWidgets.QDialog.__init__(self, *args)

        self.mainEngine = mainEngine

        if mainEngine is None:
            if dataList is None:
                dataList = []
            else:
                dataList = dataList
        else:
            dataList = self.loadDataListFromDB()

        # 表头
        self.dataHeader = [
            text.GATEWAY_NAME, text.CONNECT_STATUS, text.USER_ID,
            text.BROKER_ID, text.GATEWAY_MODULE, text.TD_ADDRESS,
            text.MD_ADDRESS, text.GATEWAY_DISPLAY_NAME
        ]
        # 定位
        self.setGeometry(0, 0, 1120, 600)
        self.move(QtWidgets.QDesktopWidget().availableGeometry().center() -
                  self.frameGeometry().center())
        # 窗口标题
        self.setWindowTitle(text.CONNECTION_MANAGER)
        # 数据
        self.tableModel = ConnectionTableModel(self, dataList, self.dataHeader)
        self.tableView = QtWidgets.QTableView()
        self.tableView.setModel(self.tableModel)
        # 表格不允许选中
        self.tableView.setSelectionMode(
            QtWidgets.QAbstractItemView.NoSelection)
        self.tableView.setSelectionBehavior(
            QtWidgets.QAbstractItemView.SelectRows)
        self.tableView.setFocusPolicy(Qt.NoFocus)
        # 绑定事件
        self.tableView.clicked.connect(self.showSelection)
        self.tableView.clicked.connect(self.selectRow)
        self.tableView.doubleClicked.connect(self.rowDoubleClicked)
        # 控制排序
        self.tableView.setSortingEnabled(False)
        # 交替颜色
        self.tableView.setAlternatingRowColors(True)

        # 表头自适应等宽度
        # tableViewHeader = self.tableView.horizontalHeader()
        # for i in range(0, len(self.dataHeader)):
        #     tableViewHeader.setSectionResizeMode(i, QtWidgets.QHeaderView.Stretch)

        # 逐列设置宽度
        self.tableView.setColumnWidth(0, 140)
        self.tableView.setColumnWidth(1, 70)
        self.tableView.setColumnWidth(2, 90)
        self.tableView.setColumnWidth(3, 70)
        self.tableView.setColumnWidth(4, 170)
        self.tableView.setColumnWidth(5, 190)
        self.tableView.setColumnWidth(6, 190)
        self.tableView.setColumnWidth(7, 150)

        # 布局
        layout = QtWidgets.QGridLayout(self)

        # 表格布局
        tableVBoxLayout = QtWidgets.QVBoxLayout(self)
        tableVBoxLayout.addWidget(self.tableView)

        # 创建添加按钮
        self.selectAllButton = QtWidgets.QPushButton(text.SELECT_ALL)
        self.selectReverseButton = QtWidgets.QPushButton(text.SELECT_REVERSE)
        self.deleteSelectedButton = QtWidgets.QPushButton(text.DELETE_SELECTED)
        self.addButton = QtWidgets.QPushButton(text.ADD)
        self.connectSelectedButton = QtWidgets.QPushButton(
            text.CONNECT_SELECTED)
        self.connectAllButton = QtWidgets.QPushButton(text.CONNECT_ALL)
        self.disconnectSelectedButton = QtWidgets.QPushButton(
            text.DISCONNECT_SELECTED)
        self.disconnectAllButton = QtWidgets.QPushButton(text.DISCONNECT_ALL)

        # 按钮布局
        buttonGridLayout = QtWidgets.QGridLayout()
        buttonGridLayout.addWidget(self.selectAllButton, 0, 1)
        buttonGridLayout.addWidget(self.selectReverseButton, 0, 2)
        buttonGridLayout.addWidget(self.deleteSelectedButton, 0, 3)
        buttonGridLayout.addWidget(self.addButton, 0, 4)
        buttonGridLayout.addWidget(self.connectSelectedButton, 0, 5)
        buttonGridLayout.addWidget(self.connectAllButton, 0, 6)
        buttonGridLayout.addWidget(self.disconnectSelectedButton, 0, 7)
        buttonGridLayout.addWidget(self.disconnectAllButton, 0, 8)

        # 按钮绑定事件
        self.selectAllButton.clicked.connect(self.selectAll)
        self.selectReverseButton.clicked.connect(self.selectReverse)
        self.deleteSelectedButton.clicked.connect(self.deleteSelected)
        self.addButton.clicked.connect(self.add)
        self.connectSelectedButton.clicked.connect(self.connectSelected)
        self.connectAllButton.clicked.connect(self.connectAll)
        self.disconnectSelectedButton.clicked.connect(self.disconnectSelected)
        self.disconnectAllButton.clicked.connect(self.disconnectAll)

        # 整合布局
        layout.addLayout(tableVBoxLayout, 0, 0)
        layout.addLayout(buttonGridLayout, 1, 0)
        self.setLayout(layout)