def __init__(self, bus_interface, data_manager): ''' init docs ''' # Init. gtk.VBox.__init__(self) self.bus_interface = bus_interface self.data_manager = data_manager self.message_bar = MessageBar(32) self.message_box = gtk.HBox() self.treeview = TreeView(enable_drag_drop=False) self.treeview.set_expand_column(0) self.cute_message_image = gtk.VBox() self.content_box = gtk.VBox() self.pack_start(self.message_box, False, False) self.pack_start(self.content_box, True, True) self.cute_message_pixbuf = utils.get_common_locale_image_pixbuf( "info", "no_download.png") self.content_box.pack_start(self.cute_message_image, True, True) self.treeview.draw_mask = self.draw_mask self.cute_message_image.connect("expose-event", self.expose_cute_message_image) self.treeview.connect("items-change", self.update_message_bar) self.treeview.connect( "items-change", lambda treeview: global_event.emit( "update-install-notify-number", self.get_installing_pkgs_number()))
def __init__(self, data_manager): ''' init docs ''' # Init. gtk.VBox.__init__(self) self.data_manager = data_manager self.keywords = [] self.all_pkg_names = [] self.message_bar = MessageBar(18) self.content_box = gtk.VBox() self.treeview = TreeView(enable_drag_drop=False, expand_column=0) global_event.register_event("delete-search-page-items", self.treeview.delete_items) self.cute_message_image = gtk.VBox() self.cute_message_pixbuf = utils.get_common_locale_image_pixbuf("info", "noresult.png") self.cute_message_image.connect("expose-event", self.expose_cute_message_image) self.content_box.pack_start(self.message_bar, False, False) self.content_box.pack_start(self.treeview) self.loading_box = LoadingBox() self.pack_start(self.loading_box, True, True) self.treeview.connect("items-change", self.update_message_bar) self.treeview.draw_mask = self.draw_mask
def get_info(ticker, indicators): con = sqlite3.connect('base.db') cur = con.cursor() try: cur.execute('SELECT * FROM table_' + ticker) except sqlite3.OperationalError: return 'Такой компании нет в базе данных' data_table = cur.fetchall() list_indicators = list(indicators.keys()) for line in data_table: date = line[0] for i, item in enumerate(line[1:]): indicators[list_indicators[i]][date] = item return MessageBar().signal_true
def button_press(self, column, offset_x, offset_y): # init Loading widget loading_box = LoadingBox() global_event.emit("show-pkg-view", loading_box) self.page_box = gtk.VBox() self.all_pkg_names = self.data_manager.get_second_category_packages( self.second_category_name) self.message_bar = MessageBar(18) self.message_bar.set_message( _("%s > %s : %s applications") % ( get_category_name(self.first_category_name), get_category_name(self.second_category_name), len(self.all_pkg_names), )) self.pkg_icon_view = IconView() self.pkg_icon_view.connect("motion-notify-item", tooltip_aciton) if len(self.all_pkg_names) > LOAD_ITEMS_NUMBER: self.load_new_items(self.all_pkg_names[:LOAD_ITEMS_NUMBER]) else: self.load_new_items(self.all_pkg_names) self.pkg_icon_scrolled_window = ScrolledWindow() self.pkg_icon_scrolled_window.connect( "vscrollbar-state-changed", self.scrolled_window_vscrollbar_handler) self.pkg_icon_scrolled_window.add_child(self.pkg_icon_view) self.pkg_icon_view.draw_mask = self.draw_mask self.pkg_icon_view.draw_row_mask = self.draw_row_mask self.page_box.pack_start(self.message_bar, False, False) self.page_box.pack_start(self.pkg_icon_scrolled_window, True, True) global_event.emit("update-current-status-pkg-page", self.pkg_icon_view)
def __init__(self, package): Gtk.EventBox.__init__(self) self.package = package self.action = None self.drag_active = False # Add style class self.style_context = self.get_style_context() self.style_context.add_class("WidgetWindow") # Used to remove focus when clicking a non focusable widget self.connect('button-press-event', self.on_button_press) builder = Gtk.Builder() builder.add_from_file(UI_FILE) builder.connect_signals(self) # WidgetWindow - the whole thing self.widget_window = builder.get_object('widget_window') # Overlay - covers the whole window to catch event for drag/resize self.overlay = builder.get_object('overlay') self.overlay.add_events(Gdk.EventMask.KEY_PRESS_MASK) self.overlay_style_context = self.overlay.get_style_context() # The inner window, used only for getting the icon image self.window = builder.get_object('window') # TitleBar - the title bar at the top of the window self.title_bar = builder.get_object('title_bar') self.title_bar_label = builder.get_object('title_bar_label') self.title_bar_button = builder.get_object('title_bar_button') # WidgetBox - the box that the widget actually gets added to self.widget_box = builder.get_object('widget_box') # MessageBar self.message_bar = MessageBar() self.widget_box.add_overlay(self.message_bar) # Import the Widget and add to WidgetWindow module = importlib.import_module(self.package) widget = getattr(module, 'Widget')(self) self.widget_dir = os.path.abspath(os.path.dirname(module.__file__)) if hasattr(widget, 'title'): # Use widget title attribute if specified title = widget.title else: # Use the package name title = self.package.split('.')[-1] # Set up the WidgetWindow self.title_bar_label.set_text(title) widget.set_margin_right(5) widget.set_margin_left(5) widget.set_margin_top(5) widget.set_margin_bottom(5) self.widget_box.add(widget) self.add(self.widget_window) if hasattr(widget, 'on_settings_button_pressed'): self.title_bar_button.connect('clicked', widget.on_settings_button_pressed) self.show_all()
def initUI(self, MainWindow): settings = Settings() self.company_details = CompanyDetails() dates = settings.dates row_label = settings.get_list_of_financial_performance_items() MainWindow.setObjectName("MainWindow") MainWindow.setFixedSize(settings.screen_width, settings.screen_height) self.setWindowTitle('Security Analysis ' + settings.version) self.setWindowIcon(QtGui.QIcon('img/graph.png')) self.centralWidget = QtWidgets.QWidget(MainWindow) self.centralWidget.resize(settings.table_width, settings.table_height) width_table = self.centralWidget.width() distance_from_table = settings.distance_from_table distance_between_items = settings.distance_between_items vbox = QtWidgets.QVBoxLayout(self.centralWidget) self.TableWidget = QtWidgets.QTableWidget() vbox.addWidget(self.TableWidget) self.TableWidget.setColumnCount(len(dates)) self.TableWidget.setRowCount(len(row_label)) self.line_input_ticker = QtWidgets.QLineEdit(self) self.line_input_ticker.move(width_table + distance_from_table, 32) line_width = width_table + self.line_input_ticker.width() self.line_input_ticker.resize(70, 33) self.line_input_ticker.setAlignment(Qt.AlignCenter) self.line_input_ticker.setFont(QtGui.QFont("Calibri", 14, QtGui.QFont.Bold)) self.line_input_ticker.setPlaceholderText("----") self.line_input_ticker.setMaxLength(4) self.line_input_ticker.setValidator(Validator(self)) self.line_input_ticker.setToolTip('enter ticker of company') self.information_panel = QtWidgets.QTextEdit(self) self.information_panel.move(width_table + distance_from_table, 84 + distance_between_items*7) self.information_panel.resize(350 , 285) self.information_panel.setFont(QtGui.QFont("Calibri", 12)) self.information_panel.setReadOnly(True) self.message = MessageBar(bar=self.information_panel) self.button_search_info = QtWidgets.QPushButton(QtGui.QIcon('img/Search_find_locate_1892.png'), '', self) self.button_search_info.move(line_width, 32) self.button_search_info.resize(41, 33) self.button_search_info.setToolTip('Click to find and\n' ' fill in the table\n' ' with company information') self.button_search_info.clicked.connect(self.search_info) self.button_to_get_estimate = QtWidgets.QPushButton(QtGui.QIcon('img/a_4466.png'), ' Get estimate', self) self.button_to_get_estimate.move(width_table + distance_from_table, 32 + distance_between_items) self.button_to_get_estimate.resize(130, 33) self.button_to_get_estimate.setStyleSheet("QPushButton {text-align: left;}") self.button_to_get_estimate.clicked.connect(self.obtain_estimate) self.button_save_as = QtWidgets.QPushButton(QtGui.QIcon('img/savetheapplication_guardar_2958.png'), ' Save as', self) self.button_save_as.move(width_table + distance_from_table, 32 + distance_between_items*2) self.button_save_as.resize(130, 33) self.button_save_as.setStyleSheet("QPushButton {text-align: left;}") self.button_save_as.clicked.connect(self.file_save_as) self.button_save = QtWidgets.QPushButton(QtGui.QIcon('img/savetheapplication_guardar_2958.png'), ' Save', self) self.button_save.move(width_table + distance_from_table, 32 + distance_between_items*3) self.button_save.resize(130, 33) self.button_save.setStyleSheet("QPushButton {text-align: left;}") self.button_save.setEnabled(False) self.button_save.clicked.connect(self.file_save) self.button_open = QtWidgets.QPushButton(QtGui.QIcon('img/open-folder_icon-icons.com_70017.png'), ' Open', self) self.button_open.move(width_table + distance_from_table, 32 + distance_between_items*4) self.button_open.resize(130, 33) self.button_open.setStyleSheet("QPushButton {text-align: left;}") self.button_open.clicked.connect(self.file_open) self.button_clear_message = QtWidgets.QPushButton(QtGui.QIcon('img/clear.png'), ' Clear', self) self.button_clear_message.move(width_table + distance_from_table, 32 + distance_between_items*7) self.button_clear_message.resize(130, 33) self.button_clear_message.setStyleSheet("QPushButton {text-align: left;}") self.button_clear_message.clicked.connect(self.message_clear) self.TableWidget.setHorizontalHeaderLabels(dates) self.TableWidget.setVerticalHeaderLabels(row_label) style = """ QTableWidget::item {background-color: white; border-style: outset} QHeaderView::section{Background-color: rgb(230,230,230)} QTableWidget::item:selected {border-width: 1px; color: black ; border-color: green} """ self.setStyleSheet(style) self.show()