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)
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
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())
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()))
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()
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())
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_())
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()
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)
def __init__(self): self.debug = 1 self.app = QApplication([]) self.desktop = QApplication.desktop() self.web = QWebView() self.icon = QIcon(ICON) QWebSettings.setIconDatabasePath(DATA_DIR)
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)
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;")
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)
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)
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())
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)
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
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()
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)
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)
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)
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()))
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()
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)
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()
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)
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()
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()
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()
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=[])
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)
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_())
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)
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())
def centerWidgetOnScreen(widget: QWidget): geometry = widget.frameGeometry() desktopCenter = QApplication.desktop().availableGeometry().center() geometry.moveCenter(desktopCenter) widget.move(geometry.topLeft())
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()
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)
def screen_size(self): screenRect = QApplication.desktop().screenGeometry() return [screenRect.width(), screenRect.height()]
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)
# 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_()
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_())
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())
def center(self): main_window = self.frameGeometry() center_point = QApplication.desktop().availableGeometry().center() main_window.moveCenter(center_point) self.move(main_window.topLeft())
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()
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()
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()
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_()