def _initUi(self, header, params):
        self.setWindowTitle('重构参数')
 
        # 控件
        self._table = DyTableWidget(parent=None, readOnly=False, index=False, floatCut=True, autoScroll=False)
        self._table.setColNames(header)
        self._table.fastAppendRows(params)

        self._newWindowCheckBox = QCheckBox('新窗口')
        self._newWindowCheckBox.setChecked(True)

        cancelPushButton = QPushButton('Cancel')
        okPushButton = QPushButton('OK')
        cancelPushButton.clicked.connect(self._cancel)
        okPushButton.clicked.connect(self._ok)

        # 布局
        grid = QGridLayout()
        grid.setSpacing(10)
 
        grid.addWidget(self._newWindowCheckBox, 0, 0)
        grid.addWidget(self._table, 1, 0, 1, 2)
 
        grid.addWidget(okPushButton, 2, 1)
        grid.addWidget(cancelPushButton, 2, 0)
 
 
        self.setLayout(grid)
        self.resize(QApplication.desktop().size().width()//3, QApplication.desktop().size().height()//4*3)
    def _initUi(self):
        self.setWindowTitle('要调试的股票')
 
        # 控件
        descriptionLabel = QLabel('要调试的股票代码')
        self._codesTextEdit = QTextEdit()
        self._codesTextEdit.setPlainText(self._read())

        cancelPushButton = QPushButton('Cancel')
        okPushButton = QPushButton('OK')
        cancelPushButton.clicked.connect(self._cancel)
        okPushButton.clicked.connect(self._ok)

        # 布局
        grid = QGridLayout()
        grid.setSpacing(10)
 
        grid.addWidget(descriptionLabel, 0, 0)

        grid.addWidget(self._codesTextEdit, 1, 0, 20, 10)
 
        grid.addWidget(okPushButton, 1, 11)
        grid.addWidget(cancelPushButton, 2, 11)
 
 
        self.setLayout(grid)
        self.resize(QApplication.desktop().size().width()//3, QApplication.desktop().size().height()//2)
    def mergePeriod(self, name):
        # get all rows by period sequence
        allRows = []
        autoColName = None

        periods = sorted(self._strategyPeriodWidgets)
        for period in periods:
            periodWidget = self._strategyPeriodWidgets[period]

            allRows.extend(periodWidget.getAll())
            autoColName = periodWidget.getAutoColName()

        window = DyStockSelectStrategyRegressionResultWidget(self._eventEngine, self._strategyCls, self._paramWidget)
        tabName = '{0},{1}'.format(periods[0][:11], periods[-1][-11:])

        widget = DyStockSelectStrategyRegressionPeriodResultWidget(self._eventEngine, tabName, self._strategyCls, self._paramWidget)

        # set column names with period widget's column names
        widget.rawSetColNames(self._getColNames())
            
        # append to new statistic table widget
        widget.rawAppend(allRows, autoColName)

        window.addTab(tabName, widget)

        # show window
        window.setWindowTitle(self._strategyCls.chName)
        window.setWindowFlags(Qt.Window)
        window.resize(QApplication.desktop().size().width()//2, QApplication.desktop().size().height()//2)
        window.show()

        window.move((QApplication.desktop().size().width() - widget.width())//2, (QApplication.desktop().size().height() - widget.height())//2)

        self._windows.append(window)
    def _initUi(self):
        self.setWindowTitle('生成策略准备数据')
 
        # 控件
        dateLable = QLabel('日期')
        self._dateLineEdit = QLineEdit(datetime.now().strftime("%Y-%m-%d"))

        cancelPushButton = QPushButton('Cancel')
        okPushButton = QPushButton('OK')
        cancelPushButton.clicked.connect(self._cancel)
        okPushButton.clicked.connect(self._ok)

        self._strategies = {}
        self._strategyWidget = DyTreeWidget(self._getFields())

        # 布局
        grid = QGridLayout()
        grid.setSpacing(10)
 
        grid.addWidget(self._strategyWidget, 0, 0, 20, 10)
 
        grid.addWidget(dateLable, 0, 10, 1, 2)
        grid.addWidget(self._dateLineEdit, 1, 10, 1, 2)

        grid.addWidget(okPushButton, 2, 11)
        grid.addWidget(cancelPushButton, 2, 10)
 
        self.setLayout(grid)
        self.resize(QApplication.desktop().size().width()//3, QApplication.desktop().size().height()//2)
    def _initUi(self, colNames):
        self.setWindowTitle('列运算')
 
        # 控件
        table = DyTableWidget(parent=None, readOnly=True, index=False, floatCut=True, autoScroll=False)
        table.setColNames(['列名', '表达式'])
        rows = [[name, 'x[{0}]'.format(i)] for i, name in enumerate(colNames)]
        table.fastAppendRows(rows)

        descriptionLabel = QLabel('列运算表达式(Pandas语法)')
        self._expressionTextEdit = QTextEdit()

        cancelPushButton = QPushButton('Cancel')
        okPushButton = QPushButton('OK')
        cancelPushButton.clicked.connect(self._cancel)
        okPushButton.clicked.connect(self._ok)

        # 布局
        grid = QGridLayout()
        grid.setSpacing(10)
 
        grid.addWidget(table, 0, 0, 22, 1)

        grid.addWidget(descriptionLabel, 0, 1)

        grid.addWidget(self._expressionTextEdit, 1, 1, 20, 20)
 
        grid.addWidget(okPushButton, 0, 21)
        grid.addWidget(cancelPushButton, 1, 21)
 
 
        self.setLayout(grid)
        self.resize(QApplication.desktop().size().width()//2, QApplication.desktop().size().height()//4*3)
Example #6
0
File: main.py Project: hugsy/cemu
 def centerMainWindow(self):
     frameGm = self.frameGeometry()
     screen = QApplication.desktop().screenNumber(QApplication.desktop().cursor().pos())
     centerPoint = QApplication.desktop().screenGeometry(screen).center()
     frameGm.moveCenter(centerPoint)
     self.move(frameGm.topLeft())
     return
Example #7
0
 def center(self):
     """Center the Window on Current Screen,with MultiMonitor support."""
     window_geometry = self.frameGeometry()
     mousepointer_position = QApplication.desktop().cursor().pos()
     screen = QApplication.desktop().screenNumber(mousepointer_position)
     centerPoint = QApplication.desktop().screenGeometry(screen).center()
     window_geometry.moveCenter(centerPoint)
     self.move(window_geometry.topLeft())
Example #8
0
    def _initUi(self, title):
        self.setWindowTitle(title)
        self.setWindowFlags(Qt.Window)
        self.resize(QApplication.desktop().size().width()//2, QApplication.desktop().size().height()//2)

        self.show()

        self.move((QApplication.desktop().size().width() - self.width())//2, (QApplication.desktop().size().height() - self.height())//2)
 def center(self):
     """Center Window on the Current Screen,with Multi-Monitor support."""
     self.showNormal()
     self.resize(QDesktopWidget().screenGeometry().width() // 1.5,
                 QDesktopWidget().screenGeometry().height() // 1.5)
     window_geometry = self.frameGeometry()
     mousepointer_position = QApplication.desktop().cursor().pos()
     screen = QApplication.desktop().screenNumber(mousepointer_position)
     centerPoint = QApplication.desktop().screenGeometry(screen).center()
     window_geometry.moveCenter(centerPoint)
     return bool(not self.move(window_geometry.topLeft()))
Example #10
0
    def get_half_of_resolution(self):
        """
        Get half of the screen resolution.

        >>> isinstance(MainWindow().get_half_of_resolution(), tuple)
        True
        """
        mouse_pointer_position = QApplication.desktop().cursor().pos()
        screen = QApplication.desktop().screenNumber(mouse_pointer_position)
        widt = QApplication.desktop().screenGeometry(screen).size().width() / 2
        hei = QApplication.desktop().screenGeometry(screen).size().height() / 2
        return (int(widt), int(hei))
    def __init__(self, parent=None):
        self.parent = parent
        self.parent.statusbar.showMessage("AOI Aggregation in process...")
        QWidget.__init__(self,parent)
        
        self.ui = gui.aoiUi()
        self.ui.setupUi(self)
       
        self.batch_files = filedialog.askopenfilenames(parent=root, title='Choose the file(s) you want to AOI aggregate')
        
        if len(self.batch_files) < 1:
            msgBox = QMessageBox()
            msgBox.setGeometry(400, 400, 400, 200)
            msgBox.setText("Please select one or more datasets to aggregate")
            msgBox.move(QApplication.desktop().screen().rect().center()- self.rect().center())
            msgBox.exec_() 
            
            self.close()
            return        
        
        self.columns = []
        
        self.parent.statusbar.showMessage("Checking column validity...")

        #extract columns
        for item in self.batch_files:
            self.columns.append(helpers.extract_columns(item))
 
        #check to see if all columns are equal in all the datasets
        if not helpers.are_columns_same(self.columns):
            if not helpers.columns_not_equal_message(self):
                self.close()
                return
        
        message = ""
        if self.columns != []:
            if 'GazeAOI' not in self.columns[0]:
                message += "'GAZE AOI' "
            if 'FixationAOI' not in self.columns[0]:
                message += "'FIXATION AOI'"
            
        if message != "":
            message += ": Field(s) missing from dataset - try again with appropriate data."
            reply = QMessageBox.question(self, 'Message',message, QMessageBox.Ok, QMessageBox.Ok)
            if reply == QMessageBox.Ok:
                self.parent.statusbar.showMessage("Welcome back!")
                self.close()
                return

        self.parent.ui.logOutput.append("AOI AGGREGATED:")
        print("AOI AGGREGATED:")
        
        self.AOI_aggregate('GazeAOI')
        self.AOI_aggregate('FixationAOI')
       
        #after job has been completed!
        helpers.job_complete_message(self)     
        
        self.parent.statusbar.showMessage("Welcome back!")
        self.close()
Example #12
0
 def _makeBackground(self, image):
     desktopSize = QApplication.desktop().screenGeometry(self).size()
     if desktopSize.width() < image.width() or desktopSize.height() < image.height():
         self._background_image = image.scaled(desktopSize, Qt.KeepAspectRatio, Qt.SmoothTransformation)
     else:
         self._background_image = image
     self.resize(self._background_image.size())
Example #13
0
def graph_csv(df, title, ion):    
    fig, ax = plt.subplots(1, 1)
    
    plt.grid()
    if ion:
        plt.ion()
    else:
        plt.ioff()

    app = QApplication(sys.argv)
    screen_rect = app.desktop().screenGeometry()
    width, height = screen_rect.width(), screen_rect.height()

    w = MyWidget(fig, ax, df, title)
    w.show()
    #window size
    top = w.frameGeometry().top()
    right = w.frameGeometry().right()
    # screen size
    #width = 800
    #height = 600
    mngr = plt.get_current_fig_manager()
    # to put it into the upper left corner for example:
    x1 = right + 20
    y1 = top + 31
    mngr.window.setGeometry(x1,y1,width-x1-70,height-y1-40)

    plt.show()
    sys.exit(app.exec_())
Example #14
0
    def __init__(self,func):
        super().__init__()
        # 窗口居于所有窗口的顶端 
        self.setWindowFlags(Qt.FramelessWindowHint)
        # 窗口居于所有窗口的顶端 
        # self.setWindowFlags(Qt.WindowOverridesSystemGestures)
        # 窗口居于所有窗口的顶端  针对部分X11
        # self.setWindowFlags(Qt.X11BypassWindowManagerHint)
        self.resize(600,450)

        self.title = QLabel(self);
        self.title.setGeometry(0,0,600,40)
        self.title.setStyleSheet("QLabel{ background:#252C34 }")
        self.setStyleSheet("QWidget{ background:#fff }")
        closebtn = QPushButton(self.title)
        closebtn.setGeometry(550, 0, 44, 34)
        # btn.setCursor(QCursor(Qt.PointingHandCursor))
        closebtn.setStyleSheet(  
            "QPushButton{ background:#252C34;border-image:url(image/newimg/ic_common_title_bar_back_2.png) } QPushButton:hover{ border-image:url(image/newimg/ic_common_title_bar_back.png) } ")
        closebtn.clicked.connect(self.close)

        wh = QApplication.desktop().screenGeometry()
        screen_w , screen_h = wh.width() ,wh.height()
        self.move(int((screen_w-600)/2),int((screen_h-450)/2))
        if func == 1:
            self.setting()
        elif func == 2:
            self.other()
        self.show()
Example #15
0
    def initUI(self):
        """ Init user interface. """
        # use QVBoxLayout to store two layouts vertically
        self.vl = QVBoxLayout()

        # widget for scrollArea
        self.topWidget = QWidget()
        self.grid = QGridLayout()
        self.topWidget.setLayout(self.grid)
        self.vl.addWidget(self.topWidget)

        # layout for filter
        self.filter = QHBoxLayout()
        # draw filter widgets
        self.drawFilter()
        spacer = QSpacerItem(10, 0, vPolicy=QSizePolicy.MinimumExpanding)
        self.vl.addItem(spacer)
        self.vl.addLayout(self.filter)

        self.setLayout(self.vl)
        self.rows = []

        self.taskArea = QScrollArea(self)
        self.taskArea.setWidget(self.topWidget)
        self.taskArea.setWidgetResizable(True)
        self.taskArea.resize(500, 350)
        self.resize(500, 395)
        self.setMinimumSize(460, 90)
        self.filterApply()
        self.show()
        self.move(QApplication.desktop().screen().rect().center() -
                  self.rect().center())
        self.setWindowTitle(conf.lang.EDIT_TITLE)
        iconEdit = Icon(byte=icons.edit).convertToIcon().getIcon()
        self.setWindowIcon(iconEdit)
Example #16
0
 def __init__(self):
     self.debug = 1
     self.app = QApplication([])
     self.desktop = QApplication.desktop()
     self.web = QWebView()
     self.icon = QIcon(ICON)
     QWebSettings.setIconDatabasePath(DATA_DIR)
Example #17
0
File: pysb.py Project: klasbj/pysb
def main():
    app = QApplication(sys.argv)

    io = InputHandler()

    # Set up signal handler to manage Ctrl+c
    signal.signal(signal.SIGINT, lambda *_: QApplication.quit())
    global timer
    timer = QTimer()
    timer.start(500)
    timer.timeout.connect(lambda: None) # let python run every 500ms

    desktop = app.desktop()
    sgeom = desktop.screenGeometry()

    global bars
    bars.append(dict())
    bars[0][Dock.top] = Bar(sgeom.left(), sgeom.top(), sgeom.width(), BAR_HEIGHT, flags=Qt.Widget | Qt.BypassWindowManagerHint)
    bars[0][Dock.bottom] = Bar(sgeom.left(), sgeom.bottom()-BAR_HEIGHT+1, sgeom.width(), BAR_HEIGHT, flags=Qt.Widget | Qt.BypassWindowManagerHint)

    print(bars, file=sys.stderr)

    for bar in bars[0].values():
        bar.show()
        #bar.lower()

    io.line.connect(handle_input)

    sys.exit(app.exec_())
    def _initUi(self, name, baseDate):
        self.setWindowTitle('行业对比[{0}]-基准日期[{1}]'.format(name, baseDate))
 
        # 控件
        forwardNTDaysLabel = QLabel('向前N日涨幅(%)')
        self._forwardNTDaysLineEdit = QLineEdit('30')

        self._industry2CheckBox = QCheckBox('行业二级分级')
        #self._industry2CheckBox.setChecked(True)

        self._industry3CheckBox = QCheckBox('行业三级分级')
        self._industry3CheckBox.setChecked(True)

        cancelPushButton = QPushButton('Cancel')
        okPushButton = QPushButton('OK')
        cancelPushButton.clicked.connect(self._cancel)
        okPushButton.clicked.connect(self._ok)

        # 布局
        grid = QGridLayout()
        grid.setSpacing(10)
 
        grid.addWidget(forwardNTDaysLabel, 0, 0)
        grid.addWidget(self._forwardNTDaysLineEdit, 0, 1)

        grid.addWidget(self._industry2CheckBox, 1, 0)
        grid.addWidget(self._industry3CheckBox, 1, 1)

        grid.addWidget(okPushButton, 2, 1)
        grid.addWidget(cancelPushButton, 2, 0)
 
        self.setLayout(grid)

        self.setMinimumWidth(QApplication.desktop().size().width()//5)
Example #19
0
 def setup_Ui(self, win):
     win.setWindowIcon(QIcon("./imotion/resource/image/imotion.png"))
     win.setWindowTitle("%s - %s" % (APPNAME, TRUNK))
     win.resize(1000, 600)
     desktop = QApplication.desktop()
     win.move((desktop.width() - win.width()) / 2,
              (desktop.height() - win.height()) / 2)
     win.layout = QGridLayout()
     win.setLayout(win.layout)
     win.tabwidget = ChatTabs()
     win.page1 = ChatArea()
     win.page1.setReadOnly(True)
     win.page1.setWordWrapMode(QTextOption.NoWrap)
     # for debugging
     # win.page1.append("Test \x02Text\x02 11112222222")
     # win.page1.append("Test \x1D\x02\x0313Text\x03\x02\x1D 222222222222222")
     win.tabwidget.addTab(win.page1, "Server")
     win.layout.addWidget(win.tabwidget, 0, 0, 1, 3)
     win.chat = ChatInput("Text Here...", parent=win)
     win.chat.setDisabled(True)
     win.layout.addWidget(win.chat, 1, 1, 1, 2)
     # win.chatsend = ChatSend()
     # win.layout.addWidget(win.chatsend, 1, 2)
     win.loginbtn = LoginBtn()
     win.layout.addWidget(win.loginbtn, 1, 0)
     win.setStyleSheet("background:#ECE4F6;")
Example #20
0
def show():
    
    message = "{0}  {1} ".format(appinfo.appname, appinfo.version)
    pixmap = QPixmap(os.path.join(__path__[0], 'splash3.png'))
    if QApplication.desktop().screenGeometry().height() < 640:
        fontsize = 23
        pixmap = pixmap.scaledToHeight(240, Qt.SmoothTransformation)
    else:
        fontsize = 40

    splash = QSplashScreen(pixmap, Qt.SplashScreen)

    font = splash.font()
    font.setPixelSize(fontsize)
    font.setWeight(QFont.Bold)
    splash.setFont(font)

    splash.showMessage(message, Qt.AlignRight | Qt.AlignTop, Qt.white)
    splash.show()
    QApplication.processEvents()
    
    def hide():
        splash.deleteLater()
        app.appStarted.disconnect(hide)

    app.appStarted.connect(hide)
Example #21
0
    def __init__(self, app):
        super(FsApp, self).__init__()
        self.app       = app
        self.selRect   = None
        self.screenPix = None

        # Set up the user interface from Designer.
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        #self.setWindowOpacity(0.5)
        #self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)
        self.captureScreen()
        self.showMaximized()
        self.showFullScreen()


        #capture screen and display
        rec = QApplication.desktop().screenGeometry()
        height = rec.height()
        width = rec.width()
        self.ui.labPix.resize(width, height)
        self.ui.labPix.setScaledContents(True)
        self.ui.labPix.setPixmap(self.screenPix)

        #start rubberband
        self.rubberband = QRubberBand(QRubberBand.Rectangle, self)
        bla = QtGui.QPalette()
        bla.setBrush(QtGui.QPalette.Highlight, QtGui.QBrush(QtCore.Qt.red))
        self.rubberband.setPalette(bla)
        self.rubberband.setWindowOpacity(1.0)
Example #22
0
    def __init__(self):
        """
        Constructor
        """
        super(NotificationsPage, self).__init__()
        self.setupUi(self)
        self.setObjectName("NotificationsPage")

        minX, maxX = self.xSpinBox.maximum(), self.xSpinBox.minimum()
        minY, maxY = self.ySpinBox.maximum(), self.ySpinBox.minimum()
        desk = QApplication.desktop()
        for screen in range(desk.screenCount()):
            geom = desk.availableGeometry(screen)
            minX = min(minX, geom.x())
            maxX = max(maxX, geom.x() + geom.width())
            minY = min(minY, geom.y())
            maxY = max(maxY, geom.y() + geom.height())
        self.xSpinBox.setMinimum(minX)
        self.xSpinBox.setMaximum(maxX)
        self.ySpinBox.setMinimum(minY)
        self.ySpinBox.setMaximum(maxY)

        self.__notification = None

        # set initial values
        self.enableCheckBox.setChecked(Preferences.getUI("NotificationsEnabled"))
        self.timeoutSpinBox.setValue(Preferences.getUI("NotificationTimeout"))
        point = Preferences.getUI("NotificationPosition")
        self.xSpinBox.setValue(point.x())
        self.ySpinBox.setValue(point.y())
Example #23
0
def main():
    app = QApplication(sys.argv)
    app.setStyle('cleanlooks')
    app.setApplicationName("Linguistica")

    # Get screen resolution
    # Why do we need to know screen resolution?
    # Because this information is useful for setting the size of particular
    # widgets, e.g., the webview for visualizing the word neighbor manifold
    # (the bigger the webview size, the better it is for visualization!)
    resolution = app.desktop().screenGeometry()
    screen_width = resolution.width()
    screen_height = resolution.height()

    # create and display splash screen
    splash_image_path = os.path.join(os.path.dirname(__file__),
                                     'lxa_splash_screen.png')
    splash_image = QPixmap(splash_image_path)
    splash_screen = QSplashScreen(splash_image, Qt.WindowStaysOnTopHint)
    splash_screen.setMask(splash_image.mask())
    splash_screen.show()
    app.processEvents()
    time.sleep(2)

    # launch graphical user interface
    form = MainWindow(screen_height, screen_width, __version__)
    form.show()
    splash_screen.finish(form)
    app.exec_()
    def _initUi(self, dlgName):
        self.setWindowTitle(dlgName)
 
        allRadioButton = QRadioButton('所有'); allRadioButton.setChecked(True)
        highlightRadioButton = QRadioButton('高亮')

        # 添加到QButtonGroup
        self._buttonGroup = QButtonGroup()
        self._buttonGroup.addButton(allRadioButton, 1); 
        self._buttonGroup.addButton(highlightRadioButton, 2)

        cancelPushButton = QPushButton('Cancel')
        okPushButton = QPushButton('OK')
        cancelPushButton.clicked.connect(self._cancel)
        okPushButton.clicked.connect(self._ok)

        # 布局
        grid = QGridLayout()
        grid.setSpacing(10)
 
        grid.addWidget(allRadioButton, 1, 0)
        grid.addWidget(highlightRadioButton, 1, 1)

        grid.addWidget(okPushButton, 2, 1)
        grid.addWidget(cancelPushButton, 2, 0)
 
        self.setLayout(grid)
        self.setMinimumWidth(QApplication.desktop().size().width()//5)
Example #25
0
	def getIdentifyData(parent = None, message = None):
		dialog = IdentifyDialogWnd(parent, message)
		dialog.ui.move(QApplication.desktop().screen().rect().center()- dialog.ui.rect().center())
		dialog.edtUsername.setText('')		
		result = dialog.ui.exec_()
		uname = dialog.edtUsername.text().strip().upper()		
		return uname
Example #26
0
    def display_lyrics_on_screen(self, screen_number):
        desktop = QApplication.desktop()

        if screen_number >= desktop.screenCount():
            screen_number = desktop.screenNumber(self)

        rect = desktop.availableGeometry(screen_number)

        for _ in range(3):
            if screen_number != desktop.screenNumber(self):
                self.songtext_widget.setWindowFlags(Qt.FramelessWindowHint)
                self.songtext_widget.hide()
                self.songtext_widget.move(rect.x(), rect.y())
                self.songtext_widget.resize(rect.width(), rect.height())
                self.songtext_widget.showFullScreen()
            else:
                self.songtext_widget.setWindowFlags(Qt.WindowTitleHint)
                self.songtext_widget.hide()
                self.songtext_widget.move(rect.x(), rect.y())
                self.songtext_widget.resize(self.songtext_widget.minimumSize())
                self.songtext_widget.show()

        self.screen_select_widget.active_screen = screen_number

        self.activateWindow()
Example #27
0
def show(widget, pos=None, timeout=10000):
    """Show the widget at position."""
    if pos is None:
        pos = QCursor.pos()
    global _widget
    if _widget:
        if _widget is not widget:
            _widget.hide()
    else:
        global _handler
        if _handler is None:
            _handler = EventHandler()
        QApplication.instance().installEventFilter(_handler)
    
    # where to display the tooltip
    screen = QApplication.desktop().availableGeometry(pos)
    x = pos.x() + 2
    y = pos.y() + 20
    if x + widget.width() > screen.x() + screen.width():
        x -= 4 + widget.width()
    if y + widget.height() > screen.y() + screen.height():
        y -= 24 + widget.height()
    if y < screen.y():
        y = screen.y()
    if x < screen.x():
        x = screen.x()
    widget.move(x, y)
    if widget.windowFlags() & Qt.ToolTip != Qt.ToolTip:
        widget.setWindowFlags(Qt.ToolTip)
        widget.ensurePolished()
    
    widget.show()
    _widget = widget
    _timer.start(timeout)
Example #28
0
    def __init__(self):
        super().__init__()

        self.layout = QVBoxLayout(self)

        self.sub_widget = _NotifySubWidget(self)
        self.layout.addWidget(self.sub_widget)
        self.layout.setContentsMargins(0, 0, 0, 0)

        self._exit_shortcut = QShortcut(QKeySequence(Qt.Key_Escape), self)
        self._exit_shortcut.activated.connect(self.close)

        self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.Tool)
        self.setAttribute(Qt.WA_TranslucentBackground)
        self.setAttribute(Qt.WA_MacAlwaysShowToolWindow)

        self.resize(width, height)
        self.move(QApplication.desktop().width() - self.width() - 20, 40)
        self.setLayout(self.layout)

        self._animation = QPropertyAnimation(self, b'windowOpacity')
        self._animation.setStartValue(0.8)
        self._animation.setKeyValueAt(0.4, 1)
        self._animation.setEndValue(0)
        self._animation.setDuration(5000)
        self._animation.finished.connect(self.close)
Example #29
0
 def mousePressEvent(self, event):
     if event.button() == Qt.LeftButton:
         self._leftButtonPressed = True
         if not self.parent.windowFlags() & Qt.WindowStaysOnTopHint:
             rect = QApplication.desktop().availableGeometry()
             win32api.ClipCursor((rect.x(), rect.y(), rect.width(), rect.height()))
         self._relativePos = event.globalPos() - self.parent.mapToGlobal(QPoint(0, 0))
     return QWidget.mousePressEvent(self, event)
Example #30
0
 def move_to_mouse_position(self):
     """Center the Window on the Current Mouse position."""
     self.showNormal()
     self.resize(QDesktopWidget().screenGeometry().width() // 1.5,
                 QDesktopWidget().screenGeometry().height() // 1.5)
     window_geometry = self.frameGeometry()
     window_geometry.moveCenter(QApplication.desktop().cursor().pos())
     return bool(not self.move(window_geometry.topLeft()))
Example #31
0
    def __init__(self):
        super(ConfigureUi, self).__init__()
        self.setWindowTitle('Setting')
        self.setWindowIcon(QIcon(':/default/default_icons/setting_normal.ico'))
        self.factor = self.__width__ = QApplication.desktop().screenGeometry(
        ).width() / 100
        # self.resize(self.factor*18, self.factor*10)
        ip_label = QLabel('IP:')
        port_label = QLabel('Port:')
        self.ip_line = QLineEdit('新建文件夹')
        self.ip_line.selectAll()
        self.ip_line.setStyleSheet('border: none')
        self.port_line = QLineEdit()
        self.configure_button = QPushButton('确认')
        test_layout = QHBoxLayout()
        main_layout = QGridLayout()
        main_layout.setSpacing(self.factor / 2)
        main_layout.addWidget(ip_label, 0, 0)
        main_layout.addWidget(self.ip_line, 0, 1)
        main_layout.addWidget(port_label, 1, 0)
        main_layout.addWidget(self.port_line, 1, 1)
        main_layout.addWidget(self.configure_button, 2, 1, Qt.AlignRight)
        self.listWidget = QListWidget()
        self.listWidget.setDragEnabled(True)
        self.listWidget.setDragDropMode(QListWidget.DragOnly)
        self.listWidget.setDefaultDropAction(Qt.IgnoreAction)
        test_layout.addLayout(main_layout)
        test_layout.addWidget(self.listWidget)
        self.setLayout(test_layout)

        # 不可行!!!
        list_layout = QVBoxLayout()
        list_layout.addWidget(QPushButton())
        list_layout.addStretch()
        self.listWidget.setLayout(list_layout)
        self.make_items()
Example #32
0
    def __init__(self):
        super(Browser, self).__init__()
        # self.resize(480,640)
        # self.setWindowTitle("Twinkstar")
        # # self.setWindowFlag(Qt.FramelessWindowHint)
        self.btn_home_browser.clicked.connect(self.browser_ui_reload)

        # 窗口配置初始化
        self.__init_var()
        self.__init_main()
        self.__init_tools()
        # self.__init_zoom()
        self.__init_bookmark()
        self.__init_browser_tab()
        self.__init_browser()
        self.__init_event_connect()
        self.setVisible_by_layout(self.glayout_browser_main, False)

        # # css样式表导入
        # css = open(r'.\resources\main_ui.css','r',encoding='utf-8').read()
        # self.setStyleSheet(css)

        # 屏幕分辨率
        self.screen_size = QApplication.desktop()
    def __init__(self, key_col, movies_file_path, user_profiles_file_path, parent=None):
        super(DatasetGUI, self).__init__(parent)
        self.key_col = key_col
        self.movies_file_path = movies_file_path
        self.user_profiles_file_path = user_profiles_file_path
        self.column_headers = next(csv.reader(open(movies_file_path, 'r')))
        self.method = ""

        # set window dimension and center it
        screen = QApplication.desktop().screenGeometry()
        self.width = int(screen.width() * 0.5)
        self.height = int(screen.height() * 0.5)
        self.xpos = screen.width() // 2 - self.width // 2
        self.ypos = screen.height() // 2 - self.height // 2
        self.setGeometry(self.xpos, self.ypos, self.width, self.height)

        # setup the view of the GUI
        self.tableView = table_view_factory(self)
        self.model = QStandardItemModel(self)   # data is stored and accessed using this field
        self.tableView.setModel(self.model)
        self.tableView.doubleClicked.connect(self.parse_row)  # double-clicking a row triggers an event

        # button triggers the importing of data from a csv file
        self.pushButtonLoadMovies = QPushButton(self)
        self.pushButtonLoadMovies.setText("Load Movies CSV File")
        self.pushButtonLoadMovies.clicked.connect(lambda: self.load_csv(self.movies_file_path, "cb"))

        # button triggers the importing of data from a csv file
        self.pushButtonLoadUserProfiles = QPushButton(self)
        self.pushButtonLoadUserProfiles.setText("Load User Profile CSV File")
        self.pushButtonLoadUserProfiles.clicked.connect(lambda: self.load_csv(self.user_profiles_file_path, "cf"))

        self.layoutVertical = QVBoxLayout(self)
        self.layoutVertical.addWidget(self.tableView)
        self.layoutVertical.addWidget(self.pushButtonLoadMovies)
        self.layoutVertical.addWidget(self.pushButtonLoadUserProfiles)
Example #34
0
    def __init__(self):
        #initialisation function
        super().__init__()  #attributes QMainWindow properties to the object
        screen = QApplication.desktop()
        screen_size = screen.screenGeometry()
        self.title = "O'Tomates Mozarella"
        self.left = 50
        self.top = 50
        self.width = screen_size.width()
        self.height = screen_size.height()
        self.transitions_temp = list()
        self.grid = False
        #self.refresh_tmp()
        self.num_instance = 0
        self.num_instance_max = 0

        self.preview_flag = False
        self.magnet = False

        self.toolbar_icon_size = self.height / 22
        self.pressedPosition = None

        self.initUI()
        self.something_happened()
Example #35
0
    def ui(self):
        uic.loadUi('uiForm/infoFormWall.ui', self)
        self.sizeMonitor = QApplication.desktop().availableGeometry()
        self.setGeometry(self.sizeMonitor.width() / 6, 0,
                         (2 * self.sizeMonitor.width()) / 3,
                         self.sizeMonitor.height())

        self.btn_load_more_records = QPushButton('Load more')
        self.btn_addRecord = QPushButton('+')
        self.avatarImg = ClickableLabel()
        self.myForm = QFormLayout()

        # Create layout with infoWidget
        lay = QHBoxLayout()
        lay.addWidget(self.infoWidget)

        # Frames for layouts
        frame = QFrame()
        frame.setFrameShape(QFrame.Panel)
        frame.setFrameShadow(QFrame.Raised)
        frame.setLayout(lay)

        # Create scroll and put in general layout
        scrollWidget = QWidget()
        scrollWidget.setLayout(self.myForm)
        scroll = QScrollArea()
        scroll.setWidget(scrollWidget)
        scroll.setWidgetResizable(True)
        layout = QVBoxLayout(self)
        layout.addWidget(scroll)

        self.myForm.addWidget(frame)
        self.myForm.addWidget(self.btn_addRecord)

        self.avatarLayout.addWidget(self.avatarImg)
        self.avatarImg.setMaximumWidth(self.sizeMonitor.width() / 6)
Example #36
0
    def initChatUi(self, chats):
        width = QApplication.desktop().width()
        frame_width = (width / 2.5) / 3 * 4
        frame_height = (width / 2.5)
        print(chats)
        for j, i in enumerate(chats):
            if i == '':
                continue
            self.add_chat(i)

        self.create_chat_btn = QPushButton('Create new chat', self)
        self.create_chat_btn.resize(frame_width / 6, frame_height / 10)
        self.create_chat_btn.move(0, frame_height * 0.9)
        self.create_chat_btn.clicked.connect(self.create)
        self.create_chat_btn.show()

        self.invite_to_chat_btn = QPushButton('Invite new member', self)
        self.invite_to_chat_btn.resize(frame_width / 6, frame_height / 10)
        self.invite_to_chat_btn.move(frame_width / 6, frame_height * 0.9)
        self.invite_to_chat_btn.clicked.connect(self.invite)
        self.invite_to_chat_btn.show()

        if self.current_chat in self.Chats:
            self.Chats[self.current_chat].show()
Example #37
0
    def __init__(self, parent=None):
        super().__init__(parent)

        # 界面基本设置
        self.lab = QLabel('背景图片', self)
        self.lab.setGeometry(0, 0, 1024,768)
        pixmap = QPixmap('image/background/register.jpg')
        self.lab.setPixmap(pixmap)

        self.setAttribute(Qt.WA_DeleteOnClose, True)
        self.setAttribute(Qt.WA_QuitOnClose, False)
        self.setWindowFlags(Qt.WindowCloseButtonHint)

        # 设置标题和大小
        self.setWindowTitle(self.tr("i Chat注册"))
        self.setFixedSize(516, 402)

        # 移动到屏幕中央
        rect = self.frameGeometry()
        rect.moveCenter(QApplication.desktop().availableGeometry().center())
        self.move(rect.topLeft())

        # UI设置
        self.initUI()
Example #38
0
    def __init__(self, model):
        """Initialize MNELAB main window.

        Parameters
        ----------
        model : mnelab.model.Model instance
            The main window needs to connect to a model containing all data
            sets. This decouples the GUI from the data (model/view).
        """
        super().__init__()

        mp.set_start_method("spawn", force=True)  # required for Linux/macOS

        self.model = model  # data model
        self.setWindowTitle("MNELAB")

        # restore settings
        settings = read_settings()
        self.recent = settings["recent"]  # list of recent files
        if settings["geometry"]:
            self.restoreGeometry(settings["geometry"])
        else:
            self.setGeometry(300, 300, 1000, 750)  # default window size
            self.move(QApplication.desktop().screen().rect().center() -
                      self.rect().center())  # center window
        if settings["state"]:
            self.restoreState(settings["state"])

        self.actions = {}  # contains all actions

        # initialize menus
        file_menu = self.menuBar().addMenu("&File")
        icon = QIcon(":/open_file.svg")
        self.actions["open_file"] = file_menu.addAction(
            icon, "&Open...", self.open_data, QKeySequence.Open)
        self.recent_menu = file_menu.addMenu("Open recent")
        self.recent_menu.aboutToShow.connect(self._update_recent_menu)
        self.recent_menu.triggered.connect(self._load_recent)
        if not self.recent:
            self.recent_menu.setEnabled(False)
        self.actions["close_file"] = file_menu.addAction(
            "&Close", self.model.remove_data, QKeySequence.Close)
        self.actions["close_all"] = file_menu.addAction(
            "Close all", self.close_all)
        file_menu.addSeparator()
        icon = QIcon(":/meta_info.svg")
        self.actions["meta_info"] = file_menu.addAction(
            icon, "Show information...", self.meta_info)
        file_menu.addSeparator()
        self.actions["import_bads"] = file_menu.addAction(
            "Import bad channels...", lambda: self.import_file(
                model.import_bads, "Import bad channels", "*.csv"))
        self.actions["import_events"] = file_menu.addAction(
            "Import events...", lambda: self.import_file(
                model.import_events, "Import events", "*.csv"))
        self.actions["import_annotations"] = file_menu.addAction(
            "Import annotations...", lambda: self.import_file(
                model.import_annotations, "Import annotations", "*.csv"))
        self.actions["import_ica"] = file_menu.addAction(
            "Import &ICA...", lambda: self.open_file(
                model.import_ica, "Import ICA", "*.fif *.fif.gz"))
        file_menu.addSeparator()
        self.export_menu = file_menu.addMenu("Export data")
        for name, ext in EXPORT_FORMATS.items():
            self.actions["export_data_" + ext] = self.export_menu.addAction(
                f"{name} ({ext[1:].upper()})...",
                partial(self.export_file, model.export_data, "Export data",
                        ext))
        self.actions["export_bads"] = file_menu.addAction(
            "Export &bad channels...", lambda: self.export_file(
                model.export_bads, "Export bad channels", "*.csv"))
        self.actions["export_events"] = file_menu.addAction(
            "Export &events...", lambda: self.export_file(
                model.export_events, "Export events", "*.csv"))
        self.actions["export_annotations"] = file_menu.addAction(
            "Export &annotations...", lambda: self.export_file(
                model.export_annotations, "Export annotations", "*.csv"))
        self.actions["export_ica"] = file_menu.addAction(
            "Export ICA...", lambda: self.export_file(
                model.export_ica, "Export ICA", "*.fif *.fif.gz"))
        file_menu.addSeparator()
        self.actions["quit"] = file_menu.addAction("&Quit", self.close,
                                                   QKeySequence.Quit)

        edit_menu = self.menuBar().addMenu("&Edit")
        self.actions["pick_chans"] = edit_menu.addAction(
            "Pick &channels...", self.pick_channels)
        icon = QIcon(":/chan_props.svg")
        self.actions["chan_props"] = edit_menu.addAction(
            icon, "Channel &properties...", self.channel_properties)
        self.actions["set_montage"] = edit_menu.addAction(
            "Set &montage...", self.set_montage)
        edit_menu.addSeparator()
        self.actions["set_ref"] = edit_menu.addAction("&Set reference...",
                                                      self.set_reference)
        edit_menu.addSeparator()
        self.actions["annotations"] = edit_menu.addAction(
            "Annotations...", self.edit_annotations)
        self.actions["events"] = edit_menu.addAction("Events...",
                                                     self.edit_events)

        edit_menu.addSeparator()
        self.actions["crop"] = edit_menu.addAction("&Crop data...", self.crop)

        plot_menu = self.menuBar().addMenu("&Plot")
        icon = QIcon(":/plot_data.svg")
        self.actions["plot_data"] = plot_menu.addAction(
            icon, "&Data...", self.plot_data)
        icon = QIcon(":/plot_psd.svg")
        self.actions["plot_psd"] = plot_menu.addAction(
            icon, "&Power spectral density...", self.plot_psd)
        icon = QIcon(":/plot_montage.svg")
        self.actions["plot_montage"] = plot_menu.addAction(
            icon, "&Montage...", self.plot_montage)
        plot_menu.addSeparator()
        self.actions["plot_ica_components"] = plot_menu.addAction(
            "ICA &components...", self.plot_ica_components)
        self.actions["plot_ica_sources"] = plot_menu.addAction(
            "ICA &sources...", self.plot_ica_sources)

        tools_menu = self.menuBar().addMenu("&Tools")
        icon = QIcon(":/filter.svg")
        self.actions["filter"] = tools_menu.addAction(icon, "&Filter data...",
                                                      self.filter_data)
        icon = QIcon(":/find_events.svg")
        self.actions["find_events"] = tools_menu.addAction(
            icon, "Find &events...", self.find_events)
        self.actions["events_from_annotations"] = tools_menu.addAction(
            "Create events from annotations", self.events_from_annotations)
        tools_menu.addSeparator()
        icon = QIcon(":/run_ica.svg")
        self.actions["run_ica"] = tools_menu.addAction(icon, "Run &ICA...",
                                                       self.run_ica)
        self.actions["apply_ica"] = tools_menu.addAction(
            "Apply &ICA", self.apply_ica)
        tools_menu.addSeparator()
        self.actions["interpolate_bads"] = tools_menu.addAction(
            "Interpolate bad channels...", self.interpolate_bads)
        tools_menu.addSeparator()
        icon = QIcon(":/epoch_data.svg")
        self.actions["epoch_data"] = tools_menu.addAction(
            icon, "Create Epochs...", self.epoch_data)

        view_menu = self.menuBar().addMenu("&View")
        self.actions["history"] = view_menu.addAction("&History...",
                                                      self.show_history)
        self.actions["toolbar"] = view_menu.addAction("&Toolbar",
                                                      self._toggle_toolbar)
        self.actions["toolbar"].setCheckable(True)
        self.actions["statusbar"] = view_menu.addAction(
            "&Statusbar", self._toggle_statusbar)
        self.actions["statusbar"].setCheckable(True)

        help_menu = self.menuBar().addMenu("&Help")
        self.actions["about"] = help_menu.addAction("&About", self.show_about)
        self.actions["about_qt"] = help_menu.addAction("About &Qt",
                                                       self.show_about_qt)

        # actions that are always enabled
        self.always_enabled = [
            "open_file", "about", "about_qt", "quit", "toolbar", "statusbar"
        ]

        # set up toolbar
        self.toolbar = self.addToolBar("toolbar")
        self.toolbar.setObjectName("toolbar")
        self.toolbar.addAction(self.actions["open_file"])
        self.toolbar.addAction(self.actions["meta_info"])
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.actions["chan_props"])
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.actions["plot_data"])
        self.toolbar.addAction(self.actions["plot_psd"])
        self.toolbar.addAction(self.actions["plot_montage"])
        self.toolbar.addSeparator()
        self.toolbar.addAction(self.actions["filter"])
        self.toolbar.addAction(self.actions["find_events"])
        self.toolbar.addAction(self.actions["epoch_data"])
        self.toolbar.addAction(self.actions["run_ica"])

        self.setUnifiedTitleAndToolBarOnMac(True)
        if settings["toolbar"]:
            self.toolbar.show()
            self.actions["toolbar"].setChecked(True)
        else:
            self.toolbar.hide()
            self.actions["toolbar"].setChecked(False)

        # set up data model for sidebar (list of open files)
        self.names = QStringListModel()
        self.names.dataChanged.connect(self._update_names)
        splitter = QSplitter()
        self.sidebar = QListView()
        self.sidebar.setFrameStyle(QFrame.NoFrame)
        self.sidebar.setFocusPolicy(Qt.NoFocus)
        self.sidebar.setModel(self.names)
        self.sidebar.clicked.connect(self._update_data)
        splitter.addWidget(self.sidebar)
        self.infowidget = InfoWidget()
        splitter.addWidget(self.infowidget)
        width = splitter.size().width()
        splitter.setSizes((int(width * 0.3), int(width * 0.7)))
        self.setCentralWidget(splitter)

        self.status_label = QLabel()
        self.statusBar().addPermanentWidget(self.status_label)
        if settings["statusbar"]:
            self.statusBar().show()
            self.actions["statusbar"].setChecked(True)
        else:
            self.statusBar().hide()
            self.actions["statusbar"].setChecked(False)

        self.setAcceptDrops(True)
        self.data_changed()
Example #39
0
    def initUI(self):
        self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)

        layout = QGridLayout()

        ##### Title #####
        title = QLabel('Break reminder settings', self)
        layout.addWidget(title, 0, 0, 2, 0, Qt.AlignCenter)
        #################

        line = QFrame()
        line.setFrameShape(QFrame.HLine)
        layout.addWidget(line, 2, 0, 2, 2)

        ##### Break time spinbox #####
        title_break = QLabel('Break time: ', self)
        layout.addWidget(title_break, 4, 0)

        break_hours_label = QLabel('Hours: ', self)
        layout.addWidget(break_hours_label, 5, 0, Qt.AlignCenter)
        self.break_hours_spinbox = QSpinBox(self)
        self.break_hours_spinbox.setRange(0, 23)
        layout.addWidget(self.break_hours_spinbox, 5, 1)

        break_minutes_label = QLabel('Minutes: ', self)
        layout.addWidget(break_minutes_label, 6, 0, Qt.AlignCenter)
        self.break_minutes_spinbox = QSpinBox(self)
        self.break_minutes_spinbox.setRange(0, 59)
        layout.addWidget(self.break_minutes_spinbox, 6, 1)
        ##############################

        ##### Active time spinbox #####
        title_active = QLabel('Active time:', self)
        layout.addWidget(title_active, 7, 0)

        active_hours_label = QLabel('Hours: ', self)
        layout.addWidget(active_hours_label, 8, 0, Qt.AlignCenter)
        self.active_hours_spinbox = QSpinBox(self)
        self.active_hours_spinbox.setRange(0, 23)
        layout.addWidget(self.active_hours_spinbox, 8, 1)

        active_minutes_label = QLabel('Minutes: ', self)
        layout.addWidget(active_minutes_label, 9, 0, Qt.AlignCenter)
        self.active_minutes_spinbox = QSpinBox(self)
        self.active_minutes_spinbox.setRange(0, 59)
        layout.addWidget(self.active_minutes_spinbox, 9, 1)
        ###############################

        ##### Notification interval #####
        title_interval = QLabel('Notifications interval:', self)
        layout.addWidget(title_interval, 10, 0, 1, 2)

        notification_minutes = QLabel('Minutes: ', self)
        layout.addWidget(notification_minutes, 11, 0, Qt.AlignCenter)
        self.notification_minutes_spinbox = QSpinBox(self)
        self.notification_minutes_spinbox.setRange(0, 59)
        self.notification_minutes_spinbox.setToolTip(
            '0 disables notifications')
        layout.addWidget(self.notification_minutes_spinbox, 11, 1)
        #################################

        ok_btn = QPushButton('Ok', self)
        ok_btn.clicked.connect(self.save_changes)

        layout.addWidget(ok_btn, 12, 0, 1, 2, Qt.AlignCenter)
        self.setLayout(layout)

        self.setStyleSheet('background-color: grey;')

        # window should be small widget close to systray icon
        x = QApplication.desktop().size().width() / 1.5
        y = 150
        width = 200
        height = 350
        self.setFixedSize(width, height)
        self.setGeometry(x, y, width, height)
 def center(self):
     frameGm = self.frameGeometry()
     screen = QApplication.desktop().screenNumber(QApplication.desktop().cursor().pos())
     centerPoint = QApplication.desktop().screenGeometry(screen).center()
     frameGm.moveCenter(centerPoint)
     self.move(frameGm.topLeft())self.transaction = self.apt_client.commit_packages(install=installs, remove=removals, reinstall=[], purge=[], upgrade=[], downgrade=[])
Example #41
0
        elif key == QtCore.Qt.Key_R:
            self.refresh_map.set()

    def resizeEvent(self, event):
        """
        On resize event redraw the map.
        """
        scroll_map(self, self.position)


# bind Qt application with Python asyncio loop
app = QApplication(sys.argv)
loop = QEventLoop(app)
asyncio.set_event_loop(loop)

g = app.desktop().screenGeometry()
size = g.width() + 256 * 2, g.height() + 256 * 2

pos = (0, 0)
if len(sys.argv) == 3:
    pos = float(sys.argv[1]), float(sys.argv[2])

mm = geotiler.Map(size=size, center=pos, zoom=18)

window = MapWindow(mm)
window.show()

queue = asyncio.Queue()
t1 = read_gps(queue)
t2 = locate(window, queue)
t3 = refresh_map(window)
Example #42
0
try:
    rootPath = parser.positionalArguments().pop(0)
except IndexError:
    rootPath = None

model = QFileSystemModel()
model.setRootPath("")
if parser.isSet(dontUseCustomDirectoryIconsOption):
    model.iconProvider().setOptions(
        QFileIconProvider.DontUseCustomDirectoryIcons)
tree = QTreeView()
tree.setModel(model)
if rootPath is not None:
    rootIndex = model.index(QDir.cleanPath(rootPath))
    if rootIndex.isValid():
        tree.setRootIndex(rootIndex)

# Demonstrating look and feel features.
tree.setAnimated(False)
tree.setIndentation(20)
tree.setSortingEnabled(True)

availableSize = QApplication.desktop().availableGeometry(tree).size()
tree.resize(availableSize / 2)
tree.setColumnWidth(0, tree.width() / 3)

tree.setWindowTitle("Dir View")
tree.show()

sys.exit(app.exec_())
Example #43
0
    def __init__(self):
        super().__init__()

        self.runaction = widget.OWAction("Calculate Height Profile", self)
        self.runaction.triggered.connect(self.calculate_heigth_profile)
        self.addAction(self.runaction)

        self.runaction = widget.OWAction("Generate Height Profile File", self)
        self.runaction.triggered.connect(self.generate_heigth_profile_file)
        self.addAction(self.runaction)

        geom = QApplication.desktop().availableGeometry()
        self.setGeometry(
            QRect(round(geom.width() * 0.05), round(geom.height() * 0.05),
                  round(min(geom.width() * 0.98, self.MAX_WIDTH)),
                  round(min(geom.height() * 0.95, self.MAX_HEIGHT))))

        self.setMaximumHeight(self.geometry().height())
        self.setMaximumWidth(self.geometry().width())

        gui.separator(self.controlArea)

        button_box = oasysgui.widgetBox(self.controlArea,
                                        "",
                                        addSpace=False,
                                        orientation="horizontal")

        button = gui.button(button_box,
                            self,
                            "Calculate Height\nProfile",
                            callback=self.calculate_heigth_profile)
        button.setFixedHeight(45)

        button = gui.button(button_box,
                            self,
                            "Generate Height\nProfile File",
                            callback=self.generate_heigth_profile_file)
        font = QFont(button.font())
        font.setBold(True)
        button.setFont(font)
        palette = QPalette(button.palette())  # make a copy of the palette
        palette.setColor(QPalette.ButtonText, QColor('Dark Blue'))
        button.setPalette(palette)  # assign new palette
        button.setFixedHeight(45)
        button.setFixedWidth(150)

        button = gui.button(button_box,
                            self,
                            "Reset Fields",
                            callback=self.call_reset_settings)
        font = QFont(button.font())
        font.setItalic(True)
        button.setFont(font)
        palette = QPalette(button.palette())  # make a copy of the palette
        palette.setColor(QPalette.ButtonText, QColor('Dark Red'))
        button.setPalette(palette)  # assign new palette
        button.setFixedHeight(45)

        gui.separator(self.controlArea)

        tabs_setting = oasysgui.tabWidget(self.controlArea)
        tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT)
        tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH - 5)

        tab_input = oasysgui.createTabPage(tabs_setting, "Input Parameters")
        tab_out = oasysgui.createTabPage(tabs_setting, "Output")

        #/ ---------------------------------------

        input_box_l = oasysgui.widgetBox(tab_input,
                                         "Calculation Parameters",
                                         addSpace=True,
                                         orientation="vertical")

        gui.comboBox(input_box_l,
                     self,
                     "kind_of_profile_y",
                     label="Kind of Profile",
                     labelWidth=260,
                     items=["Fractal", "Gaussian"],
                     callback=self.set_KindOfProfileY,
                     sendSelectedValue=False,
                     orientation="horizontal")

        gui.separator(input_box_l)

        self.kind_of_profile_y_box_1 = oasysgui.widgetBox(
            input_box_l,
            "",
            addSpace=False,
            orientation="vertical",
            height=230)

        self.le_dimension_y = oasysgui.lineEdit(self.kind_of_profile_y_box_1,
                                                self,
                                                "dimension_y",
                                                "Dimensions",
                                                labelWidth=260,
                                                valueType=float,
                                                orientation="horizontal")
        self.le_step_y = oasysgui.lineEdit(self.kind_of_profile_y_box_1,
                                           self,
                                           "step_y",
                                           "Step",
                                           labelWidth=260,
                                           valueType=float,
                                           orientation="horizontal")
        oasysgui.lineEdit(self.kind_of_profile_y_box_1,
                          self,
                          "montecarlo_seed_y",
                          "Monte Carlo initial seed",
                          labelWidth=260,
                          valueType=int,
                          orientation="horizontal")

        self.kind_of_profile_y_box_1_1 = oasysgui.widgetBox(
            self.kind_of_profile_y_box_1,
            "",
            addSpace=False,
            orientation="vertical")

        oasysgui.lineEdit(self.kind_of_profile_y_box_1_1,
                          self,
                          "power_law_exponent_beta_y",
                          "Beta Value",
                          labelWidth=260,
                          valueType=float,
                          orientation="horizontal")

        self.kind_of_profile_y_box_1_2 = oasysgui.widgetBox(
            self.kind_of_profile_y_box_1,
            "",
            addSpace=False,
            orientation="vertical")

        self.le_correlation_length_y = oasysgui.lineEdit(
            self.kind_of_profile_y_box_1_2,
            self,
            "correlation_length_y",
            "Correlation Length",
            labelWidth=260,
            valueType=float,
            orientation="horizontal")

        gui.separator(self.kind_of_profile_y_box_1)

        gui.comboBox(
            self.kind_of_profile_y_box_1,
            self,
            "error_type_y",
            label="Normalization to",
            labelWidth=270,
            items=["Figure Error (nm)", "Slope Error (" + "\u03BC" + "rad)"],
            sendSelectedValue=False,
            orientation="horizontal")

        oasysgui.lineEdit(self.kind_of_profile_y_box_1,
                          self,
                          "rms_y",
                          "Rms Value",
                          labelWidth=260,
                          valueType=float,
                          orientation="horizontal")

        self.set_KindOfProfileY()

        self.output_box = oasysgui.widgetBox(tab_input,
                                             "Outputs",
                                             addSpace=True,
                                             orientation="vertical")

        self.select_file_box = oasysgui.widgetBox(self.output_box,
                                                  "",
                                                  addSpace=False,
                                                  orientation="horizontal")

        self.le_heigth_profile_file_name = oasysgui.lineEdit(
            self.select_file_box,
            self,
            "heigth_profile_file_name",
            "Output File Name",
            labelWidth=120,
            valueType=str,
            orientation="horizontal")

        gui.button(self.select_file_box, self, "...", callback=self.selectFile)

        self.wise_output = QTextEdit()
        self.wise_output.setReadOnly(True)
        self.wise_output.setStyleSheet("background-color: white;")

        out_box = oasysgui.widgetBox(tab_out,
                                     "System Output",
                                     addSpace=True,
                                     orientation="horizontal",
                                     height=580)
        out_box.layout().addWidget(self.wise_output)

        gui.rubber(self.controlArea)

        main_tabs = oasysgui.tabWidget(self.mainArea)
        self.plot_tab = oasysgui.createTabPage(main_tabs, "Results")
        self.plot_tab.setFixedHeight(self.IMAGE_HEIGHT)
        self.plot_tab.setFixedWidth(self.IMAGE_WIDTH)

        self.plot_canvas = None

        gui.rubber(self.mainArea)
Example #44
0
    def __init__(self):
        super().__init__()

        self.runaction = OWAction("Compute", self)
        self.runaction.triggered.connect(self.compute)
        self.addAction(self.runaction)

        geom = QApplication.desktop().availableGeometry()
        self.setGeometry(QRect(round(geom.width()*0.05),
                               round(geom.height()*0.05),
                               round(min(geom.width()*0.98, self.MAX_WIDTH)),
                               round(min(geom.height()*0.95, self.MAX_HEIGHT))))

        self.setMaximumHeight(self.geometry().height())
        self.setMaximumWidth(self.geometry().width())

        self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH)

        self.general_options_box = gui.widgetBox(self.controlArea, "General Options", addSpace=True, orientation="horizontal")
        gui.checkBox(self.general_options_box, self, 'is_automatic_run', 'Automatic Execution')

        self.button_box = gui.widgetBox(self.controlArea, "", orientation="horizontal")
        #widget buttons: compute, set defaults, help
        gui.button(self.button_box, self, "Compute", callback=self.compute, height=35)
        gui.button(self.button_box, self, "Defaults", callback=self.defaults, height=35)

        gui.separator(self.controlArea, height=10)

        self.build_gui()

        gui.rubber(self.controlArea)

        self.main_tabs = oasysgui.tabWidget(self.mainArea)
        plot_tab = oasysgui.createTabPage(self.main_tabs, "Results")
        out_tab = oasysgui.createTabPage(self.main_tabs, "Output")

        self.view_box = oasysgui.widgetBox(plot_tab, "Results Options", addSpace=False, orientation="horizontal")
        view_box_1 = oasysgui.widgetBox(self.view_box, "", addSpace=False, orientation="vertical", width=350)

        self.view_type_combo = gui.comboBox(view_box_1, self, "view_type", label="View Results",
                                            labelWidth=220,
                                            items=["No", "Yes"],
                                            callback=self.set_ViewType, sendSelectedValue=False, orientation="horizontal")

        oasysgui.widgetBox(self.view_box, "", addSpace=False, orientation="vertical", width=100)


        #* -------------------------------------------------------------------------------------------------------------
        propagation_box = oasysgui.widgetBox(self.view_box, "", addSpace=False, orientation="vertical")

        self.le_wise_live_propagation_mode = gui.lineEdit(propagation_box, self, "wise_live_propagation_mode", "Propagation Mode", labelWidth=150, valueType=str, orientation="horizontal")
        self.le_wise_live_propagation_mode.setAlignment(Qt.AlignCenter)
        self.le_wise_live_propagation_mode.setReadOnly(True)
        font = QFont(self.le_wise_live_propagation_mode.font())
        font.setBold(True)
        self.le_wise_live_propagation_mode.setFont(font)

        self.set_wise_live_propagation_mode()

        #* -------------------------------------------------------------------------------------------------------------

        self.tab = []
        self.tabs = oasysgui.tabWidget(plot_tab)

        self.initializeTabs()

        self.wise_output = QtWidgets.QTextEdit()
        self.wise_output.setReadOnly(True)
        self.wise_output.setStyleSheet("background-color: white;")

        out_box = gui.widgetBox(out_tab, "System Output", addSpace=True, orientation="horizontal")
        out_box.layout().addWidget(self.wise_output)

        self.wise_output.setFixedHeight(590)
        self.wise_output.setFixedWidth(700)

        gui.rubber(self.mainArea)
    def __init__(self):
        super().__init__()

        self.runaction = widget.OWAction("Calculate Height Profile", self)
        self.runaction.triggered.connect(self.calculate_heigth_profile_ni)
        self.addAction(self.runaction)

        self.runaction = widget.OWAction("Generate Height Profile File", self)
        self.runaction.triggered.connect(self.generate_heigth_profile_file_ni)
        self.addAction(self.runaction)

        geom = QApplication.desktop().availableGeometry()
        self.setGeometry(
            QRect(round(geom.width() * 0.05), round(geom.height() * 0.05),
                  round(min(geom.width() * 0.98, self.MAX_WIDTH)),
                  round(min(geom.height() * 0.95, self.MAX_HEIGHT))))

        self.setMaximumHeight(self.geometry().height())
        self.setMaximumWidth(self.geometry().width())

        # DABAM INITIALIZATION
        self.server = dabam.dabam()
        self.server.set_input_silent(True)

        gui.separator(self.controlArea)

        button_box = oasysgui.widgetBox(self.controlArea,
                                        "",
                                        addSpace=False,
                                        orientation="horizontal")

        button = gui.button(button_box,
                            self,
                            "Calculate Height\nProfile",
                            callback=self.calculate_heigth_profile)
        button.setFixedHeight(45)

        button = gui.button(button_box,
                            self,
                            "Generate Height\nProfile File",
                            callback=self.generate_heigth_profile_file)
        font = QFont(button.font())
        font.setBold(True)
        button.setFont(font)
        palette = QPalette(button.palette())  # make a copy of the palette
        palette.setColor(QPalette.ButtonText, QColor('Dark Blue'))
        button.setPalette(palette)  # assign new palette
        button.setFixedHeight(45)
        button.setFixedWidth(150)

        button = gui.button(button_box,
                            self,
                            "Reset Fields",
                            callback=self.call_reset_settings)
        font = QFont(button.font())
        font.setItalic(True)
        button.setFont(font)
        palette = QPalette(button.palette())  # make a copy of the palette
        palette.setColor(QPalette.ButtonText, QColor('Dark Red'))
        button.setPalette(palette)  # assign new palette
        button.setFixedHeight(45)

        gui.separator(self.controlArea)

        tabs_setting = oasysgui.tabWidget(self.controlArea)
        tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT)
        tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH - 5)

        tab_input = oasysgui.createTabPage(tabs_setting,
                                           "DABAM Search Setting")
        tab_gener = oasysgui.createTabPage(tabs_setting,
                                           "DABAM Generation Setting")
        tab_out = oasysgui.createTabPage(tabs_setting, "Output")

        manual_box = oasysgui.widgetBox(tab_input,
                                        "Manual Entry",
                                        addSpace=True,
                                        orientation="vertical")

        oasysgui.lineEdit(manual_box,
                          self,
                          "entry_number",
                          "Entry Number",
                          labelWidth=300,
                          valueType=int,
                          orientation="horizontal")

        gui.separator(manual_box)

        button = gui.button(manual_box,
                            self,
                            "Retrieve Profile",
                            callback=self.retrieve_profile)
        button.setFixedHeight(35)
        button.setFixedWidth(self.CONTROL_AREA_WIDTH - 35)

        input_box = oasysgui.widgetBox(tab_input,
                                       "Search Parameters",
                                       addSpace=True,
                                       orientation="vertical")

        gui.comboBox(input_box,
                     self,
                     "shape",
                     label="Mirror Shape",
                     labelWidth=300,
                     items=[
                         "All", "Plane", "Cylindrical", "Elliptical",
                         "Toroidal", "Spherical"
                     ],
                     sendSelectedValue=False,
                     orientation="horizontal")

        gui.separator(input_box)

        input_box_1 = oasysgui.widgetBox(input_box,
                                         "",
                                         addSpace=True,
                                         orientation="horizontal")

        oasysgui.lineEdit(input_box_1,
                          self,
                          "slope_error_from",
                          "Slope Error From (" + u"\u03BC" + "rad)",
                          labelWidth=150,
                          valueType=float,
                          orientation="horizontal")
        oasysgui.lineEdit(input_box_1,
                          self,
                          "slope_error_to",
                          "To (" + u"\u03BC" + "rad)",
                          labelWidth=60,
                          valueType=float,
                          orientation="horizontal")

        input_box_2 = oasysgui.widgetBox(input_box,
                                         "",
                                         addSpace=True,
                                         orientation="horizontal")

        self.le_dimension_y_from = oasysgui.lineEdit(input_box_2,
                                                     self,
                                                     "dimension_y_from",
                                                     "Mirror Length From",
                                                     labelWidth=150,
                                                     valueType=float,
                                                     orientation="horizontal")
        self.le_dimension_y_to = oasysgui.lineEdit(input_box_2,
                                                   self,
                                                   "dimension_y_to",
                                                   "To",
                                                   labelWidth=60,
                                                   valueType=float,
                                                   orientation="horizontal")

        table_box = oasysgui.widgetBox(tab_input,
                                       "Search Results",
                                       addSpace=True,
                                       orientation="vertical",
                                       height=250)

        self.overlay_search = Overlay(table_box, self.search_profiles)
        self.overlay_search.hide()

        button = gui.button(input_box,
                            self,
                            "Search",
                            callback=self.overlay_search.show)
        button.setFixedHeight(35)
        button.setFixedWidth(self.CONTROL_AREA_WIDTH - 35)

        gui.comboBox(table_box,
                     self,
                     "use_undetrended",
                     label="Use Undetrended Profile",
                     labelWidth=300,
                     items=["No", "Yes"],
                     callback=self.table_item_clicked,
                     sendSelectedValue=False,
                     orientation="horizontal")

        gui.separator(table_box)

        self.scrollarea = QScrollArea()
        self.scrollarea.setMinimumWidth(self.CONTROL_AREA_WIDTH - 35)

        table_box.layout().addWidget(self.scrollarea,
                                     alignment=Qt.AlignHCenter)

        self.table = QTableWidget(1, 5)
        self.table.setStyleSheet("background-color: #FBFBFB;")
        self.table.setAlternatingRowColors(True)
        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Fixed)
        self.table.verticalHeader().setVisible(False)

        self.table.setColumnWidth(0, 40)
        self.table.setColumnWidth(1, 70)
        self.table.setColumnWidth(2, 70)
        self.table.setColumnWidth(3, 85)
        self.table.setColumnWidth(4, 80)

        self.table.resizeRowsToContents()
        self.table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table.itemClicked.connect(self.table_item_clicked)

        self.scrollarea.setWidget(self.table)
        self.scrollarea.setWidgetResizable(1)

        output_profile_box = oasysgui.widgetBox(
            tab_gener,
            "Surface Generation Parameters",
            addSpace=True,
            orientation="vertical",
            height=370)

        gui.comboBox(output_profile_box,
                     self,
                     "center_y",
                     label="Center Profile in the middle of O.E.",
                     labelWidth=300,
                     items=["No", "Yes"],
                     sendSelectedValue=False,
                     orientation="horizontal")

        gui.separator(output_profile_box)

        gui.comboBox(output_profile_box,
                     self,
                     "modify_y",
                     label="Modify Length?",
                     labelWidth=150,
                     items=[
                         "No", "Rescale to new length",
                         "Fit to new length (fill or cut)"
                     ],
                     callback=self.set_ModifyY,
                     sendSelectedValue=False,
                     orientation="horizontal")

        self.modify_box_1 = oasysgui.widgetBox(output_profile_box,
                                               "",
                                               addSpace=False,
                                               orientation="vertical",
                                               height=60)

        self.modify_box_2 = oasysgui.widgetBox(output_profile_box,
                                               "",
                                               addSpace=False,
                                               orientation="vertical",
                                               height=60)
        self.le_new_length_1 = oasysgui.lineEdit(self.modify_box_2,
                                                 self,
                                                 "new_length",
                                                 "New Length",
                                                 labelWidth=300,
                                                 valueType=float,
                                                 orientation="horizontal")

        self.modify_box_3 = oasysgui.widgetBox(output_profile_box,
                                               "",
                                               addSpace=False,
                                               orientation="vertical",
                                               height=60)
        self.le_new_length_2 = oasysgui.lineEdit(self.modify_box_3,
                                                 self,
                                                 "new_length",
                                                 "New Length",
                                                 labelWidth=300,
                                                 valueType=float,
                                                 orientation="horizontal")
        oasysgui.lineEdit(self.modify_box_3,
                          self,
                          "filler_value",
                          "Filler Value (if new length > profile length) [nm]",
                          labelWidth=300,
                          valueType=float,
                          orientation="horizontal")

        self.set_ModifyY()

        gui.comboBox(output_profile_box,
                     self,
                     "renormalize_y",
                     label="Renormalize Length Profile to different RMS",
                     labelWidth=300,
                     items=["No", "Yes"],
                     callback=self.set_RenormalizeY,
                     sendSelectedValue=False,
                     orientation="horizontal")

        self.output_profile_box_1 = oasysgui.widgetBox(output_profile_box,
                                                       "",
                                                       addSpace=False,
                                                       orientation="vertical",
                                                       height=60)
        self.output_profile_box_2 = oasysgui.widgetBox(output_profile_box,
                                                       "",
                                                       addSpace=False,
                                                       orientation="vertical",
                                                       height=60)

        gui.comboBox(
            self.output_profile_box_1,
            self,
            "error_type_y",
            label="Normalization to",
            labelWidth=270,
            items=["Figure Error (nm)", "Slope Error (" + u"\u03BC" + "rad)"],
            sendSelectedValue=False,
            orientation="horizontal")

        oasysgui.lineEdit(self.output_profile_box_1,
                          self,
                          "rms_y",
                          "Rms Value",
                          labelWidth=300,
                          valueType=float,
                          orientation="horizontal")

        self.set_RenormalizeY()

        output_box = oasysgui.widgetBox(tab_gener,
                                        "Outputs",
                                        addSpace=True,
                                        orientation="vertical")

        select_file_box = oasysgui.widgetBox(output_box,
                                             "",
                                             addSpace=True,
                                             orientation="horizontal")

        self.le_heigth_profile_file_name = oasysgui.lineEdit(
            select_file_box,
            self,
            "heigth_profile_file_name",
            "Output File Name",
            labelWidth=120,
            valueType=str,
            orientation="horizontal")

        gui.button(select_file_box, self, "...", callback=self.selectFile)

        self.shadow_output = oasysgui.textArea(height=400)

        out_box = oasysgui.widgetBox(tab_out,
                                     "System Output",
                                     addSpace=True,
                                     orientation="horizontal",
                                     height=500)
        out_box.layout().addWidget(self.shadow_output)

        gui.rubber(self.controlArea)

        self.initializeTabs()

        gui.rubber(self.mainArea)

        self.overlay_search.raise_()
 def center(self):
     frameGm = self.frameGeometry()
     screen = QApplication.desktop().screenNumber(QApplication.desktop().cursor().pos())
     centerPoint = QApplication.desktop().screenGeometry(screen).center()
     frameGm.moveCenter(centerPoint)
     self.move(frameGm.topLeft())
Example #47
0
def centerWidgetOnScreen(widget: QWidget):
    geometry = widget.frameGeometry()
    desktopCenter = QApplication.desktop().availableGeometry().center()
    geometry.moveCenter(desktopCenter)
    widget.move(geometry.topLeft())
Example #48
0
    def __init__(self, window):
        super(BrowserView, self).__init__()
        BrowserView.instances[window.uid] = self
        self.uid = window.uid
        self.pywebview_window = window

        self.js_bridge = BrowserView.JSBridge()
        self.js_bridge.window = window

        self.is_fullscreen = False
        self.confirm_close = window.confirm_close
        self.text_select = window.text_select

        self._file_name_semaphore = Semaphore(0)
        self._current_url_semaphore = Semaphore(0)

        self.loaded = window.loaded
        self.shown = window.shown

        self.localization = window.localization

        self._js_results = {}
        self._current_url = None
        self._file_name = None

        self.resize(window.initial_width, window.initial_height)
        self.title = window.title
        self.setWindowTitle(window.title)

        # Set window background color
        self.background_color = QColor()
        self.background_color.setNamedColor(window.background_color)
        palette = self.palette()
        palette.setColor(self.backgroundRole(), self.background_color)
        self.setPalette(palette)

        if not window.resizable:
            self.setFixedSize(window.initial_width, window.initial_height)

        self.setMinimumSize(window.min_size[0], window.min_size[1])

        self.frameless = window.frameless
        self.easy_drag = window.easy_drag
        flags = self.windowFlags()
        if self.frameless:
            flags = flags | QtCore.Qt.FramelessWindowHint

        if window.on_top:
            flags = flags | QtCore.Qt.WindowStaysOnTopHint

        self.setWindowFlags(flags)

        self.transparent = window.transparent
        if self.transparent:
            # Override the background color
            self.background_color = QColor('transparent')
            palette = self.palette()
            palette.setColor(self.backgroundRole(), self.background_color)
            self.setPalette(palette)
            # Enable the transparency hint
            self.setAttribute(QtCore.Qt.WA_TranslucentBackground)

        self.view = BrowserView.WebView(self)

        if is_webengine:
            os.environ['QTWEBENGINE_CHROMIUM_FLAGS'] = (
                '--use-fake-ui-for-media-stream --enable-features=AutoplayIgnoreWebAudio'
            )

        if _debug['mode'] and is_webengine:
            # Initialise Remote debugging (need to be done only once)
            if not BrowserView.inspector_port:
                BrowserView.inspector_port = BrowserView._get_debug_port()
                os.environ[
                    'QTWEBENGINE_REMOTE_DEBUGGING'] = BrowserView.inspector_port
        else:
            self.view.setContextMenuPolicy(
                QtCore.Qt.NoContextMenu)  # disable right click context menu

        self.view.setPage(BrowserView.WebPage(self.view))
        self.view.page().loadFinished.connect(self.on_load_finished)

        self.setCentralWidget(self.view)

        self.create_window_trigger.connect(BrowserView.on_create_window)
        self.load_url_trigger.connect(self.on_load_url)
        self.html_trigger.connect(self.on_load_html)
        self.dialog_trigger.connect(self.on_file_dialog)
        self.destroy_trigger.connect(self.on_destroy_window)
        self.show_trigger.connect(self.on_show_window)
        self.hide_trigger.connect(self.on_hide_window)
        self.fullscreen_trigger.connect(self.on_fullscreen)
        self.window_size_trigger.connect(self.on_window_size)
        self.window_move_trigger.connect(self.on_window_move)
        self.window_minimize_trigger.connect(self.on_window_minimize)
        self.window_restore_trigger.connect(self.on_window_restore)
        self.current_url_trigger.connect(self.on_current_url)
        self.evaluate_js_trigger.connect(self.on_evaluate_js)
        self.set_title_trigger.connect(self.on_set_title)
        self.on_top_trigger.connect(self.on_set_on_top)

        if is_webengine and platform.system() != 'OpenBSD':
            self.channel = QWebChannel(self.view.page())
            self.view.page().setWebChannel(self.channel)

        if window.fullscreen:
            self.toggle_fullscreen()

        if window.real_url is not None:
            self.view.setUrl(QtCore.QUrl(window.real_url))
        elif window.uid == 'web_inspector':
            self.view.setUrl(QtCore.QUrl(window.original_url))
        elif window.html:
            self.view.setHtml(window.html, QtCore.QUrl(''))
        else:
            self.view.setHtml(default_html, QtCore.QUrl(''))

        if window.initial_x is not None and window.initial_y is not None:
            self.move(window.initial_x, window.initial_y)
        else:
            center = QApplication.desktop().availableGeometry().center(
            ) - self.rect().center()
            self.move(center.x(), center.y())

        if not window.minimized:
            self.activateWindow()
            self.raise_()

        self.shown.set()
Example #49
0
    def __init__(self):
        super().__init__()

        geom = QApplication.desktop().availableGeometry()
        self.setGeometry(
            QRect(
                round(geom.width() * 0.05), round(geom.height() * 0.05),
                round(min(geom.width() * 0.98, self.CONTROL_AREA_WIDTH + 10)),
                round(min(geom.height() * 0.95, 100))))

        self.setFixedHeight(200)
        self.setMaximumWidth(self.geometry().width())

        self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH)

        box = oasysgui.widgetBox(self.controlArea,
                                 "SRW Wavefront Setting",
                                 addSpace=False,
                                 orientation="horizontal",
                                 height=100)

        box_1 = oasysgui.widgetBox(box,
                                   "",
                                   addSpace=False,
                                   orientation="vertical",
                                   height=60)
        box_2 = oasysgui.widgetBox(box,
                                   "",
                                   addSpace=False,
                                   orientation="vertical",
                                   height=60)

        oasysgui.lineEdit(box_1,
                          self,
                          "Rx",
                          "Rx",
                          labelWidth=50,
                          valueType=float,
                          orientation="horizontal")
        oasysgui.lineEdit(box_1,
                          self,
                          "dRx",
                          "dRx",
                          labelWidth=50,
                          valueType=float,
                          orientation="horizontal")

        oasysgui.lineEdit(box_2,
                          self,
                          "Ry",
                          "Ry",
                          labelWidth=50,
                          valueType=float,
                          orientation="horizontal")
        oasysgui.lineEdit(box_2,
                          self,
                          "dRy",
                          "dRy",
                          labelWidth=50,
                          valueType=float,
                          orientation="horizontal")

        gui.button(self.controlArea,
                   self,
                   "Convert",
                   callback=self.convert_wavefront,
                   height=45)
Example #50
0
 def screen_size(self):
     screenRect = QApplication.desktop().screenGeometry()
     return [screenRect.width(), screenRect.height()]
Example #51
0
    def initUI(self):
        self.screen_resolution = QApplication.desktop().screenGeometry()
        # self.resize(self.screen_resolution.size())
        # self.move(self.screen_resolution.left(), self.screen_resolution.top())
        self.grid_layout = QGridLayout()

        self.central_widget = QWidget()
        self.central_widget.setLayout(self.grid_layout)
        self.central_widget.setMaximumSize(self.screen_resolution.width() // 4 * 3,
                                           self.screen_resolution.height() // 4 * 3)
        self.setCentralWidget(self.central_widget)

        self.camera_label = QLabel("Camera:")
        self.grid_layout.addWidget(self.camera_label, 0, 0, 1, 1, Qt.AlignmentFlag.AlignHCenter)

        self.webcam_switcher = QComboBox()
        self.detect_webcam_devices(self.webcam_switcher)
        self.grid_layout.addWidget(self.webcam_switcher, 0, 1, 1, 3)

        self.output_picture = QLabel()
        self.grid_layout.addWidget(self.output_picture, 1, 0, 1, 4)

        ### creating right dock
        self.right_dock_layout = QVBoxLayout()

        self.right_dock_widget = QDockWidget()
        self.right_dock_widget.setFeatures(QDockWidget.DockWidgetFeature.DockWidgetMovable | QDockWidget.DockWidgetFeature.DockWidgetFloatable)
        self.right_dock_widget.setMinimumSize(self.screen_resolution.width() // 4, self.screen_resolution.height())
        right_dock = QWidget(self.right_dock_widget)
        right_dock.setMinimumSize(self.screen_resolution.width() // 4, self.screen_resolution.height())
        right_dock.setLayout(self.right_dock_layout)

        template_label = QLabel("Templates")
        template_label.setMinimumSize(50, 25)
        self.right_dock_layout.addWidget(template_label)

        self.filter_template_edit = QLineEdit()
        self.filter_template_edit.setPlaceholderText("Filter (Ctr + Alt + f)")
        template_label.setMinimumSize(90, 25)
        self.filter_template_edit.setStyleSheet(
            "background-image: url(../image_difference/icons/searchIcon.png); background-repeat: no-repeat; background-position: right;")

        self.right_dock_layout.addWidget(self.filter_template_edit)

        self.file_system_model = QFileSystemModel()
        self.file_system_model.setFilter(QDir.Filter.AllDirs | QDir.Filter.NoDotAndDotDot | QDir.Filter.AllEntries)
        self.file_system_model.setRootPath(QDir.currentPath())

        self.directory_tree_view = QTreeView()
        self.directory_tree_view.setModel(self.file_system_model)
        self.directory_tree_view.setMinimumSize(200, 100)
        self.directory_tree_view.hideColumn(1)
        self.directory_tree_view.hideColumn(2)
        self.directory_tree_view.hideColumn(3)
        # self.directory_tree_view.sortByColumn(0)
        self.directory_tree_view.setSortingEnabled(True)
        self.directory_tree_view.doubleClicked.connect(self.load_template)
        self.directory_tree_view.setRootIndex(self.file_system_model.index("../image_difference/"))

        self.right_dock_layout.addWidget(self.directory_tree_view)

        self.load_template_button = QPushButton("Select Template")
        self.load_template_button.setMaximumSize(self.screen_resolution.width() // 4 - 30, 30)
        self.load_template_button.clicked.connect(self.load_template)

        self.right_dock_layout.addWidget(self.load_template_button)

        self.create_template_button = QPushButton("Create Template")
        self.create_template_button.setMaximumSize(self.screen_resolution.width() // 4 - 30, 30)
        self.create_template_button.clicked.connect(self.create_template)

        self.right_dock_layout.addWidget(self.create_template_button)

        self.template_image_widget = QWidget()
        self.template_image_widget.setMinimumSize(self.screen_resolution.width() // 4 - 20,
                                                  self.screen_resolution.width() // 4 - 10)

        self.template_image_back = QLabel(self.template_image_widget)
        self.template_image_back.resize(self.screen_resolution.width() // 4 - 20,
                                        self.screen_resolution.width() // 4 - 10)
        pix = QPixmap(self.template_image_back.size())
        pix.fill(Qt.lightGray)
        rect = QRectF(0.0, 0.0, self.template_image_back.size().width(), self.template_image_back.size().height())
        painter = QPainter()
        painter.begin(pix)
        painter.setRenderHints(QPainter.Antialiasing, True)
        path = QPainterPath()
        path.addRoundedRect(rect, 5.0, 5.0)
        painter.drawPath(path)
        painter.end()
        self.template_image_back.setPixmap(pix)

        self.template_image = QLabel(self.template_image_widget)
        self.template_image.move(5, 5)
        self.template_image.resize(self.screen_resolution.width() // 4 - 30, self.screen_resolution.width() // 4 - 30)

        self.template_image_text = QLabel(self.template_image_widget, text="Current Template")
        self.template_image_text.setStyleSheet("font-weight: bold")
        self.template_image_text.move(self.screen_resolution.width() // 8 - 65, 20)

        self.right_dock_layout.addWidget(self.template_image_widget)

        self.addDockWidget(Qt.DockWidgetArea.RightDockWidgetArea, self.right_dock_widget)

        ### creating bottom dock
        self.bottom_dock_layout = QGridLayout()
        self.bottom_dock_layout.setSpacing(10)

        self.bottom_dock_widget = QDockWidget()
        self.bottom_dock_widget.setMinimumSize(self.screen_resolution.width() // 4 * 3 - 10,
                                               self.screen_resolution.height() // 4 - 10)
        bottom_dock = QWidget(self.bottom_dock_widget)
        bottom_dock.setMinimumSize(self.screen_resolution.width() // 4 * 3 - 20,
                                   self.screen_resolution.height() // 4 - 20)
        bottom_dock.move(10, 10)
        bottom_dock.setLayout(self.bottom_dock_layout)

        settings_label = QLabel("Settings:")
        self.bottom_dock_layout.addWidget(settings_label, 0, 0, 1, 2,
                                          Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignTop)

        countour_tresh_label = QLabel("Countour Tresh:")
        self.bottom_dock_layout.addWidget(countour_tresh_label, 1, 0, 1, 1, Qt.AlignmentFlag.AlignTop)

        self.countour_tresh_slider = QSlider(Qt.Orientation.Horizontal)
        self.countour_tresh_slider.setTickPosition(QSlider.TickPosition.TicksBelow)
        self.countour_tresh_slider.setRange(self._countour_min_tresh, self._countour_max_tresh)
        self.countour_tresh_slider.setValue(2)
        self.bottom_dock_layout.addWidget(self.countour_tresh_slider, 1, 1, 1, 1, Qt.AlignmentFlag.AlignTop)

        transparency_weight_label = QLabel("Transparency:")
        self.bottom_dock_layout.addWidget(transparency_weight_label, 2, 0, 1, 1, Qt.AlignmentFlag.AlignTop)

        self.transparency_weight_slider = QSlider(Qt.Orientation.Horizontal)
        self.transparency_weight_slider.setTickPosition(QSlider.TickPosition.TicksBelow)
        self.transparency_weight_slider.setValue(6)
        self.transparency_weight_slider.setRange(self._transparency_min, self._transparency_max)
        self.bottom_dock_layout.addWidget(self.transparency_weight_slider, 2, 1, 1, 1, Qt.AlignmentFlag.AlignTop)

        countour_gamma_label = QLabel("Countour Gamma:")
        self.bottom_dock_layout.addWidget(countour_gamma_label, 3, 0, 1, 1, Qt.AlignmentFlag.AlignTop)

        self.countour_gamma_slider = QSlider(Qt.Orientation.Horizontal)
        self.countour_gamma_slider.setTickPosition(QSlider.TickPosition.TicksBelow)
        self.countour_gamma_slider.setValue(8)
        self.countour_gamma_slider.setRange(self._countour_gamma_min, self._countour_gamma_max)
        self.bottom_dock_layout.addWidget(self.countour_gamma_slider, 3, 1, 1, 1, Qt.AlignmentFlag.AlignTop)

        ### right side of settings
        countour_color_label = QLabel("Countour Color:")
        self.bottom_dock_layout.addWidget(countour_color_label, 0, 2, 1, 2,
                                          Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignTop)

        r_color_label = QLabel("R:")
        self.bottom_dock_layout.addWidget(r_color_label, 1, 2, 1, 1, Qt.AlignmentFlag.AlignTop)

        self.r_color_slider = QSlider(Qt.Orientation.Horizontal)
        self.r_color_slider.setTickPosition(QSlider.TickPosition.TicksBelow)
        self.r_color_slider.setRange(self._color_min, self._color_max)
        self.r_color_slider.setValue(255)
        self.bottom_dock_layout.addWidget(self.r_color_slider, 1, 3, 1, 1, Qt.AlignmentFlag.AlignTop)

        g_color_label = QLabel("G:")
        self.bottom_dock_layout.addWidget(g_color_label, 2, 2, 1, 1, Qt.AlignmentFlag.AlignTop)

        self.g_color_slider = QSlider(Qt.Orientation.Horizontal)
        self.g_color_slider.setTickPosition(QSlider.TickPosition.TicksBelow)
        self.g_color_slider.setRange(self._color_min, self._color_max)
        self.bottom_dock_layout.addWidget(self.g_color_slider, 2, 3, 1, 1, Qt.AlignmentFlag.AlignTop)

        b_color_label = QLabel("B:")
        self.bottom_dock_layout.addWidget(b_color_label, 3, 2, 1, 1, Qt.AlignmentFlag.AlignTop)

        self.b_color_slider = QSlider(Qt.Orientation.Horizontal)
        self.b_color_slider.setTickPosition(QSlider.TickPosition.TicksBelow)
        self.b_color_slider.setRange(self._color_min, self._color_max)
        self.bottom_dock_layout.addWidget(self.b_color_slider, 3, 3, 1, 1, Qt.AlignmentFlag.AlignTop)

        self.addDockWidget(Qt.DockWidgetArea.BottomDockWidgetArea, self.bottom_dock_widget)

        self.setCorner(Qt.Corner.BottomRightCorner, Qt.DockWidgetArea.RightDockWidgetArea)
Example #52
0
# coding=utf-8

from PyQt5.QtCore import QTranslator
from PyQt5.QtWidgets import QApplication
from mainwindow import MainWindow
import sys, os, sip

reload(sys)
sys.setdefaultencoding('utf-8')

if __name__ == '__main__':

    app = QApplication([])

    dwidth = app.desktop().width()
    dheight = app.desktop().height()

    translator = QTranslator()
    translator.load("qm/qt_zh_CN.qm")
    app.installTranslator(translator)

    print "mainwindow"
    mainwindow = MainWindow()
    mainwindow.setFixedSize(dwidth, dheight)
    mainwindow.setObjectName("MainWindow")
    mainwindow.show()

    app.exec_()
Example #53
0
    def __init__(self, client, logger):

        super(ObserverWindow, self).__init__()

        self._connectionState = None

        self._countUntitledDisplay = 0
        self._displays = []
        self._session = 'Default session'
        self._host = 'localhost'
        self._port = 1883
        self._rootTopic = ''
        self._logger = logger

        self._logger.info(self.tr("Started"))

        reg = QSettings()

        if "current session" in reg.childKeys() and reg.value(
                "current session", '').strip() and reg.value(
                    "current session", '').strip() in reg.childGroups():
            self._session = reg.value("current session")

        self._logger.info(self.tr("Current session : ") + self._session)

        if self._session not in reg.childGroups():
            reg.beginGroup(self._session)
            reg.setValue("host", self._host)
            reg.setValue("port", self._port)
            reg.setValue("root topic", self._rootTopic)
            reg.endGroup()
        else:
            reg.beginGroup(self._session)
            self._host = reg.value("host", 'localhost')
            try:
                self._port = reg.value("port", 1883, type=int)
            except:
                pass
            self._rootTopic = reg.value("root topic", '')
            reg.endGroup()

        if "current session" in reg.childKeys() and not reg.value(
                "current session", '') in reg.childGroups():
            reg.remove("current session")

        self._mqttSwitchingConnection = False

        self._mqttClient = client
        self._mqttServerHost = self._host
        self._mqttServerPort = self._port
        self._mqttRootTopic = self._rootTopic
        self._mqttSubTopic = '#'

        if self._rootTopic:
            self._mqttSubTopic = self._rootTopic + '/#'

        QApplication.desktop().screenCountChanged.connect(self.restoreWindow)
        QApplication.desktop().resized.connect(self.restoreWindow)

        self.setWindowTitle(self._session)
        self.setWindowIcon(QIcon(':/view-eye.svg'))

        self._tabWidget = QTabWidget()
        self._cloudLabel = QLabel()
        self._connectionStateLabel = QLabel()

        self.builUi()

        reg.beginGroup(self._session)
        inbox = reg.value("param inbox", 'inbox')
        outbox = reg.value("param outbox", 'outbox')
        regexInbox = reg.value("regex inbox",
                               r'^%ROOT%/(?P<correspondent>.+)/%INBOX%$')
        regexOutbox = reg.value("regex outbox",
                                r'^%ROOT%/(?P<correspondent>.+)/%OUTBOX%$')
        regexDefault = reg.value("regex default",
                                 r'.*/(?P<correspondent>[^/]+)/[^/]+$')
        reg.endGroup()

        regexInbox = regexInbox.replace("%ROOT%", self._rootTopic).replace(
            "%INBOX%", inbox)
        regexOutbox = regexOutbox.replace("%ROOT%", self._rootTopic).replace(
            "%OUTBOX%", outbox)

        self._topicRegexInbox = None
        try:
            self._topicRegexInbox = re.compile(regexInbox)
        except Exception as e:
            self._logger.error(self.tr("Failed to compile inbox regex"))
            self._logger.debug(e)

        self._topicRegexOutbox = None
        try:
            self._topicRegexOutbox = re.compile(regexOutbox)
        except Exception as e:
            self._logger.error(self.tr("Failed to compile outbox regex"))
            self._logger.debug(e)

        self._topicRegexDefault = None
        try:
            self._topicRegexDefault = re.compile(regexDefault)
        except Exception as e:
            self._logger.error(
                self.tr("Failed to compile topic default regex"))
            self._logger.debug(e)

        self.addDisplay(self.tr("All messsages"))

        reg.beginGroup(self._session)
        for i in reg.childGroups():
            self.addDisplay(i)
        reg.endGroup()

        self.changeConnectionState(ConnectionState.DISCONNECTED)

        self._logger.info("{0} : {1}".format(self.tr("MQTT server host"),
                                             self._mqttServerHost))
        self._logger.info("{0} : {1}".format(self.tr("MQTT server port"),
                                             self._mqttServerPort))
        self._logger.info("{0} : {1}".format(
            self.tr("MQTT clientid"),
            self._mqttClient._client_id.decode("latin1")))

        Timer(0, self.layoutLoadSettings).start()
        Timer(0, self.start).start()
from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtWidgets import *
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.Qt import QButtonGroup
from PyQt5.Qt import QListView
from PyQt5.Qt import QSplashScreen, QDateTime
import multiprocessing
import matplotlib

from Mainwindow import MainWindow
import sys

matplotlib.use("Qt5Agg")  # 声明使用QT5

if __name__ == '__main__':
    # 解决多线程无限自启问题
    multiprocessing.freeze_support()

    app = QtWidgets.QApplication(sys.argv)

    MainWindow = MainWindow()

    MainWindow.show()
    MainWindow.move(
        int((QApplication.desktop().width() - MainWindow.width()) / 2),
        int((QApplication.desktop().height() - MainWindow.height()) / 2 - 50))
    sys.exit(app.exec_())
Example #55
0
 def common_init_ui(self):
     self.setWindowTitle('Common Main Window - Sleepy')
     self.statusBar().showMessage('Ready')
     # self.showFullScreen()
     self.resize(1280, 800)
     self.move(QApplication.desktop().screen().rect().center() - self.rect().center())
Example #56
0
 def center(self):
     main_window = self.frameGeometry()
     center_point = QApplication.desktop().availableGeometry().center()
     main_window.moveCenter(center_point)
     self.move(main_window.topLeft())
Example #57
0
if __name__ == "__main__":

    import sys
    from PyQt5.QtWidgets import QApplication, QGraphicsScene, QGraphicsView

    app = QApplication(sys.argv)
    rs = QRectF(0, 0, 100, 100)
    ro = QRectF(-1, -1, 3, 2)
    s = QGraphicsScene(rs)
    v = QGraphicsView(s)
    v.setGeometry(20, 20, 600, 600)
    v._origin_u = True
    v._origin_l = True

    print('screenGeometry():', app.desktop().screenGeometry())
    print('scene rect=', s.sceneRect())

    v.fitInView(rs, Qt.KeepAspectRatio) # Qt.IgnoreAspectRatio Qt.KeepAspectRatioByExpanding Qt.KeepAspectRatio

    s.addRect(rs, pen=QPen(Qt.black, 0, Qt.SolidLine), brush=QBrush(Qt.yellow))
    s.addRect(ro, pen=QPen(Qt.black, 0, Qt.SolidLine), brush=QBrush(Qt.red))

    ruler1 = FWRuler(v, 'L')
    ruler2 = FWRuler(v, 'D')
    ruler3 = FWRuler(v, 'U')
    ruler4 = FWRuler(v, 'R')

    v.setWindowTitle("My window")
    v.setContentsMargins(0,0,0,0)
    v.show()
Example #58
0
    def __init__(self, window):
        super(BrowserView, self).__init__()
        BrowserView.instances[window.uid] = self
        self.uid = window.uid
        self.pywebview_window = window

        self.js_bridge = BrowserView.JSBridge()
        self.js_bridge.window = window

        self.is_fullscreen = False
        self.confirm_close = window.confirm_close
        self.text_select = window.text_select

        self._file_name_semaphore = Semaphore(0)
        self._current_url_semaphore = Semaphore(0)

        self.loaded = window.loaded
        self.shown = window.shown

        self._js_results = {}
        self._current_url = None
        self._file_name = None

        self.resize(window.width, window.height)
        self.title = window.title
        self.setWindowTitle(window.title)

        # Set window background color
        self.background_color = QColor()
        self.background_color.setNamedColor(window.background_color)
        palette = self.palette()
        palette.setColor(self.backgroundRole(), self.background_color)
        self.setPalette(palette)

        if not window.resizable:
            self.setFixedSize(window.width, window.height)

        self.setMinimumSize(window.min_size[0], window.min_size[1])

        self.frameless = window.frameless
        if self.frameless:
            self.setWindowFlags(QtCore.Qt.Window
                                | QtCore.Qt.FramelessWindowHint)

        self.view = BrowserView.WebView(self)

        if _debug and is_webengine:
            # Initialise Remote debugging (need to be done only once)
            if not BrowserView.inspector_port:
                BrowserView.inspector_port = BrowserView._get_free_port()
                os.environ[
                    'QTWEBENGINE_REMOTE_DEBUGGING'] = BrowserView.inspector_port
        else:
            self.view.setContextMenuPolicy(
                QtCore.Qt.NoContextMenu)  # disable right click context menu

        self.view.setPage(BrowserView.WebPage(self.view))
        self.view.page().loadFinished.connect(self.on_load_finished)

        self.setCentralWidget(self.view)

        self.create_window_trigger.connect(BrowserView.on_create_window)
        self.load_url_trigger.connect(self.on_load_url)
        self.html_trigger.connect(self.on_load_html)
        self.dialog_trigger.connect(self.on_file_dialog)
        self.destroy_trigger.connect(self.on_destroy_window)
        self.show_trigger.connect(self.on_show_window)
        self.hide_trigger.connect(self.on_hide_window)
        self.fullscreen_trigger.connect(self.on_fullscreen)
        self.window_size_trigger.connect(self.on_window_size)
        self.window_move_trigger.connect(self.on_window_move)
        self.window_minimize_trigger.connect(self.on_window_minimize)
        self.window_restore_trigger.connect(self.on_window_restore)
        self.current_url_trigger.connect(self.on_current_url)
        self.evaluate_js_trigger.connect(self.on_evaluate_js)
        self.set_title_trigger.connect(self.on_set_title)

        if is_webengine and platform.system() != 'OpenBSD':
            self.channel = QWebChannel(self.view.page())
            self.view.page().setWebChannel(self.channel)

        if window.fullscreen:
            self.toggle_fullscreen()

        if window.url is not None:
            self.view.setUrl(QtCore.QUrl(window.url))
        elif window.html:
            self.view.setHtml(window.html, QtCore.QUrl(''))
        else:
            self.view.setHtml(default_html, QtCore.QUrl(''))

        if window.x is not None and window.y is not None:
            self.move(window.x, window.y)
        else:
            center = QApplication.desktop().availableGeometry().center(
            ) - self.rect().center()
            self.move(center.x(), center.y())

        if not window.minimized:
            self.activateWindow()
            self.raise_()

        self.shown.set()
Example #59
0
    def initUI(self):

        deffont = QFont('Segoe UI')
        self.setFont(deffont)
        self.setGeometry(self.left, self.top, self.width, self.height)
        qtRectangle = self.frameGeometry()
        screen = QApplication.desktop().screenNumber(
            QApplication.desktop().cursor().pos())
        centerPoint = QApplication.desktop().screenGeometry(screen).center()
        qtRectangle.moveCenter(centerPoint)
        self.move(qtRectangle.topLeft())

        self.setWindowTitle(self.title)

        gridlayout = QGridLayout()
        gridlayout.setSpacing(5)

        self.headerlabel = QLabel(
            'Select a QC Table file produced/exported by HyPro, not the QC summary!',
            self)

        self.filepathline = QLineEdit('', self)
        self.filepathline.setReadOnly(True)

        self.browsebutton = QPushButton('Browse...', self)
        self.browsebutton.setFont(deffont)
        self.browsebutton.clicked.connect(self.browsepath)

        self.nutrientlabel = QLabel('Select Nutrient:', self)
        self.nutrientlabel.setFont(deffont)

        self.nutrientdropdown = QComboBox(self)
        self.nutrientdropdown.setFont(deffont)
        self.nutrientdropdown.activated.connect(self.populatedatatypes)

        self.datatypelabel = QLabel('Select data to look at:')
        self.datatypelabel.setFont(deffont)

        self.datatypedropdown = QComboBox(self)
        self.datatypedropdown.setFont(deffont)

        self.loadstats = QPushButton('Load Stats', self)
        self.loadstats.setFont(deffont)
        self.loadstats.clicked.connect(self.loadstatsmethod)

        self.saveall = QPushButton('Save data', self)
        self.saveall.setFont(deffont)
        self.saveall.clicked.connect(self.saveallmethod)

        self.loadplot = QPushButton('Load Plot', self)
        self.loadplot.setFont(deffont)
        self.loadplot.clicked.connect(self.loadplotmethod)

        self.loadtable = QPushButton('Load Table', self)
        self.loadtable.setFont(deffont)
        self.loadtable.clicked.connect(self.loadtablemethod)

        self.minvallabel = QLabel('Minimum:', self)
        self.minvallabel.setFont(deffont)

        self.minval = QLineEdit('', self)
        self.minval.setFont(deffont)
        self.minval.setReadOnly(True)

        self.maxvallabel = QLabel('Maximum:', self)
        self.maxvallabel.setFont(deffont)

        self.maxval = QLineEdit('', self)
        self.maxval.setFont(deffont)
        self.maxval.setReadOnly(True)

        self.meanlabel = QLabel('Average:', self)
        self.meanlabel.setFont(deffont)

        self.meanval = QLineEdit('', self)
        self.meanval.setFont(deffont)
        self.meanval.setReadOnly(True)

        self.medianlabel = QLabel('Median:', self)
        self.medianlabel.setFont(deffont)

        self.medianval = QLineEdit('', self)
        self.medianval.setFont(deffont)
        self.medianval.setReadOnly(True)

        self.stdevlabel = QLabel('Overall Standard Dev:', self)
        self.stdevlabel.setFont(deffont)

        self.stdevval = QLineEdit('', self)
        self.stdevval.setFont(deffont)
        self.stdevval.setReadOnly(True)

        self.intrastdevlabel = QLabel('Inter-run Standard Dev Mean:', self)
        self.stdevlabel.setFont(deffont)

        self.minstdevlabel = QLabel('Min Stdev:', self)
        self.minstdevlabel.setFont(deffont)

        self.minstdev = QLineEdit('', self)
        self.minstdev.setFont(deffont)
        self.minstdev.setReadOnly(True)

        self.maxstdevlabel = QLabel('Max Stdev:', self)
        self.maxstdevlabel.setFont(deffont)

        self.maxstdev = QLineEdit('', self)
        self.maxstdev.setFont(deffont)
        self.maxstdev.setReadOnly(True)

        self.meanstdevlabel = QLabel('Mean Stdev:', self)
        self.meanstdevlabel.setFont(deffont)

        self.meanstdev = QLineEdit('', self)
        self.meanstdev.setFont(deffont)
        self.meanstdev.setReadOnly(True)

        self.medianstdevlabel = QLabel('Median Stdev:', self)
        self.medianstdevlabel.setFont(deffont)

        self.medianstdev = QLineEdit('', self)
        self.medianstdev.setFont(deffont)
        self.medianstdev.setReadOnly(True)

        self.intrastdevval = QLineEdit('', self)
        self.intrastdevval.setFont(deffont)

        linesep1 = QFrame()
        linesep1.setFrameShape(QFrame.HLine)
        linesep1.setFrameShadow(QFrame.Sunken)

        linesep2 = QFrame()
        linesep2.setFrameShape(QFrame.HLine)
        linesep2.setFrameShadow(QFrame.Sunken)

        gridlayout.addWidget(self.headerlabel, 0, 0, 1, 3)
        gridlayout.addWidget(self.filepathline, 1, 0, 1, 4)
        gridlayout.addWidget(self.browsebutton, 1, 4, 1, 1)
        gridlayout.addWidget(self.nutrientlabel, 3, 0)
        gridlayout.addWidget(self.nutrientdropdown, 3, 1)
        gridlayout.addWidget(self.loadstats, 3, 4, 1, 1)
        gridlayout.addWidget(self.saveall, 12, 3, 1, 1)
        gridlayout.addWidget(self.loadplot, 12, 1, 1, 1)
        gridlayout.addWidget(self.loadtable, 12, 2, 1, 1)

        gridlayout.addWidget(self.datatypelabel, 3, 2)
        gridlayout.addWidget(self.datatypedropdown, 3, 3)

        gridlayout.addWidget(self.minvallabel, 6, 0)
        gridlayout.addWidget(self.minval, 7, 0)

        gridlayout.addWidget(self.maxvallabel, 6, 1)
        gridlayout.addWidget(self.maxval, 7, 1)

        gridlayout.addWidget(self.medianlabel, 6, 2)
        gridlayout.addWidget(self.medianval, 7, 2)

        gridlayout.addWidget(self.meanlabel, 6, 3)
        gridlayout.addWidget(self.meanval, 7, 3)

        gridlayout.addWidget(self.stdevlabel, 6, 4)
        gridlayout.addWidget(self.stdevval, 7, 4)

        gridlayout.addWidget(self.intrastdevlabel, 8, 4)
        gridlayout.addWidget(self.intrastdevval, 9, 4)

        gridlayout.addWidget(self.minstdevlabel, 8, 0)
        gridlayout.addWidget(self.minstdev, 9, 0)

        gridlayout.addWidget(self.maxstdevlabel, 8, 1)
        gridlayout.addWidget(self.maxstdev, 9, 1)

        gridlayout.addWidget(self.meanstdevlabel, 8, 3)
        gridlayout.addWidget(self.meanstdev, 9, 3)

        gridlayout.addWidget(self.medianstdevlabel, 8, 2)
        gridlayout.addWidget(self.medianstdev, 9, 2)

        gridlayout.addWidget(linesep1, 2, 0, 1, 6)

        gridlayout.addWidget(linesep2, 11, 0, 1, 6)

        self.centralWidget().setLayout(gridlayout)

        self.show()
Example #60
0
            rotateangle=stream.readFloat()
            px=self.createPixmapItem(pixmap, position, matrix)
            px.setRotation(rotateangle)


    def writeItemToStream(self, stream, item):
        if isinstance(item, TextItem):
            stream.writeQString("Text")
            stream<<item.pos()<< item.transform() 
            stream.writeQString(item.toPlainText())
            stream<< item.font()
            stream.writeFloat(item.rotation())#add by yangrongdong
        elif isinstance(item, GraphicsPixmapItem):
            stream.writeQString("Pixmap")
            stream << item.pos() << item.transform() << item.pixmap()
            stream.writeFloat(item.rotation())#add by yangrongdong
        elif isinstance(item, BoxItem):
            stream.writeQString("Box")
            stream<< item.pos() << item.transform() << item.rect
            stream.writeInt16(item.style)
            stream.writeFloat(item.rotation())#add by yangrongdong



app = QApplication(sys.argv)
form = MainForm()
rect = QApplication.desktop().availableGeometry()
form.resize(int(rect.width() * 0.6), int(rect.height() * 0.9))
form.show()
app.exec_()