def __init__(self, title): super().__init__() self.setWindowTitle(title) QToolTip.setFont(QFont('SansSerif', 10)) self.setGeometry(400, 400, 300, 200) self.build_buttons() self.show()
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip('This is a <b>QWidget</b> widget.') exitAction = QAction(QIcon('application-exit-4.png'), '&Exit', self) exitAction.setShortcut('Alt+F4') exitAction.setStatusTip('Exit Application') exitAction.triggered.connect(qApp.quit) menuBar = self.menuBar() fileMenu = menuBar.addMenu('&File') fileMenu.addAction(exitAction) self.toolbar = self.addToolBar('Exit') self.toolbar.addAction(exitAction) grid = QGridLayout() lbl_1 = QLabel('1,1') lbl_2 = QLabel('1,2') lbl_3 = QLabel('2,1') lbl_4 = QLabel('2,2') grid.addWidget(lbl_1, 1, 1) grid.addWidget(lbl_2, 1, 2) grid.addWidget(lbl_3, 2, 1) grid.addWidget(lbl_4, 2, 2) mainW = QWidget() mainW.setLayout(grid) self.setCentralWidget(mainW) self.statusBar().showMessage('Ready') self.setGeometry(300, 300, 500, 500) self.setWindowTitle('Photos') self.setWindowIcon(QIcon('camera-photo-5.png')) self.center() self.show()
def gui_choise_server_client(self): self.hide_last_objects() QToolTip.setFont(QFont('SansSerif', 10)) btn_server = QPushButton('Server', self) btn_server.clicked.connect(self.server_set_socket_settings_gui) # from server.ServerMixin TODO аналогично btn_server.resize(btn_server.sizeHint()) btn_server.move(50, 50) btn_client = QPushButton('Client', self) btn_client.clicked.connect(self.client_set_socket_settings_gui) # from client.ClientMixin btn_client.resize(btn_client.sizeHint()) btn_client.move(150, 50) btn_exit = QPushButton('Quit', self) btn_exit.clicked.connect(QCoreApplication.instance().quit) btn_exit.resize(btn_exit.sizeHint()) btn_exit.move(200, 170) self.setGeometry(450, 300, 300, 200) self.setWindowTitle('Client_Server') self.show() self.objects_to_hide = (btn_exit, btn_client, btn_server) self.show_current_objects()
def mouseMoveEvent(self, event): position = self.mapFromGlobal(event.globalPos()) key = (position.y() // self.cellSize) * self.columns + position.x() // self.cellSize text = '<p>Character: <span style="font-size: 24pt; font-family: %s">%s</span><p>code: %d' % ( self.displayFont.family(), self._chr(key), key+32) QToolTip.showText(event.globalPos(), text, self)
def initUI(self): """On definit une methode pour definir la fenetre graphique""" #On definit la police et la taille du texte dans les bulles d'aide QToolTip.setFont(QFont('SansSerif', 10)) #On definit le texte a afficher lors du passage sur la fenetre self.setToolTip("Exemple de creation d'une <b>bulle</b> d'aide pour la fenetre") #Creation d'un bouton btn = QPushButton('Bouton', self) #On met en place une bulle d'aide btn.setToolTip("Voici un bouton inutile !") #On redefinit la taille sur le texte, ici on applique une taille recommandée btn.resize(btn.sizeHint()) btn.move(50, 50) #Creation du bouton pour quitter la fenetre qbtn = QPushButton('Quit', self) #On connecte une action au clique qbtn.clicked.connect(QCoreApplication.instance().quit) #On met en place une bulle d'aide btn.setToolTip("Ce bouton sert à quitter la fenetre !") qbtn.resize(qbtn.sizeHint()) #Positionnement du bouton qbtn.move(150, 150) #Definition des attributs de la fenetre self.setGeometry(300, 300, 300, 220) self.setWindowTitle('PC2') self.setWindowIcon(QIcon('PC2.png'))
def verifier_feuille(self, eq1, eq2): print(eq1, eq2) for nom, eq in (('d1', eq1), ('d2', eq2)): if nom in self.feuille_actuelle.objets.noms: d = self.feuille_actuelle.objets[nom] d.label(mode='nom') champ = self.feuille_actuelle.objets['champcache_' + nom] M, N = d M = (int(M.x), int(M.y)) N = (int(N.x), int(N.y)) if self.eq_reduite(M, N) == eq: d.style(couleur='g') champ.texte = 'ok' msg = 'La droite %s est correcte.' % nom if nom == 'd1': msg += ' Construisez maintenant d2.' else: print(self.eq_reduite(*d), eq) d.style(couleur='r') # On peut mettre n'importe quoi différent de ok dans # champ, l'idée étant que si la droite est fausse mais # n'a pas changé, on ne perde pas de point, et par # contre on perde des points en cas de changement si # c'est toujours faux. champ.texte = str(d.equation) msg = "Attention, la droite %s est fausse." % nom QToolTip.showText(QCursor.pos(), msg) self.canvas.message(msg, temporaire=False)
def mouseMoveEvent(self, event): cursor = self._neditor.cursorForPosition(event.pos()) line = cursor.blockNumber() bookmarks = self._bookmark_manager.bookmarks(self._neditor.file_path) for book in bookmarks: if book.lineno == line and book.note: QToolTip.showText(self.mapToGlobal(event.pos()), book.note)
def moved(self, pos): with self.lock: fee_rate = self.config.dynfee(pos) if self.dyn else self.config.static_fee(pos) tooltip = self.get_tooltip(pos, fee_rate) QToolTip.showText(QCursor.pos(), tooltip, self) self.setToolTip(tooltip) self.callback(self.dyn, pos, fee_rate)
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) btNewChecklist = QPushButton('Criar', self) btNewChecklist.clicked.connect(self.salvarChecklist) nomeLabel = QLabel('Nome') self._nome = QLineEdit() grid = QGridLayout() grid.setSpacing(10) grid.addWidget(nomeLabel, 1, 0) grid.addWidget(self._nome, 1, 1) grid.addWidget(btNewChecklist, 3, 1) self.setLayout(grid) self.setGeometry(300, 300, 350, 300) self.center() self.setWindowTitle('CheckList') self.show()
def event(self, ev): if ev.type() == QEvent.ToolTip: if self._showToolTips: c = self.charcodeAt(ev.pos()) if c: text = self.getToolTipText(c) if text: rect = self.charcodeRect(c) QToolTip.showText(ev.globalPos(), text, self, rect) ev.accept() return True elif ev.type() == QEvent.QueryWhatsThis: if self._showWhatsThis: ev.accept() return True elif ev.type() == QEvent.WhatsThis: ev.accept() if self._showWhatsThis: c = self.charcodeAt(ev.pos()) text = self.getWhatsThisText(c) if c else None if text: QWhatsThis.showText(ev.globalPos(), text, self) else: QWhatsThis.leaveWhatsThisMode() return True return super(CharMap, self).event(ev)
def mouseMoveEvent(self, event): super().mouseMoveEvent(event) # tooltip_position = event.globalPos() - QPoint(event.pos().x(), 0) from_line = self._neditor.first_visible_block().blockNumber() + 1 to_line = self._neditor.last_visible_block().blockNumber() text = "<center>%d<br/>—<br/>%d</center>" QToolTip.showText(self._tooltip_pos, text % (from_line, to_line))
def __init__(self,parent=None): QWidget.__init__(self, parent) self.setGeometry(300,300,250,150) self.setWindowTitle('Tooltip') self.setToolTip('This is a <b> QWidget </b>widget') QToolTip.setFont(QFont('oldEnglish',10))
def execute_queries(self, query=''): """ This function executes queries """ # Hide tooltip if visible if QToolTip.isVisible(): QToolTip.hideText() # If text is selected, then this text is the query, # otherwise the query is all text that has the editor editor_widget = self.currentWidget().get_editor() if editor_widget.textCursor().hasSelection(): query = editor_widget.textCursor().selectedText() else: query = editor_widget.toPlainText() relations = self.currentWidget().relations central = Pireal.get_service("central") table_widget = central.get_active_db().table_widget # Restore relations.clear() self.currentWidget().clear_results() # Parse query sc = scanner.Scanner(query) lex = lexer.Lexer(sc) try: par = parser.Parser(lex) interpreter = parser.Interpreter(par) interpreter.clear() interpreter.to_python() except Exception as reason: pireal = Pireal.get_service("pireal") pireal.show_error_message(self.parse_error(reason.__str__())) return relations.update(table_widget.relations) for relation_name, expression in list(interpreter.SCOPE.items()): if relation_name in relations: QMessageBox.critical(self, self.tr("Query Error"), self.tr("<b>{}</b> is a duplicate " "relation name.<br><br> " "Please choose a unique name " "and re-execute the " "queries.".format( relation_name))) del interpreter.SCOPE[relation_name] return try: new_relation = eval(expression, {}, relations) except Exception as reason: pireal = Pireal.get_service("pireal") pireal.show_error_message(self.parse_error(reason.__str__()), syntax_error=False) return relations[relation_name] = new_relation self.__add_table(new_relation, relation_name)
def mousePressEvent(self, event): super().mousePressEvent(event) if event.button() == Qt.LeftButton: self._tooltip_pos = event.globalPos() - QPoint(event.pos().x(), 0) from_line = self._neditor.first_visible_block().blockNumber() + 1 to_line = self._neditor.last_visible_block().blockNumber() text = "<center>%d<br/>—<br/>%d</center>" QToolTip.showText(self._tooltip_pos, text % (from_line, to_line))
def event(self, ev): if ev.type() == QEvent.ToolTip: text = self.defaultAction().text() key = self.key() if key: text = _("{name} ({key})").format(name=text, key=key) QToolTip.showText(ev.globalPos(), text) return True return super(Button, self).event(ev)
def mouseMoveEvent(self, event): blockNumber = self._qpart.cursorForPosition(event.pos()).blockNumber() if blockNumber in self._qpart._lintMarks: msgType, msgText = self._qpart._lintMarks[blockNumber] QToolTip.showText(event.globalPos(), msgText) else: QToolTip.hideText() return QWidget.mouseMoveEvent(self, event)
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip('This is a <b>QWidget</b> widget.') #quitBtn = QPushButton('Quit', self) #quitBtn.clicked.connect(self.quitBtnEvent()) #quitBtn.clicked.connect(QCoreApplication.instance().quit) #quitBtn.setToolTip('This is a <b>QPushButton</b> widget.') #quitBtn.resize(quitBtn.sizeHint()) exitAction = QAction(QIcon('application-exit-4.png'), '&Exit', self) exitAction.setShortcut('Alt+F4') exitAction.setStatusTip('Exit Application') exitAction.triggered.connect(qApp.quit) menuBar = QMenuBar() fileMenu = menuBar.addMenu('&File') fileMenu.addAction(exitAction) fileMenu.resize(fileMenu.sizeHint()) toolBar = QToolBar(self) toolBar.addAction(exitAction) #toolBar.resize(toolBar.sizeHint()) toolBar.setFixedHeight(60) hozLine = QFrame() hozLine.setFrameStyle(QFrame.HLine) #hozLine.setSizePolicy(QSizePolicy.Minimum,QSizePolicy.Expanding) statusBar = QStatusBar(self) statusBar.showMessage('Ready') grid = QGridLayout() lbl_1 = QLabel('1,1') lbl_2 = QLabel('1,2') lbl_3 = QLabel('2,1') lbl_4 = QLabel('2,2') grid.addWidget(lbl_1, 1, 1) grid.addWidget(lbl_2, 1, 2) grid.addWidget(lbl_3, 2, 1) grid.addWidget(lbl_4, 2, 2) vbox = QVBoxLayout() vbox.addWidget(menuBar) vbox.addWidget(hozLine) vbox.addWidget(toolBar) # vbox.addWidget(hozLine) vbox.addLayout(grid) vbox.addStretch(1) vbox.addWidget(statusBar) self.setLayout(vbox) self.setGeometry(300, 300, 500, 500) self.setWindowTitle('Photos') self.setWindowIcon(QIcon('camera-photo-5.png')) self.center() self.show()
def event(self, e): action = self.activeAction() if e.type() == QEvent.ToolTip and \ action and \ action.toolTip() != action.text(): QToolTip.showText(e.globalPos(), self.activeAction().toolTip()) else: QToolTip.hideText() return super(Menu, self).event(e)
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip('This is my widget') btn = QPushButton('Push me', self) btn.setToolTip('This is a button') btn.resize(btn.sizeHint()) btn.move(50, 50) self.setGeometry(300, 300, 300, 300) self.setWindowTitle('Tooltip test') self.show()
def linkHelpEvent(self, globalPos, page, link): """Called when a QHelpEvent occurs on a link. The default implementation shows a tooltip if showUrls() is True, and emits the linkHelpRequested() signal. """ if self._showUrlTips and isinstance(link, popplerqt5.Poppler.LinkBrowse): QToolTip.showText(globalPos, link.url(), self, page.linkRect(link.linkArea())) self.linkHelpRequested.emit(globalPos, page, link)
def mouseMoveEvent(self, event): if not self.cross: mouse_x = event.pos().x() mouse_y = event.pos().y() self.mouse_pos = event.pos() if self.img != None: rgb = QColor(self.img.pixel(self.mouse_pos)) text = "XY[" + str(mouse_x) + "," + str(mouse_y)+ "] RGB(" + str(rgb.red()) + "," + str(rgb.green()) + "," + str(rgb.blue()) + ")" QToolTip.showText(QPoint(QCursor.pos()), text) self.repaint()
def moved(self, pos): with self.lock: if self.dyn: fee_rate = self.config.depth_to_fee(pos) if self.config.use_mempool_fees() else self.config.eta_to_fee(pos) else: fee_rate = self.config.static_fee(pos) tooltip = self.get_tooltip(pos, fee_rate) QToolTip.showText(QCursor.pos(), tooltip, self) self.setToolTip(tooltip) self.callback(self.dyn, pos, fee_rate)
def initUI(self): QToolTip.setFont(QFont('SansSerif',10)) self.setToolTip('This is a <b>widget</b>') btn=QPushButton('push',self) btn.setToolTip('press and push') btn.resize(btn.sizeHint()) btn.move(40,50) self.setGeometry(200,300,400,500) self.setWindowTitle('setToolTip') self.show()
def mouseMoveEvent(self, event): if not self.__checkers: return line = self._editor.line_from_position(event.pos().y()) for checker in self.__checkers: obj, _, _ = checker message = obj.message(line) if message is not None: # Formatting text text = "<div style='color: green'>Lint</div><hr>%s" % message QToolTip.showText(self.mapToGlobal(event.pos()), text, self)
def initUI(self): QToolTip.setFont(QFont('SanSerif', 10)) self.setToolTip('This is a <b>QWidget</b> widget') btn = QPushButton('Button', self) btn.setToolTip('This is a <b>QPushButton</b> widget') btn.resize(btn.sizeHint()) btn.move(50, 50) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Tooltips') self.show()
def initUI(self): """Draw the UI.""" QToolTip.setFont(QFont('SansSerif', 12)) grid = QGridLayout() self.setLayout(grid) lbl_source = QLabel('Source:', self) lbl_source.setAlignment(Qt.AlignCenter) lbl_destination = QLabel('Destination:', self) lbl_destination.setAlignment(Qt.AlignCenter) self.cmb_source = QComboBox(self) self.populate_cmb_source() self.cmb_source.activated.connect(self.source_activated) self.cmb_source.setToolTip("Select either a source USB device " "or a source 'nb' backup directory") self.cmb_destination = QComboBox(self) self.populate_cmb_destination() self.cmb_destination.activated.connect(self.destination_activated) self.cmb_destination.setToolTip('Select a destination USB device') self.lbl_status = QLabel('', self) self.lbl_status.setAlignment(Qt.AlignLeft) self.btn_copy = QPushButton('Copy', self) # self.btn_copy.setFixedWidth(80) self.btn_copy.setFixedWidth(self.btn_copy.width()) self.btn_copy.clicked.connect(self.start_copy) self.btn_copy.setEnabled(False) hbox = QHBoxLayout() hbox.addWidget(self.lbl_status, Qt.AlignLeft) hbox.addStretch(1) hbox.addWidget(self.btn_copy, Qt.AlignRight) hbox.maximumSize() grid.addWidget(lbl_source, 0, 0, Qt.AlignRight) grid.addWidget(self.cmb_source, 0, 1) grid.addWidget(lbl_destination, 1, 0, Qt.AlignRight) grid.addWidget(self.cmb_destination, 1, 1) grid.addLayout(hbox, 2, 1) grid.setColumnStretch(0, 0) grid.setColumnStretch(1, 1) self.setWindowTitle('%s %s' % (ProgName, ProgVersion)) self.setMinimumWidth(MinimumWidth) self.show() self.setFixedHeight(self.height())
def initUI(self): QToolTip.setFont(QFont('SansSerif', 40)) self.setGeometry(300,250,360,400) self.setWindowTitle('Instructions') self.toshow = QTextBrowser(self) self.toshow.resize(270,300) self.toshow.move(30,20) self.toshow.setText('good') # self.toshow.setText('\n'.join(self.s)) self.show()
def init_ui(self): QToolTip.setFont(QFont("SansSerif", 10)) self.setToolTip("This is a <b>QWidget</b> widget") btn = QPushButton("ЙА КНОПКО!!!", self) btn.setToolTip("Это <b>КНОПКО</b>, причем даже на русском языке, " "запиленное 1го января 2016года") btn.resize(btn.sizeHint()) btn.move(50, 50) self.setGeometry(300, 300, 300, 200) self.setWindowTitle("Тестовое приложенько") self.show()
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip('This is a widget') btn = QPushButton('Button', self) btn.setToolTip('This is a button') btn.resize(btn.sizeHint()) btn.move(50, 50) self.setGeometry(700, 300, 500, 200) self.setWindowTitle('Lilya\'s first widget') self.show()
def initUI(self): hbox = QHBoxLayout(self) pixmap = QPixmap('owi_robot_hand_2.2.png') lbl = QLabel(self) lbl.setPixmap(pixmap) hbox.addWidget(lbl) self.setLayout(hbox) QToolTip.setFont(QFont('SansSerif',14)) self.setToolTip('') self.setGeometry(300, 300,1280, 720) self.setWindowTitle('Owi Robot Hand Controler _v4') self.setWindowIcon(QIcon('python.png')) self.show()
def initUI(self): QToolTip.setFont(QFont('SansSerif', 12)) # self.setToolTip('This is a <b>QWidget</b> widget') self.setGeometry(300, 300, 650, 450) self.setWindowTitle('验证码识别app') self.step = 0 self.pic_path = '' self.model_path = '' self.pic_path_pro = '' self.img = None self.img_name = None choose_model = QLabel('选择模型') choose_pic_label = QLabel('选择图片') show_process_pic_label = QLabel('处理图片') show_res_label = QLabel('预测结果') self.show_model_path = QLineEdit() self.show_model_path.setStyleSheet("border:2px solid black;") self.show_pic = QLabel('') self.show_pic.setStyleSheet("border:2px solid black;") self.show_pro_pic = QLabel('') self.show_pro_pic.setStyleSheet("border:2px solid black;") self.show_res_text = QLineEdit() self.show_res_text.setStyleSheet("border:2px solid black;") grid = QGridLayout() grid.setSpacing(30) grid.addWidget(choose_model, 1, 0) grid.addWidget(self.show_model_path, 1, 1) grid.addWidget(choose_pic_label, 2, 0) grid.addWidget(self.show_pic, 2, 1) grid.addWidget(show_process_pic_label, 3, 0) grid.addWidget(self.show_pro_pic, 3, 1) grid.addWidget(show_res_label, 4, 0) grid.addWidget(self.show_res_text, 4, 1) self.choose_model_btn = QPushButton('打开', self) self.choose_model_btn.setObjectName("pushButton") self.choose_model_btn.clicked.connect(self.openfile_model) grid.addWidget(self.choose_model_btn, 1, 2) self.choose_pic_btn = QPushButton('打开', self) self.choose_pic_btn.setObjectName("pushButton") self.choose_pic_btn.clicked.connect(self.openfile_pic) grid.addWidget(self.choose_pic_btn, 2, 2) self.choose_pic_btn = QPushButton('处理', self) self.choose_pic_btn.setObjectName("pushButton") self.choose_pic_btn.clicked.connect(self.process_pic) self.choose_pic_btn.clicked.connect(self.show_pic_after_pro) grid.addWidget(self.choose_pic_btn, 3, 2) self.show_res_btn = QPushButton('预测', self) self.choose_pic_btn.setObjectName("pushButton") self.choose_pic_btn.clicked.connect(self.show_pre_res) grid.addWidget(self.show_res_btn, 4, 2) self.setLayout(grid) self.show()
def on_copy(self): self.app.clipboard().setText(self.text()) QToolTip.showText(QCursor.pos(), _("Text copied to clipboard"), self)
def __init__(self, imgdirpath, pritxt, correcttxt): super().__init__() # 获得图片的名字列表和根路径 self.imgdirpath = imgdirpath self.root, self.imgpaths = self.walkimgfile() # 调用这个方法并获得返回值 # 获取所有的label with open(pritxt, 'r', encoding='utf-8')as ft: lines = ft.readlines() self.lines = lines self.geshu = 0 self.correcttxt = correcttxt self.count = 1 # 用于判断执行了几次 self.startornot = 0 # 用于判断是否开始 QToolTip.setFont(QFont('SansSerif', 10)) # 静态方法设置一个用于提示的字体,这里使用10px大小的字体 self.setToolTip('This is a <b>QWidget</b> widget') # 创建一个提示,可以使用丰富的文本格式 # next按钮控件 startbtn = QPushButton('启动') # 点击'开始'后才能开始操作 startbtn.clicked.connect(self.startButton) nextbtn = QPushButton('下一张') # 点击'开始'后才能开始操作 nextbtn.clicked.connect(self.nextButton) # 设置布局,将按钮放在底部的水平布局中 hbox = QHBoxLayout() # 水平布局 hbox.addWidget(startbtn) hbox.addWidget(nextbtn) # 文本框控件,用于计数 self.numbertext = QLabel('完成数量', self) self.numbertext.setText('无') # 默认完成了0个 self.numbertext.setAlignment(Qt.AlignCenter) self.cartext = QLabel('车牌号', self) self.cartext.setText('无') # 默认完成了0个 self.cartext.setAlignment(Qt.AlignCenter) self.line_edit = QLineEdit(self) self.label = QLabel(self) self.line_edit.textChanged.connect(self.label.setText) self.labelvbox = QVBoxLayout() self.labelvbox.addWidget(self.numbertext, 0, Qt.AlignCenter) self.labelvbox.addWidget(self.cartext, 0, Qt.AlignCenter) self.labelvbox.addWidget(self.line_edit) # 图片格式转换 path = "QLabel{border-image: url(" + "./background.jpg" + ");}"#./0_419900100337029842_1_118_K5_0_0_0.jpg' self.label11 = QLabel(self) self.label11.setToolTip('文本标签') self.label11.setStyleSheet(path)#path = "QLabel{border-image: url(./0_419900100337029842_1_118_K5_0_0_0.jpg);}" self.label11.setFixedWidth(256) self.label11.setFixedHeight(48) self.imgvbox = QVBoxLayout() # 这个小的布局用于存放图片 self.imgvbox.addWidget(self.label11, 0, Qt.AlignCenter) self.vbox = QVBoxLayout() # 竖直布局 self.vbox.addLayout(self.imgvbox) self.vbox.addLayout(self.labelvbox) # self.vbox.addStretch(1) # 首先在竖直方向上插入留白空间 self.vbox.addLayout(hbox) # 插入上面的水平空间 self.setLayout(self.vbox) # 将竖直布局加入整体布局中 # 窗口显示设置 self.setGeometry(300, 300, 300, 150) # 设置窗口的位置和大小 self.setWindowTitle('数据处理器') # 设置窗口的标题 self.show() # 显示窗口
def show_tooltip(self, text, position, duration=1000 * 60): QToolTip.showText(position, text, self, self.rect(), duration)
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) #设置去泡提示的字体和字号 self.setToolTip('<b style="color:red">这是一个气泡提示</b>') #创建提示语句 self.setWindowTitle('气泡提示的Demo')
def _on_click_copy_tx_id(self) -> None: app_state.app.clipboard().setText(self._tx_hash) QToolTip.showText(QCursor.pos(), _("Transaction ID copied to clipboard"), self)
def hoverLeaveEvent(self, event): self.pen = QPen(QColor(0, 0, 0, 255)) QToolTip.hideText() self.update() if self.terrain_type & cCommonGame.MapData.CLOUD_FRIENDLY: self.update_timer.start(self.UPDATE_INTERVAL_IN_MS)
def linkHovered(self, link): if link: QToolTip.showText(QCursor.pos(), Ref.tooltip(link))
def initUi(self): QToolTip.setFont(QFont("SansSerif", 10)) self.setToolTip("这是一个<b>气泡提示</b>") self.setGeometry(200, 300, 400, 400) self.setWindowTitle("会有气泡提示")
def cb_mouse_motion(self, event): """ Callback to process a mouse movement event. If the group selection option is enabled, then any points with Y-coordinate less than the cursor's Y-coordinate will be marked in a different opacity level, but not highlighted. If the user clicks with the mouse, then the points will be highlighted, but this event is processed in another method. This method also processes tooltip-related events when the group selection is disabled. If the user hovers the mouse cursor over a data point, then the name associated to that point will be shown in a tooltip. Parameters ---------- event: matplotlib.backend_bases.MouseEvent Data about the event. """ # We remove the horizonal line here (if any), regardless of the mouse # cursor position. We also restore the lines colors. if self._hthresh_line: for i, l in enumerate(self.axes.lines): if l == self._hthresh_line: del self.axes.lines[i] break self._hthresh_line = None for i, line in enumerate(self.axes.lines): if self._is_normal_curve_idx(i): line.set_color(self._curves_colors[i]) if self._ts_line: for i, l in enumerate(self.axes.lines): if l == self._ts_line: del self.axes.lines[i] break # Restoring the lines' widths. if self._plotted_series: for art in self._plotted_series: if not art: continue art[0].set_linewidth(self._plot_params['linewidth']) self.draw() if event.xdata is None or event.ydata is None or self._rank_series is None: return True self._ts_line = self.axes.axvline(x=event.xdata, c='b', ls='--') # If the group selection is enabled, we show a preview of all curves # that will be highlighted should the user click the mouse button. if self.group_selection_enabled: ts = int(event.xdata - self.time_range[0] + 0.5) if self.rank_inverted: for i, series in enumerate(self._rank_series): if series[ts] < event.ydata and self._is_normal_curve_idx( i): self.axes.lines[i].set_color(cm.gray(200)) else: for i, series in enumerate(self._rank_series): if series[ts] > event.ydata and self._is_normal_curve_idx( i): self.axes.lines[i].set_color(cm.gray(200)) self._hthresh_line = self.axes.axhline(y=event.ydata, c='b', linewidth=2) else: hover_idx = None for i, art in enumerate(self._plotted_series): if not art: continue contains, _ = art[0].contains(event) if contains: art[0].set_linewidth(self._plot_params['linewidth'] * 2) if not self.curvenames or i > len(self.curvenames): return False hover_idx = i break if hover_idx is not None: palette = QPalette() palette.setColor(QPalette.ToolTipBase, QColor(252, 243, 207)) palette.setColor(QPalette.ToolTipText, QColor(0, 0, 0)) QToolTip.setPalette(palette) QToolTip.setFont(QFont('Arial', 14, QFont.Bold)) pos = self.mapToGlobal(QPoint(event.x, self.height() - event.y)) QToolTip.showText(pos, '{}'.format(self.curvenames[hover_idx])) else: QToolTip.hideText() self.update() if self._cb_notify_tooltip: self._cb_notify_tooltip(self.name, hover_idx) self.draw()
def doTooltip(self, pos, message): QToolTip.showText(self.mapToGlobal(pos), message)
def _sliderLineHeightChanged(self, value): QToolTip.showText(QCursor.pos(), str(value / 100), self)
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) # Separator definition self.separator = QFrame() self.separator.setFrameStyle(QFrame.HLine) # SUBREDDIT AREA -------------------------------------------------------------- self.subreddit_label = QLabel('Subreddit(s)') self.subreddit_input = QLineEdit('EarthPorn+wallpapers') self.subreddit_download = QPushButton('Download') self.subreddit_download.setToolTip( 'Click here to download the <b>subreddit</b> images to your pc') self.subreddit_input.setToolTip( 'Write the <b>subreddit</b> you want to download from. Concatenate with a +' ) # button action self.subreddit_download.clicked.connect( lambda: download(self.subreddit_input.text())) # Vertical Layout for the subreddit part vl_subreddit = QVBoxLayout() vl_subreddit.addWidget(self.subreddit_label) vl_subreddit.addWidget(self.subreddit_input) vl_subreddit.addWidget(self.subreddit_download) # PERIOD AREA------------------------------------------------------------------ self.period = 2 self.period_label = QLabel('Change image every ' + str(self.period) + ' seconds.') self.period_slider = QSlider(Qt.Horizontal) self.period_slider.setMinimum(1) self.period_slider.setMaximum(60) self.period_slider.setTickPosition(10) self.period_slider.setTickInterval(20) self.period_slider.setValue(self.period) self.period_slider.setToolTip( 'Time that pass between a background to the next') self.period_set = QPushButton('Set') # control if slider changes value self.period_slider.valueChanged.connect(self.v_change) self.period_set.clicked.connect(self.set_background, 2) # Vertical Layout for the period part vl_period = QVBoxLayout() vl_period.addWidget(self.period_label) vl_period.addWidget(self.period_slider) vl_period.addWidget(self.period_set) # BOTTOM IMAGE AREA------------------------------------------------------------- self.logo = QLabel() self.logo.setPixmap(QPixmap('icon.png')) self.logo.setGeometry(50, 50, 50, 50) # MAIN LAYOUT ------------------------------------------------------------------ vl_main = QVBoxLayout() vl_main.addLayout(vl_subreddit) vl_main.addWidget(self.separator) vl_main.addLayout(vl_period) vl_main.addStretch(1) vl_main.addWidget(self.logo) self.setLayout(vl_main) self.show()
def hoverLeaveEvent(self, event): self.pens[self.ship_info.type].setWidth(1) QToolTip.hideText() self.update()
def hoverLeaveEvent(self, event: 'QGraphicsSceneHoverEvent') -> None: self.setOpacity(0.001) QToolTip.hideText() super(WGPromptCircle, self).hoverLeaveEvent(event)
def show_msg(self, text, timeout=1500): QToolTip.showText(self.mapToGlobal(QPoint(0, 0)), text, self, self.rect(), timeout)
def paintEvent(self, evt): """ Protected method handling paint events. @param evt paint event (QPaintEvent) """ if self.__grabbing: # grabWindow() should just get the background return painter = QPainter(self) pal = QPalette(QToolTip.palette()) font = QToolTip.font() handleColor = pal.color(QPalette.Active, QPalette.Highlight) handleColor.setAlpha(160) overlayColor = QColor(0, 0, 0, 160) textColor = pal.color(QPalette.Active, QPalette.Text) textBackgroundColor = pal.color(QPalette.Active, QPalette.Base) painter.drawPixmap(0, 0, self.__pixmap) painter.setFont(font) r = QRect(self.__selection) if not self.__selection.isNull(): grey = QRegion(self.rect()) if self.__mode == SnapshotRegionGrabber.Ellipse: reg = QRegion(r, QRegion.Ellipse) else: reg = QRegion(r) grey = grey.subtracted(reg) painter.setClipRegion(grey) painter.setPen(Qt.NoPen) painter.setBrush(overlayColor) painter.drawRect(self.rect()) painter.setClipRect(self.rect()) drawRect(painter, r, handleColor) if self.__showHelp: painter.setPen(textColor) painter.setBrush(textBackgroundColor) self.__helpTextRect = painter.boundingRect( self.rect().adjusted(2, 2, -2, -2), Qt.TextWordWrap, self.__helpText).translated(-self.__desktop.x(), -self.__desktop.y()) self.__helpTextRect.adjust(-2, -2, 4, 2) drawRect(painter, self.__helpTextRect, textColor, textBackgroundColor) painter.drawText(self.__helpTextRect.adjusted(3, 3, -3, -3), Qt.TextWordWrap, self.__helpText) if self.__selection.isNull(): return # The grabbed region is everything which is covered by the drawn # rectangles (border included). This means that there is no 0px # selection, since a 0px wide rectangle will always be drawn as a line. txt = "{0:n}, {1:n} ({2:n} x {3:n})".format(self.__selection.x(), self.__selection.y(), self.__selection.width(), self.__selection.height()) textRect = painter.boundingRect(self.rect(), Qt.AlignLeft, txt) boundingRect = textRect.adjusted(-4, 0, 0, 0) if textRect.width() < r.width() - 2 * self.__handleSize and \ textRect.height() < r.height() - 2 * self.__handleSize and \ r.width() > 100 and \ r.height() > 100: # center, unsuitable for small selections boundingRect.moveCenter(r.center()) textRect.moveCenter(r.center()) elif r.y() - 3 > textRect.height() and \ r.x() + textRect.width() < self.rect().width(): # on top, left aligned boundingRect.moveBottomLeft(QPoint(r.x(), r.y() - 3)) textRect.moveBottomLeft(QPoint(r.x() + 2, r.y() - 3)) elif r.x() - 3 > textRect.width(): # left, top aligned boundingRect.moveTopRight(QPoint(r.x() - 3, r.y())) textRect.moveTopRight(QPoint(r.x() - 5, r.y())) elif r.bottom() + 3 + textRect.height() < self.rect().bottom() and \ r.right() > textRect.width(): # at bottom, right aligned boundingRect.moveTopRight(QPoint(r.right(), r.bottom() + 3)) textRect.moveTopRight(QPoint(r.right() - 2, r.bottom() + 3)) elif r.right() + textRect.width() + 3 < self.rect().width(): # right, bottom aligned boundingRect.moveBottomLeft(QPoint(r.right() + 3, r.bottom())) textRect.moveBottomLeft(QPoint(r.right() + 5, r.bottom())) # If the above didn't catch it, you are running on a very # tiny screen... drawRect(painter, boundingRect, textColor, textBackgroundColor) painter.drawText(textRect, Qt.AlignHCenter, txt) if (r.height() > self.__handleSize * 2 and r.width() > self.__handleSize * 2) or \ not self.__mouseDown: self.__updateHandles() painter.setPen(Qt.NoPen) painter.setBrush(handleColor) painter.setClipRegion( self.__handleMask(SnapshotRegionGrabber.StrokeMask)) painter.drawRect(self.rect()) handleColor.setAlpha(60) painter.setBrush(handleColor) painter.setClipRegion( self.__handleMask(SnapshotRegionGrabber.FillMask)) painter.drawRect(self.rect())
def moved(self, pos): fee_rate = self.config.static_fee(pos) tooltip = self.get_tooltip(pos, fee_rate) QToolTip.showText(QCursor.pos(), tooltip, self) self.setToolTip(tooltip) self.callback(self.dyn, pos, fee_rate)
def hide_tooltip(self): QToolTip.hideText()
def init(self): r"""Initializes the GUI.""" # initialize timer self.timer = QtCore.QTimer(self) # properties QToolTip.setFont(QtGui.QFont('SansSerif', 10)) # Central Widget self.gui_widget = QWidget(self) self.setCentralWidget(self.gui_widget) # Panels (group boxes) self.grp_profile = QGroupBox('Profile') self.grp_consump = QGroupBox('Consumption') self.grp_plotter = QWidget() # Layouts layout_gui = QHBoxLayout(self.gui_widget) layout_profile = QGridLayout(self.grp_profile) layout_consump = QFormLayout(self.grp_consump) layout_plotter = QVBoxLayout(self.grp_plotter) # Labels lbl_profile = QLabel('Profile:') lbl_height = QLabel('Height:') lbl_weight = QLabel('Weight:') lbl_age = QLabel('Age:') lbl_bmi = QLabel('BMI:') lbl_gender = QLabel('Gender:') lbl_hr1 = QLabel('Hour 1:') lbl_hr2 = QLabel('Hour 2:') lbl_hr3 = QLabel('Hour 3:') lbl_hr4 = QLabel('Hour 4:') lbl_hr5 = QLabel('Hour 5:') lbl_hr6 = QLabel('Hour 6:') lbl_drink = QLabel( 'One Drink is:\n1 oz of 100 proof\n5 oz of wine\n12 oz of regular beer' ) # Fields self.popup_profile = QComboBox() profiles = self.initialize_profiles() for this_profile in profiles: self.popup_profile.addItem(this_profile) self.popup_profile.setCurrentIndex(0) self.popup_profile.activated.connect(self.onActivated) self.lne_height = QLineEdit('') self.lne_weight = QLineEdit('') self.lne_age = QLineEdit('') self.lne_bmi = QLineEdit('') self.radio_gender = QWidget() layout_gender = QHBoxLayout(self.radio_gender) self.radio_fmal = QRadioButton('Female') self.radio_fmal.setChecked(True) self.radio_fmal.toggled.connect(self.radio_toggle) self.radio_male = QRadioButton('Male') self.radio_male.toggled.connect(self.radio_toggle) layout_gender.addWidget(self.radio_fmal) layout_gender.addWidget(self.radio_male) self.lne_hr1 = QLineEdit('') self.lne_hr2 = QLineEdit('') self.lne_hr3 = QLineEdit('') self.lne_hr4 = QLineEdit('') self.lne_hr5 = QLineEdit('') self.lne_hr6 = QLineEdit('') lnes = [ getattr(self, 'lne_' + field) for field in self.gui_settings.get_text_fields() ] for this_lne in lnes: this_lne.setAlignment(QtCore.Qt.AlignCenter) this_lne.editingFinished.connect(self.text_finished) # Buttons - Save Profile button self.btn_save = QPushButton('Save Profile') self.btn_save.setToolTip('Saves the current profile to disk.') self.btn_save.setMaximumWidth(120) self.btn_save.setStyleSheet( 'color: black; background-color: #00bfbf; font: bold;') self.btn_save.clicked.connect(self.btn_save_function) # Buttons - Plot button self.btn_plot = QPushButton('Plot') self.btn_plot.setToolTip( 'Plots the BAC over time with the given information.') self.btn_plot.setMaximumWidth(200) self.btn_plot.setStyleSheet( 'color: black; background-color: #009900; font: bold;') self.btn_plot.clicked.connect(self.btn_plot_function) # Populate widgets - profile layout_profile.addWidget(lbl_profile, 0, 0) layout_profile.addWidget(lbl_height, 1, 0) layout_profile.addWidget(lbl_weight, 2, 0) layout_profile.addWidget(lbl_age, 3, 0) layout_profile.addWidget(lbl_bmi, 4, 0) layout_profile.addWidget(lbl_gender, 5, 0) layout_profile.addWidget(self.popup_profile, 0, 1) layout_profile.addWidget(self.lne_height, 1, 1) layout_profile.addWidget(self.lne_weight, 2, 1) layout_profile.addWidget(self.lne_age, 3, 1) layout_profile.addWidget(self.lne_bmi, 4, 1) layout_profile.addWidget(self.radio_gender, 5, 1) layout_profile.addWidget(self.btn_save, 6, 0, 1, 2, QtCore.Qt.AlignCenter) # Populate widgets - consumption layout_consump.addRow(lbl_hr1, self.lne_hr1) layout_consump.addRow(lbl_hr2, self.lne_hr2) layout_consump.addRow(lbl_hr3, self.lne_hr3) layout_consump.addRow(lbl_hr4, self.lne_hr4) layout_consump.addRow(lbl_hr5, self.lne_hr5) layout_consump.addRow(lbl_hr6, self.lne_hr6) # Populate widgets - plotter layout_plotter.addWidget(lbl_drink) layout_plotter.addWidget(self.btn_plot) # Populate widgets - main GUI layout_gui.addWidget(self.grp_profile) layout_gui.addWidget(self.grp_consump) layout_gui.addWidget(self.grp_plotter) # Call wrapper to initialize GUI self.wrapper() # GUI final layout properties self.center() self.setWindowTitle('BAC GUI') self.setWindowIcon( QtGui.QIcon(os.path.join(get_root_dir(), 'bac_gui.png'))) self.show()
def initWindow(self): QToolTip.setFont(QFont('SansSerif', 10)) # main layout self.frameWidget = QWidget() mainWidget = QSplitter(Qt.Horizontal) self.frameLayout = QVBoxLayout() self.settingWidget = QWidget() settingLayout = QVBoxLayout() self.settingWidget.setProperty("class","settingWidget") mainLayout = QVBoxLayout() self.settingWidget.setLayout(settingLayout) mainLayout.addWidget(self.settingWidget) mainLayout.setStretch(0,2) menuLayout = QHBoxLayout() self.progressHint = QLabel() self.progressHint.hide() self.progressbarRootWidget = QWidget() progressbarLayout = QVBoxLayout() self.progressbarRootWidget.setProperty("class","progressbarWidget") self.progressbarRootWidget.setLayout(progressbarLayout) self.downloadWidget = QWidget() downloadLayout = QVBoxLayout() self.downloadWidget.setProperty("class","downloadWidget") self.downloadWidget.setLayout(downloadLayout) mainWidget.setLayout(mainLayout) # menu # ----- # settings and others # ----- # progress bar # ----- # download button # ----- # status bar self.frameLayout.addLayout(menuLayout) self.frameLayout.addWidget(mainWidget) self.frameLayout.addWidget(self.progressHint) self.frameLayout.addWidget(self.progressbarRootWidget) self.frameLayout.addWidget(self.downloadWidget) self.frameWidget.setLayout(self.frameLayout) self.setCentralWidget(self.frameWidget) self.setFrameStrentch(1) # option layout self.langButton = QPushButton() self.skinButton = QPushButton() self.aboutButton = QPushButton() self.langButton.setProperty("class", "menuItemLang") self.skinButton.setProperty("class", "menuItem2") self.aboutButton.setProperty("class", "menuItem3") self.langButton.setObjectName("menuItem") self.skinButton.setObjectName("menuItem") self.aboutButton.setObjectName("menuItem") menuLayout.addWidget(self.langButton) menuLayout.addWidget(self.skinButton) menuLayout.addWidget(self.aboutButton) menuLayout.addStretch(0) # widgets file select self.fileSelectGroupBox = QGroupBox(tr("SelectFile")) # container settingLayout.addWidget(self.fileSelectGroupBox) self.fileSelectContainerLayout = QVBoxLayout() self.fileSelectGroupBox.setLayout(self.fileSelectContainerLayout) # file selection self.fileSelecWidget = QWidget() self.fileSelectLayout = QVBoxLayout() self.fileSelecWidget.setLayout(self.fileSelectLayout) self.fileSelectContainerLayout.addWidget(self.fileSelecWidget) # add file selection item self.addFileSelectionItem() # add fileselection functions mergeBinWidget = QWidget() mergeBinWidgetLayout = QHBoxLayout() mergeBinWidget.setLayout(mergeBinWidgetLayout) self.addFileButton = QPushButton(tr("Add File")) self.packFilesButton = QPushButton(tr("Pack to kfpkg")) self.mergeBinButton = QPushButton(tr("Merge to .bin")) mergeBinWidgetLayout.addWidget(self.addFileButton) mergeBinWidgetLayout.addWidget(self.packFilesButton) mergeBinWidgetLayout.addWidget(self.mergeBinButton) self.fileSelectContainerLayout.addWidget(mergeBinWidget) # widgets board select boardSettingsGroupBox = QGroupBox(tr("BoardSettings")) settingLayout.addWidget(boardSettingsGroupBox) boardSettingsLayout = QGridLayout() boardSettingsGroupBox.setLayout(boardSettingsLayout) self.boardLabel = QLabel(tr("Board")) self.boardCombobox = ComboBox() self.boardCombobox.addItem(parameters.SipeedMaixDock) self.boardCombobox.addItem(parameters.SipeedMaixBit) self.boardCombobox.addItem(parameters.SipeedMaixBitMic) self.boardCombobox.addItem(parameters.SipeedMaixduino) self.boardCombobox.addItem(parameters.SipeedMaixGo) self.boardCombobox.addItem(parameters.SipeedMaixGoD) self.boardCombobox.addItem(parameters.M5StickV) self.boardCombobox.addItem(parameters.KendryteKd233) self.boardCombobox.addItem(parameters.kendryteTrainer) self.boardCombobox.addItem(parameters.BananapiRbxy) self.boardCombobox.addItem(parameters.Auto) self.burnPositionLabel = QLabel(tr("BurnTo")) self.burnPositionCombobox = ComboBox() self.burnPositionCombobox.addItem(tr("Flash")) self.burnPositionCombobox.addItem(tr("SRAM")) boardSettingsLayout.addWidget(self.boardLabel, 0, 0) boardSettingsLayout.addWidget(self.boardCombobox, 0, 1) boardSettingsLayout.addWidget(self.burnPositionLabel, 1, 0) boardSettingsLayout.addWidget(self.burnPositionCombobox, 1, 1) # widgets serial settings serialSettingsGroupBox = QGroupBox(tr("SerialSettings")) serialSettingsLayout = QGridLayout() serialPortLabek = QLabel(tr("SerialPort")) serailBaudrateLabel = QLabel(tr("SerialBaudrate")) slowModeLabel = QLabel(tr("Speed mode")) self.serialPortCombobox = ComboBox() self.serailBaudrateCombobox = ComboBox() self.serailBaudrateCombobox.addItem("115200") self.serailBaudrateCombobox.addItem("921600") self.serailBaudrateCombobox.addItem("1500000") self.serailBaudrateCombobox.addItem("2000000") self.serailBaudrateCombobox.addItem("3500000") self.serailBaudrateCombobox.addItem("4000000") self.serailBaudrateCombobox.addItem("4500000") self.serailBaudrateCombobox.setCurrentIndex(1) self.serailBaudrateCombobox.setEditable(True) self.slowModeCombobox = ComboBox() self.slowModeCombobox.addItem(tr("Slow mode")) self.slowModeCombobox.addItem(tr("Fast mode")) slowModeLabel.setToolTip(tr("slow mode tips")) self.slowModeCombobox.setToolTip(tr("slow mode tips")) serialSettingsLayout.addWidget(serialPortLabek,0,0) serialSettingsLayout.addWidget(serailBaudrateLabel, 1, 0) serialSettingsLayout.addWidget(slowModeLabel, 2, 0) serialSettingsLayout.addWidget(self.serialPortCombobox, 0, 1) serialSettingsLayout.addWidget(self.serailBaudrateCombobox, 1, 1) serialSettingsLayout.addWidget(self.slowModeCombobox, 2, 1) serialSettingsGroupBox.setLayout(serialSettingsLayout) settingLayout.addWidget(serialSettingsGroupBox) # set stretch settingLayout.setStretch(0,1) settingLayout.setStretch(1,1) settingLayout.setStretch(2,2) # widgets progress bar self.progressbar = QProgressBar(self.progressbarRootWidget) self.progressbar.setValue(0) self.progressbarRootWidget.hide() # widgets download area self.downloadButton = QPushButton(tr("Download")) downloadLayout.addWidget(self.downloadButton) # main window self.statusBarStauts = QLabel() self.statusBarStauts.setMinimumWidth(80) self.statusBarStauts.setText("<font color=%s>%s</font>" %("#1aac2d", tr("DownloadHint"))) self.statusBar().addWidget(self.statusBarStauts) self.setWindowSize() self.MoveToCenter() self.setWindowTitle(parameters.appName+" V"+str(helpAbout.versionMajor)+"."+str(helpAbout.versionMinor)) icon = QIcon() print("icon path:"+self.DataPath+"/"+parameters.appIcon) icon.addPixmap(QPixmap(self.DataPath+"/"+parameters.appIcon), QIcon.Normal, QIcon.Off) self.setWindowIcon(icon) if sys.platform == "win32": ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(parameters.appName) self.show() self.progressbar.setGeometry(10, 0, self.downloadWidget.width()-25, 40) print("config file path:", parameters.configFilePath)
def tab1_layout(self): self.le_cta_id = QLineEdit() self.le_bs_id = QLineEdit() self.le_delay_time = QLineEdit() self.btn_nts_login = QPushButton("로그인") self.btn_nts_set = QPushButton() hbox_nts_btn = QHBoxLayout() hbox_nts_btn.addWidget(self.btn_nts_login) hbox_nts_btn.addWidget(self.btn_nts_set) # QIcon width self.btn_nts_set.setIcon(QIcon('data/set.ico')) self.btn_nts_set.setFixedWidth(30) # 입력제한 http://bitly.kr/wmonM2 reg_ex = QRegExp("[0-9]+.?[0-9]{,2}") input_validator = QRegExpValidator(reg_ex, self.le_delay_time) # double_validator = QDoubleValidator(-999.0, 999.0, 2) ### http://bitly.kr/wmonM2 self.le_delay_time.setValidator(input_validator) # double_validator) self.le_delay_time.setMaxLength(3) # 가로 조정 self.le_cta_id.setFixedWidth(90) flo1 = QFormLayout() flo1.addRow("CTA No", self.le_cta_id) flo1.addRow("부서ID", self.le_bs_id) flo1.addRow("delay", self.le_delay_time) flo1.addRow(hbox_nts_btn) gbox1 = QGroupBox("HomeTax Login") # web id pw gbox2 = QGroupBox('Website Login') flo2 = QFormLayout() self.web_gubun_cb = QComboBox() # 가로 조정 self.web_gubun_cb.setFixedWidth(65) self.web_cb = QComboBox() # self.web_cb.addItems(['Naver','Hanbiro','bizforms','etaxkorea','TheBill']) hbox_web_gubun = QHBoxLayout() hbox_web_gubun.addWidget(self.web_gubun_cb) hbox_web_gubun.addWidget(self.web_cb) self.web_id_cb = QComboBox() self.web_id_cb.addItems([]) self.web_id = QLineEdit() self.web_pw = QLineEdit() hbox_idpw = QHBoxLayout() hbox_idpw.addWidget(self.web_id) hbox_idpw.addWidget(self.web_pw) self.btn_web_login = QPushButton("로그인(save)") self.btn_web_set = QPushButton() hbox_web_btn = QHBoxLayout() hbox_web_btn.addWidget(self.btn_web_login) hbox_web_btn.addWidget(self.btn_web_set) # QIcon width self.btn_web_set.setIcon(QIcon('data/set.ico')) self.btn_web_set.setFixedWidth(30) # Echomode # self.web_pw.setEchoMode(QLineEdit.PasswordEchoOnEdit) # Style self.btn_nts_login.setStyleSheet( """QPushButton { background-color: #ffff00; color: blue; font: bold }""" ) self.btn_web_login.setStyleSheet( """QPushButton { background-color: #7cd3ff; color: blue; font: bold }""" ) # pyinstaller image err solution self.btn_nts_set.setStyleSheet( """QPushButton { border-image: url(:data/set.ico); width:20px; height:20px }""" ) # ; width:30px; height:30px self.btn_web_set.setStyleSheet( """QPushButton { border-image: url(:data/set.ico); width:20px; height:20px }""" ) QToolTip.setFont(QFont('SansSerif', 10)) self.web_id.setToolTip("<h3>ID 입력</h3>") self.web_pw.setToolTip("<h3>Password 입력</h3>") self.btn_nts_set.setToolTip("<h3>HomeTax 설정</h3>") self.btn_web_set.setToolTip("<h3>Web 설정</h3>") flo2.addRow(hbox_web_gubun) flo2.addRow("ID select", self.web_id_cb) flo2.addRow(hbox_idpw) flo2.addRow(hbox_web_btn) gbox1.setLayout(flo1) gbox2.setLayout(flo2) hbox = QHBoxLayout() hbox.addWidget(gbox1) hbox.addWidget(gbox2) return hbox
def init(self): r"""Initializes the GUI.""" #%% properties QToolTip.setFont(QtGui.QFont('SansSerif', 10)) # Central Widget self.gui_widget = QWidget(self) self.setCentralWidget(self.gui_widget) # Panels self.grp_score = QWidget() self.grp_move = QWidget() self.grp_buttons = QWidget() self.grp_board = QWidget() self.grp_main = QWidget() #%% Layouts layout_gui = QVBoxLayout(self.gui_widget) layout_main = QHBoxLayout(self.grp_main) layout_board = QVBoxLayout(self.grp_board) layout_buttons = QHBoxLayout(self.grp_buttons) layout_score = QGridLayout(self.grp_score) layout_move = QVBoxLayout(self.grp_move) for layout in [ layout_gui, layout_main, layout_board, layout_buttons, layout_score, layout_move ]: layout.setAlignment(QtCore.Qt.AlignCenter) #%% Text # Tic Tac Toe lbl_tictactoe = QLabel('Tic Tac Toe') lbl_tictactoe.setStyleSheet('font-size: 18pt; font: bold;') lbl_tictactoe.setMinimumWidth(220) # Score lbl_score = QLabel('Score:') lbl_score.setStyleSheet('font-size: 12pt; font: bold;') lbl_score.setMinimumWidth(220) # Move lbl_move = QLabel('Move:') lbl_move.setStyleSheet('font-size: 12pt; font: bold;') lbl_move.setMinimumWidth(220) # O Wins lbl_o = QLabel('O Wins:') lbl_o.setMinimumWidth(80) # X Wins lbl_x = QLabel('X Wins:') lbl_x.setMinimumWidth(80) # Games Tied lbl_games = QLabel('Games Tied:') lbl_games.setMinimumWidth(80) for label in [ lbl_tictactoe, lbl_score, lbl_move, lbl_o, lbl_x, lbl_games ]: label.setAlignment(QtCore.Qt.AlignCenter) # Changeable labels self.lbl_o_wins = QLabel('0') self.lbl_x_wins = QLabel('0') self.lbl_games_tied = QLabel('0') for label in [self.lbl_o_wins, self.lbl_x_wins, self.lbl_games_tied]: label.setAlignment(QtCore.Qt.AlignRight) label.setMinimumWidth(60) #%% Axes # board fig = Figure(figsize=(4.2, 4.2), dpi=100, frameon=False) self.board_canvas = FigureCanvas(fig) self.board_canvas.mpl_connect( 'button_release_event', lambda event: self.mouse_click_callback(event)) self.board_canvas.setMinimumSize(420, 420) self.board_axes = Axes(fig, [0., 0., 1., 1.]) self.board_axes.invert_yaxis() fig.add_axes(self.board_axes) # current move fig = Figure(figsize=(1.05, 1.05), dpi=100, frameon=False) self.move_canvas = FigureCanvas(fig) self.move_canvas.setMinimumSize(105, 105) self.move_axes = Axes(fig, [0., 0., 1., 1.]) self.move_axes.set_xlim(-SIZES['square'] / 2, SIZES['square'] / 2) self.move_axes.set_ylim(-SIZES['square'] / 2, SIZES['square'] / 2) self.move_axes.set_axis_off() fig.add_axes(self.move_axes) #%% Buttons # Undo button self.btn_undo = QPushButton('Undo') self.btn_undo.setToolTip('Undoes the last move.') self.btn_undo.setMinimumSize(60, 30) self.btn_undo.setStyleSheet( 'color: yellow; background-color: #990000; font: bold;') self.btn_undo.clicked.connect(self.btn_undo_function) # New Game button self.btn_new = QPushButton('New Game') self.btn_new.setToolTip('Starts a new game.') self.btn_new.setMinimumSize(60, 50) self.btn_new.setStyleSheet( 'color: yellow; background-color: #006633; font: bold;') self.btn_new.clicked.connect(self.btn_new_function) # Redo button self.btn_redo = QPushButton('Redo') self.btn_redo.setToolTip('Redoes the last move.') self.btn_redo.setMinimumSize(60, 30) self.btn_redo.setStyleSheet( 'color: yellow; background-color: #000099; font: bold;') self.btn_redo.clicked.connect(self.btn_redo_function) for btn in [self.btn_undo, self.btn_new, self.btn_redo]: not_resize = btn.sizePolicy() not_resize.setRetainSizeWhenHidden(True) btn.setSizePolicy(not_resize) #%% Populate Widgets # score layout_score.addWidget(lbl_score, 0, 0, 1, 2) layout_score.addWidget(lbl_o, 1, 0) layout_score.addWidget(self.lbl_o_wins, 1, 1) layout_score.addWidget(lbl_x, 2, 0) layout_score.addWidget(self.lbl_x_wins, 2, 1) layout_score.addWidget(lbl_games, 3, 0) layout_score.addWidget(self.lbl_games_tied) # move layout_move.addWidget(lbl_move) layout_move.addWidget(self.move_canvas) # buttons layout_buttons.addWidget(self.btn_undo) layout_buttons.addWidget(self.btn_new) layout_buttons.addWidget(self.btn_redo) # board layout_board.addWidget(self.board_canvas) layout_board.addWidget(self.grp_buttons) # main layout_main.addWidget(self.grp_score) layout_main.addWidget(self.grp_board) layout_main.addWidget(self.grp_move) # main GUI layout_gui.addWidget(lbl_tictactoe) layout_gui.addWidget(self.grp_main) #%% File Menu # actions - new game act_new_game = QAction('New Game', self) act_new_game.setShortcut('Ctrl+N') act_new_game.setStatusTip('Starts a new game.') act_new_game.triggered.connect(self.act_new_game_func) # actions - options act_options = QAction('Options', self) act_options.setShortcut('Ctrl+O') act_options.setStatusTip('Opens the advanced option settings.') act_options.triggered.connect(self.act_options_func) # actions - quit game act_quit = QAction('Exit', self) act_quit.setShortcut('Ctrl+Q') act_quit.setStatusTip('Exits the application.') act_quit.triggered.connect(self.close) # menubar self.statusBar() menu_bar = self.menuBar() file_menu = menu_bar.addMenu('&File') file_menu.addAction(act_new_game) file_menu.addAction(act_options) file_menu.addAction(act_quit) #%% Finalization # Call wrapper to initialize GUI self.wrapper() # GUI final layout properties self.center() self.setWindowTitle('Tic Tac Toe') self.setWindowIcon( QtGui.QIcon(os.path.join(get_images_dir(), 'tictactoe.png'))) self.show()
def initUI(self): layout = QVBoxLayout() QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip('This is a <b>QWidget</b> widget') self.model = QStringListModel() self.model.setStringList(['some', 'words', 'in', 'my', 'dictionary']) self.completer = QCompleter() self.completer.setModel(self.model) self.lineedit = QLineEdit(self) self.lineedit.setCompleter(self.completer) self.lineedit.setGeometry(50, 50, 250, 30) self.search = QPushButton('Search', self) self.search.resize(self.search.sizeHint()) self.search.setGeometry(270, 50, 50, 30) layout.addWidget(self.search) self.add = QPushButton('ADD', self) self.add.resize(self.add.sizeHint()) self.add.setGeometry(500, 50, 50, 30) layout.addWidget(self.add) self.label = QLabel(self) self.label.setPixmap(QPixmap('web.png')) self.label.setGeometry(400, 120, 250, 250) layout.addWidget(self.label) self.name = QLabel("Name", self) self.name.move(620, 120) layout.addWidget(self.name) self.nameedit = QLineEdit(self) self.nameedit.setGeometry(700, 120, 150, 30) layout.addWidget(self.nameedit) self.group = QLabel("Group", self) self.group.move(620, 170) layout.addWidget(self.group) self.groupedit = QLineEdit(self) self.groupedit.setGeometry(700, 170, 150, 30) layout.addWidget(self.groupedit) self.bio = QPushButton('Bio', self) self.bio.resize(self.bio.sizeHint()) self.bio.move(620, 260) layout.addWidget(self.bio) self.network = QPushButton('Network ID', self) self.network.resize(self.network.sizeHint()) self.network.move(620, 300) layout.addWidget(self.network) self.notes = QPushButton('Notes', self) self.notes.resize(self.notes.sizeHint()) self.notes.move(620, 340) layout.addWidget(self.notes) self.operations = QPushButton('Operations', self) self.operations.resize(self.operations.sizeHint()) self.operations.move(450, 400) layout.addWidget(self.operations) self.calls = QPushButton('Calls', self) self.calls.resize(self.calls.sizeHint()) self.calls.move(450, 480) layout.addWidget(self.calls) self.sms = QPushButton('Sms', self) self.sms.resize(self.sms.sizeHint()) self.sms.move(450, 550) layout.addWidget(self.sms) self.qbtn = QPushButton('Quit', self) self.qbtn.clicked.connect(QCoreApplication.instance().quit) self.qbtn.resize(self.qbtn.sizeHint()) self.qbtn.move(50, 550) layout.addWidget(self.qbtn) self.statusBar().setStyleSheet( "QStatusBar{padding-left:8px;background:rgb(11, 181, 255);color:white;font-weight:bold;}" ) self.statusBar() self.resize(950, 650) self.center() # self.setLayout(layout) self.setWindowTitle('Target') self.setWindowIcon(QIcon('web.png')) self.show()
def __init__(self): super().__init__() # ->> Tooltip preferences QToolTip.setFont(QFont("SansSerif", 10)) # ->> Centering monitor_resolution = QDesktopWidget().screenGeometry() widget_size = QSize(1280, 720) padding_point = QPoint( monitor_resolution.center().x() - widget_size.width() / 2, monitor_resolution.center().y() - widget_size.height() / 2) self.setGeometry(QRect(padding_point, widget_size)) # ->> Windows meta self.setWindowTitle("Foo Application") self.setWindowIcon(QIcon(r"resources/enak.jpg")) # ->> Buttons # btn = QPushButton(QIcon(r"C:\Users\\Pictures\x-png-15.png"), "Quit", self) # btn.setToolTip("button tooltip") # btn.move(widget_size.width() - 100, 30) # btn.resize(btn.sizeHint()) # btn.clicked.connect(self.teardown) # ->> Status Bar self.statusBar().showMessage("hey Ron") # ->> Menu Bar bar = self.menuBar() bar.setNativeMenuBar(False) menu_file = bar.addMenu("&파일") menu_help = bar.addMenu("&도움말") # # ->> Actions: File action_new_project = QAction("프로젝트 생성", self) action_new_project.setShortcut("CTRL+SHIFT+N") action_new_project.setStatusTip("Create new project") menu_file.addAction(action_new_project) action_open_project = QAction("프로젝트 열기", self) action_open_project.setShortcut("CTRL+SHIFT+O") action_open_project.setStatusTip("Open project") menu_file.addAction(action_open_project) menu_file.addSeparator() action_exit = QAction("Exit", self) action_exit.setShortcut("CTRL+Q") action_exit.setStatusTip("Exit application") action_exit.triggered.connect(self.teardown) menu_file.addAction(action_exit) # # ->> Actions: Help action_help_program_info = QAction("프로그램 정보", self) action_help_program_info.setStatusTip("프로그램의 정보를 확인합니다.") action_help_program_info.triggered.connect(lambda: help.UIProgramInfo().showModal()) menu_help.addAction(action_help_program_info) # ->> Layouts # # ->> Left menu # # # ->> Project info label_project_indi = QLabel("현재 프로젝트") label_project_name = QLabel("> Foo project.sweatproject") left_project_info = QVBoxLayout() left_project_info.addWidget(label_project_indi) left_project_info.addWidget(label_project_name) # # # ->> Scroll label_scroll_desc = QLabel("등록된 감시 폴더 경로") left_scroll = QScrollArea() scroll_widget = QWidget() scroll_grid = QVBoxLayout(scroll_widget) left_scroll.setMaximumWidth(230) scroll_grid.setAlignment(QtCore.Qt.AlignTop) left_scroll.setWidgetResizable(True) for n in range(40): content = QLabel("Content {}".format(n + 1)) content.mousePressEvent = functools.partial(self.file_path_label_clicked, content) scroll_grid.addWidget(content) left_scroll.setWidget(scroll_widget) left_bottom = QVBoxLayout() left_bottom.addWidget(label_scroll_desc) left_bottom.addWidget(left_scroll) left_menu_layout = QVBoxLayout() left_menu_layout.addLayout(left_project_info) left_menu_layout.addWidget(QLabel("")) # Spacer left_menu_layout.addLayout(left_bottom) left_menu = QWidget() left_menu.setLayout(left_menu_layout) left_menu.setMaximumWidth(230) # # -> Right menu # # # ->> Directory info self.label_directory_name = QLabel() font = self.label_directory_name.font() font.setPointSize(13) font.setBold(True) font.setWeight(75) self.label_directory_name.setFont(font) self.label_directory_name.setText("Directory name here") right_menu_layout = QVBoxLayout() right_menu_layout.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) right_menu_layout.addWidget(self.label_directory_name) right_menu = QWidget() right_menu.setLayout(right_menu_layout) layout = QHBoxLayout() layout.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) layout.addWidget(left_menu) layout.addWidget(right_menu) central = QWidget(self) central.setLayout(layout) self.setCentralWidget(central)
def create_rows(self): QToolTip.setFont(QtGui.QFont('Calibri', 9)) for param in self.params: self.data = pd.read_excel(self.path, sheet_name=param) self.data['Parameter'] = param val = self.make_level_dict(self.data) self.tw = TreeWidget() self.param_tabs.addTab(self.tw, param) self.param_tabs.setCurrentIndex(self.params.index(param)) self.param_tabs.setTabEnabled(self.params.index(param), True) for key, value in val.items(): # textEdit_0 = AdjusttableTextEdit() # key[1][1] - комментарий к key[1][0] # textEdit_0.setText(value[0]) # textEdit_0.setReadOnly(True) font_0 = QtGui.QFont() font_0.setBold(True) self.item_0 = QtWidgets.QTreeWidgetItem(self.tw) self.item_0.setFont(0, font_0) self.item_0.setBackground(0, QtGui.QColor("#dcdcdc")) self.item_0.setText(0, f'Уровень {key}') self.item_0.setBackground(1, QtGui.QColor("#dcdcdc")) text = self.word_wrap(value[0], 95) self.item_0.setText(1, text) # self.tw.setItemWidget(self.item_0, 1, textEdit_0) # x = '<nobr>' + key[1][1][:80] + '</nobr>' + key[1][1][80:] # # item_0.setToolTip(1, x) # textEdit_0.td_size_sig.connect(lambda size: self.item_0.setSizeHint(1, size)) # self.tw.expandAll() for v in value[1:]: self.combo_task = QtWidgets.QComboBox() self.combo_task.addItems(['Да', 'Нет', 'Не применимо']) self.combo_task.setFixedSize(110, 20) # textEdit_1 = AdjusttableTextEdit() # textEdit_1.setText(v[0]) # textEdit_1.setReadOnly(True) self.item_1 = QtWidgets.QTreeWidgetItem( self.item_0, ["", ""]) if v[2] == 0: self.combo_task.setCurrentText('Нет') elif v[2] == 1: self.combo_task.setCurrentText('Да') else: self.combo_task.setCurrentText('Не применимо') self.tw.setItemWidget(self.item_1, 0, self.combo_task) # self.tw.setItemWidget(self.item_1, 1, textEdit_1) # textEdit_1.td_size_sig.connect(lambda size: self.item_1.setSizeHint(1, size)) text_style = '''background-color: #fce6e6; border: 0; font-size: 13px; color: #000; ''' # textEdit_0.setStyleSheet(text_style) # textEdit_1.setStyleSheet(text_style) text = self.word_wrap(v[0], 95) self.item_1.setText(1, text) self.item_1.setBackground(0, QtGui.QColor('#f5f5f5')) self.save_data = self.save_data.append(self.data) self.param_tabs.setCurrentIndex(0)
def initUI(self): self.initDone = False QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip('This is a <b>QWidget</b> widget') ''' self.widgetList = QListWidget() self.widgetList.insertItem(0, 'device cmd') self.widgetList.insertItem(1, 'compile cmd') self.layoutHead = QHBoxLayout() self.layoutHead.addWidget(self.widgetList) self.widgetHead = QFrame() self.widgetHead.setLayout(self.layoutHead) ''' #HEAD part self.btnIndex1 = QPushButton('&ADB CMD', self) self.btnIndex1.setToolTip('Show adb command') self.btnIndex1.setChecked(True) #self.btnIndex1.toggle() self.btnIndex1.clicked.connect( lambda: self.onBtnClicked(self.btnIndex1)) #self.btnIndex1.resize(self.btnIndex1.sizeHint()) #self.btnIndex1.move(0, 0) self.btnIndex2 = QPushButton('&COM CMD', self) self.btnIndex2.setToolTip('Show complie command') self.btnIndex1.setChecked(True) #self.btnIndex2.resize(self.btnIndex2.sizeHint()) self.btnIndex2.clicked.connect( lambda: self.onBtnClicked(self.btnIndex2)) self.layoutHead = QHBoxLayout() self.layoutHead.addStretch(1) self.layoutHead.addWidget(self.btnIndex1) self.layoutHead.addStretch(1) self.layoutHead.addWidget(self.btnIndex2) self.layoutHead.addStretch(30) self.widgetHead = QFrame() self.widgetHead.setLayout(self.layoutHead) #BODY part #BODY LEFT ''' self.btnCDM1 = QPushButton('CMD1_INDEX1', self) self.btnCDM1.resize(self.btnCDM1.sizeHint()) self.btnCDM1.clicked.connect(lambda: self.onBtnClicked(self.btnCDM1)) self.btnCDM2 = QPushButton('CMD2_INDEX1', self) self.btnCDM2.resize(self.btnCDM2.sizeHint()) self.btnCDM2.clicked.connect(lambda: self.onBtnClicked(self.btnCDM2)) ''' self.widgetListBodyLeftIndex1 = QListWidget() self.widgetListBodyLeftIndex1.insertItem(0, 'index1 cmd1') self.widgetListBodyLeftIndex1.insertItem(1, 'index1 cmd2') self.widgetListBodyLeftIndex1.setFixedWidth(120) self.widgetListBodyLeftIndex1.itemDoubleClicked.connect( lambda: self.excuteCMD(1, self.widgetListBodyLeftIndex1.currentRow( ))) self.widgetListBodyLeftIndex2 = QListWidget() self.widgetListBodyLeftIndex2.insertItem(0, 'index2 cmd1') self.widgetListBodyLeftIndex2.insertItem(1, 'index2 cmd2') self.widgetListBodyLeftIndex2.setFixedWidth(120) self.widgetListBodyLeftIndex2.itemDoubleClicked.connect( lambda: self.excuteCMD(2, self.widgetListBodyLeftIndex2.currentRow( ))) self.widgetBodyLeftLayout = QStackedLayout() self.widgetBodyLeftLayout.addWidget(self.widgetListBodyLeftIndex1) self.widgetBodyLeftLayout.addWidget(self.widgetListBodyLeftIndex2) self.widgetBodyLeft = QFrame() self.widgetBodyLeft.setLayout(self.widgetBodyLeftLayout) #BODY MID self.textBodyMid = QTextEdit() self.textBodyMid.setPlainText("This text1") self.widgetBodyMidLayout = QVBoxLayout() self.widgetBodyMidLayout.addWidget(self.textBodyMid) self.widgetBodyMid = QFrame() self.widgetBodyMid.setLayout(self.widgetBodyMidLayout) #BODY RIGHT self.textBodyRight = QTextEdit() self.textBodyRight.setPlainText("This text2") self.widgetBodyRightLayout = QVBoxLayout() self.widgetBodyRightLayout.addWidget(self.textBodyRight) self.widgetBodyRight = QFrame() self.widgetBodyRight.setLayout(self.widgetBodyRightLayout) #BODY ROOT self.layoutBody = QHBoxLayout() self.layoutBody.addWidget(self.widgetBodyLeft) self.layoutBody.addWidget(self.widgetBodyMid) self.layoutBody.addWidget(self.widgetBodyRight) self.widgetBody = QFrame() self.widgetBody.setLayout(self.layoutBody) #root self.layoutRoot = QVBoxLayout() self.layoutRoot.addWidget(self.widgetHead) self.layoutRoot.addWidget(self.widgetBody) self.setLayout(self.layoutRoot) self.setGeometry(1200, 300, 800, 600) self.setWindowTitle('MyTool') self.initDone = True self.show()
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) encipher_btn = QPushButton('Encipher', self) encipher_btn.setToolTip('Enciphers the message.') decipher_btn = QPushButton('Decipher', self) decipher_btn.setToolTip('Deciphers the message.') encipher_btn.clicked.connect(self.encipher) decipher_btn.clicked.connect(self.decipher) hbox = QHBoxLayout() hbox.addStretch(1) hbox.addWidget(encipher_btn) hbox.addWidget(decipher_btn) vbox = QVBoxLayout() vbox.addStretch(1) vbox.addLayout(hbox) self.setLayout(vbox) ceasar = QRadioButton('Ceasar Cipher', self) ceasar.move(20, 100) self.combo_box = QComboBox(self) self.combo_box.addItem('Key') for i in range(1, 26): self.combo_box.addItem(str(i)) self.combo_box.resize(45, 20) self.combo_box.move(40, 125) ceasar.setChecked(True) vigenere = QRadioButton('Vigenere Cipher', self) vigenere.move(130, 100) self.vigenere_key = QLineEdit(self) self.vigenere_key.resize(100, 20) self.vigenere_key.move(150, 125) self.vigenere_key.setPlaceholderText('Key') playfair = QRadioButton('Playfair Cipher', self) playfair.move(290, 100) self.playfair_key = QLineEdit(self) self.playfair_key.resize(100, 20) self.playfair_key.move(310, 125) self.playfair_key.setPlaceholderText('Key') railfence = QRadioButton('Railfence Cipher', self) railfence.move(450, 100) self.railfence_rows = QLineEdit(self) self.railfence_rows.setValidator(QIntValidator()) self.railfence_rows.resize(100, 20) self.railfence_rows.move(470, 125) self.railfence_rows.setPlaceholderText('Rows') self.radio_group = QButtonGroup() self.radio_group.addButton(ceasar) self.radio_group.addButton(vigenere) self.radio_group.addButton(playfair) self.radio_group.addButton(railfence) self.message_edit = QTextEdit(self) self.message_edit.setPlaceholderText('Message here') self.message_edit.zoomIn(3) self.message_edit.resize(580, 80) self.message_edit.move(10, 10) self.log = QTextEdit(self) self.log.setToolTip('Ctrl + scroll to zoom in and out') self.log.setFontFamily('Consolas') self.log.setPlainText('Console') self.log.setStyleSheet( 'background-color: rgb(12, 12, 12); color: rgb(204, 204, 204);') self.log.zoomIn(3) self.log.setReadOnly(True) self.log.resize(580, 400) self.log.move(10, 160) self.setGeometry(600, 600, 600, 600) self.setFixedSize(self.size()) self.setWindowTitle(app_name) self.setWindowIcon(QIcon(icon)) self.center() self.show()
def __init__(self, start_server=False): QMainWindow.__init__(self) self.setWindowTitle('NINJA-IDE {Ninja-IDE Is Not Just Another IDE}') self.setMinimumSize(750, 500) QToolTip.setFont(QFont(settings.FONT.family(), 10)) # Load the size and the position of the main window self.load_window_geometry() # self.__project_to_open = 0 # Editables self.__neditables = {} # Filesystem self.filesystem = nfilesystem.NVirtualFileSystem() # Sessions handler self._session = None # Opacity self.opacity = settings.MAX_OPACITY # ToolBar self.toolbar = QToolBar(self) if settings.IS_MAC_OS: self.toolbar.setIconSize(QSize(36, 36)) else: self.toolbar.setIconSize(QSize(24, 24)) self.toolbar.setToolTip(translations.TR_IDE_TOOLBAR_TOOLTIP) self.toolbar.setToolButtonStyle(Qt.ToolButtonIconOnly) # Set toggleViewAction text and tooltip self.toggleView = self.toolbar.toggleViewAction() self.toggleView.setText(translations.TR_TOOLBAR_VISIBILITY) self.toggleView.setToolTip(translations.TR_TOOLBAR_VISIBILITY) self.addToolBar(settings.TOOLBAR_AREA, self.toolbar) if settings.HIDE_TOOLBAR: self.toolbar.hide() # Notificator self.notification = notification.Notification(self) # Plugin Manager # CHECK ACTIVATE PLUGINS SETTING # services = { # 'editor': plugin_services.MainService(), # 'toolbar': plugin_services.ToolbarService(self.toolbar), # 'menuApp': plugin_services.MenuAppService(self.pluginsMenu), # 'menuApp': plugin_services.MenuAppService(None), # 'explorer': plugin_services.ExplorerService(), # 'misc': plugin_services.MiscContainerService(self.misc)} # serviceLocator = plugin_manager.ServiceLocator(services) # serviceLocator = plugin_manager.ServiceLocator(None) # self.plugin_manager = plugin_manager.PluginManager(resources.PLUGINS, # serviceLocator) # self.plugin_manager.discover() # load all plugins! # self.plugin_manager.load_all() # Tray Icon # self.trayIcon = updates.TrayIconUpdates(self) # self.trayIcon.closeTrayIcon.connect(self._close_tray_icon) # self.trayIcon.show() # TODO: # key = Qt.Key_1 # for i in range(10): # if settings.IS_MAC_OS: # short = ui_tools.TabShortcuts( # QKeySequence(Qt.CTRL + Qt.ALT + key), self, i) # else: # short = ui_tools.TabShortcuts( # QKeySequence(Qt.ALT + key), self, i) # key += 1 # short.activated.connect(self._change_tab_index) # short = ui_tools.TabShortcuts( # QKeySequence(Qt.ALT + Qt.Key_0), self, 10) # short.activated.connect(self._change_tab_index) # Register menu categories IDE.register_bar_category(translations.TR_MENU_FILE, 100) IDE.register_bar_category(translations.TR_MENU_EDIT, 110) IDE.register_bar_category(translations.TR_MENU_VIEW, 120) IDE.register_bar_category(translations.TR_MENU_SOURCE, 130) IDE.register_bar_category(translations.TR_MENU_PROJECT, 140) IDE.register_bar_category(translations.TR_MENU_EXTENSIONS, 150) IDE.register_bar_category(translations.TR_MENU_ABOUT, 160) # Register General Menu Items ui_tools.install_shortcuts(self, actions.ACTIONS_GENERAL, self) self.register_service('ide', self) self.register_service('toolbar', self.toolbar) self.register_service('filesystem', self.filesystem) # Register signals connections connections = ({ "target": "main_container", "signal_name": "fileSaved", "slot": self.show_message }, { "target": "main_container", "signal_name": "currentEditorChanged", "slot": self.change_window_title }, { "target": "main_container", "signal_name": "openPreferences", "slot": self.show_preferences }, { "target": "main_container", "signal_name": "currentEditorChanged", "slot": self._change_item_in_project }, { "target": "main_container", "signal_name": "allFilesClosed", "slot": self.change_window_title }, { "target": "projects_explorer", "signal_name": "activeProjectChanged", "slot": self.change_window_title }) self.register_signals('ide', connections) # connections = ( # {'target': 'main_container', # 'signal_name': 'openPreferences()', # 'slot': self.show_preferences}, # {'target': 'main_container', # 'signal_name': 'allTabsClosed()', # 'slot': self._last_tab_closed}, # {'target': 'explorer_container', # 'signal_name': 'changeWindowTitle(QString)', # 'slot': self.change_window_title}, # {'target': 'explorer_container', # 'signal_name': 'projectClosed(QString)', # 'slot': self.close_project}, # ) # Central Widget MUST always exists self.central = IDE.get_service('central_container') self.setCentralWidget(self.central) # Install Services for service_name in self.__IDESERVICES: self.install_service(service_name) IDE.__created = True # Place Status Bar main_container = IDE.get_service('main_container') status_bar = IDE.get_service('status_bar') main_container.add_status_bar(status_bar) # Load Menu Bar menu_bar = IDE.get_service('menu_bar') if menu_bar: # These two are the same service, I think that's ok menu_bar.load_menu(self) menu_bar.load_toolbar(self) # Start server if needed self.s_listener = None if start_server: self.s_listener = QLocalServer() self.s_listener.listen("ninja-ide") self.s_listener.newConnection.connect(self._process_connection) IDE.__instance = self
def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip("这是一个<b>气泡提示</b>") self.setGeometry(200, 300, 400, 400) self.setWindowIcon(QIcon("Python2.ico")) self.setWindowTitle('气泡提示Demo')