Форум программистов, компьютерный форум, киберфорум
Python: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749

Скорость работы и правильность кода

26.11.2019, 16:03. Показов 306. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Накодил виджет справочников БД:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# -*- coding: utf-8 -*-
from PyQt5 import QtCore, QtGui, QtWidgets, QtSql
 
class Reference (QtWidgets.QWidget):
    def __init__ (self):
        super().__init__()
        self.resize (800,400)
        self.initUI()
    def initUI (self):
        self.table_name = ""
        self.TN = "11"
        self.setWindowTitle ("СПРАВОЧНИКИ")
        self.setWindowIcon(QtGui.QIcon(r"ICO/znachok.png"))
        self.RefList = ["1", "2", "3", "4", "5", "6"]
        self.TabList = ["11", "22", "33", "44", "55", "66"]
        self.RefDict = dict(zip(self.RefList, self.TabList))
        print (self.RefDict)
        self.RefListSti = QtGui.QStandardItemModel ()
        for row in range (0, len(self.RefList)):
            item1 = QtGui.QStandardItem (row+1)
            item2 = QtGui.QStandardItem(self.RefList[row])
            self.RefListSti.appendRow([item1, item2])
        self.RefListSti.setHorizontalHeaderLabels (['№ п/п', 'Справочник'])
        self.tab1 = QtWidgets.QTableView ()
        self.tab1.setModel (self.RefListSti)
        self.tab1.resizeColumnsToContents()
        self.tab1.setColumnWidth (0,0)
        self.Tab_model = QtSql.QSqlTableModel()
        self.Tab_model.setTable (self.TN)
        self.Tab_model.select()
        self.Tab_model.setHeaderData (1, QtCore.Qt.Horizontal, 'ААА')
        self.tab2 = QtWidgets.QTableView ()
        self.tab2.setModel(self.Tab_model)
        self.tab2.resizeColumnsToContents()
        self.tab2.setColumnWidth (0,0)
        self.hbox = QtWidgets.QHBoxLayout()
        self.hbox.addWidget (self.tab1, stretch = 1)
        self.hbox.addWidget (self.tab2, stretch = 2)
        self.setLayout(self.hbox)
        self.tab1.clicked.connect (self.tab1_clicked)
        
        
 
 
    def tab1_clicked (self, status):
        self.table_name = str (status.data())
        self.TN = self.RefDict[self.table_name]
        self.Tab_model.setTable (self.TN)
        self.Tab_model.select()
        if self.TN == "11":
            self.Tab_model.setHeaderData (1, QtCore.Qt.Horizontal, 'ААА')
        elif self.TN == "22":
            self.Tab_model.setHeaderData (1, QtCore.Qt.Horizontal, 'БББ')
        if self.TN == "33":
            self.Tab_model.setHeaderData (1, QtCore.Qt.Horizontal, 'б')
            self.Tab_model.setHeaderData (2, QtCore.Qt.Horizontal, 'бб')
            self.Tab_model.setHeaderData (3, QtCore.Qt.Horizontal, 'ббб')
        if self.TN == "44":
            self.Tab_model.setHeaderData (1, QtCore.Qt.Horizontal, 'в')
            self.Tab_model.setHeaderData (2, QtCore.Qt.Horizontal, 'вв')
            self.Tab_model.setHeaderData (3, QtCore.Qt.Horizontal, 'ввв')
            self.Tab_model.setHeaderData (4, QtCore.Qt.Horizontal, 'вввв')
            self.Tab_model.setHeaderData (5, QtCore.Qt.Horizontal, 'ввввв')
            self.Tab_model.setHeaderData (6, QtCore.Qt.Horizontal, 'вввввв')
        if self.TN == "55":
            self.Tab_model.setHeaderData (1, QtCore.Qt.Horizontal, 'г')
        if self.TN == "66":
            self.Tab_model.setHeaderData (1, QtCore.Qt.Horizontal, 'т')
            self.Tab_model.setHeaderData (2, QtCore.Qt.Horizontal, 'тт')
            self.Tab_model.setHeaderData (3, QtCore.Qt.Horizontal, 'ттт')
        self.tab2.setModel(self.Tab_model)
        self.tab2.resizeColumnsToContents()
        self.tab2.verticalHeader().hide()
        self.tab2.setColumnWidth (0,0)
Вопрос: как будет правильнее (красивее что ли) и быстрее работать код - как есть или все-таки Tab_model прописать отдельным классом и все условия из tab1_clicked перенести в этот класс, а в функции оставить просто self.tab2.setModel(self.Tab_model)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2019, 16:03
Ответы с готовыми решениями:

Проверить правильность кода функций работы со строками
Нужно написать функции с рядком такие как, вставка в конец рядка и в ставка в рядок , удаление значения. Правильно я сделал? Проверял, все...

Скорость работы кода
Есть вот такой кусок кода: //uses crt; const n=20000; type t=array of integer; var a,b:t; i,k,m,j,t1,t2:integer; ...

Скорость работы кода
Вот допустим есть в главной функции цикл на 1000 итераций. Он заполняет по расчетной формуле массив, на 1000 элементов. Есть еще...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.11.2019, 16:03
Помогаю со студенческими работами здесь

Скорость работы кода
Вдруг возник такой вопрос: Очень давно пробовал скриптовый язык для автокликера UOPilot. И тут вспомнил, что в нем по умолчанию(если не...

Как измерить скорость работы кода
Хочу оптимизировать свой код и найти самые медленные места Можно как то измерить к примеру сколько времени занимает выполнение отдельного...

Влияние кода js на скорость работы сайта
Подскажите пожалуйста, допустим есть два сайта: на одном слайдер сделан только с помощью html/css, а на другом такой-же слайдер, но с...

Скорость работы кода, скомпилированного в разных IDE
Утро дорое, форум!! Вот какое дело. Я компилировал один и тот же код, сначала на Windows XP, с помощью Borland Builder 6, потом на...

Скорость работы кода под Иксами и в консоли
Суть вопроса в следующем. есть программа по поиску простых чисел: #include <chrono> #include <thread> #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru