def __init__(self, canvas): self.canvas = canvas self.table = Table(self.canvas, Point(50, 10), col_width=150, font_size=10) self.selected_item = None
def __init__(self, canvas): self.canvas = canvas self.table = Table(self.canvas, Point(100, 25), col_width=150, font_size=10) self.selected_car = None self.show_route = False self.follow_car = False self.show_route_btn = Button( self.flip_show_route, self.canvas, Point(self.canvas.width / 2, 320), width=200, height=30, label='Show Route', font_size=10, ) self.follow_btn = Button( self.flip_follow_car, self.canvas, Point(self.canvas.width / 2, 360), width=200, height=30, label='Follow Selected Car', font_size=10, ) self.buttons = [self.show_route_btn, self.follow_btn]
def _afterAppInit(self): """ Fired after WinterApp initialisation """ self.setWindowTitle(u'Нагрузочное тестирование БД') table=Table(self) # table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.table=table forms=QWidget() forms.setLayout(QGridLayout()) userform=QWidget() userform.setLayout(QFormLayout()) userform.setLayout(QVBoxLayout()) userform.layout().addWidget(QLabel(u'Список пользователей настраивается в файле main.cfg. <br>Пользователи циклично распределяются по потокам.')) dbform=QWidget() dbform.setLayout(QFormLayout()) self.user=QLineEdit() self.user.setText(self.config.options.app.db_user) self.password=QLineEdit() self.password.setText(self.config.options.app.db_password) self.host=QLineEdit() self.host.setText(self.config.options.app.db_host) self.base=QLineEdit() self.base.setText(self.config.options.app.db_base) self.domain=QLineEdit() self.domain.setText(self.config.options.app.domain) dbform.layout().addRow(u'Пользователь',self.user) dbform.layout().addRow(u'Пароль',self.password) dbform.layout().addRow(u'Сервер',self.host) dbform.layout().addRow(u'Имя базы',self.base) dbform.layout().addRow(u'Имя домена',self.domain) threadform=QWidget() threadform.setLayout(QGridLayout()) self.num=QSpinBox() self.num.setMaximum(999) self.num.setMinimum(1) self.num.setValue(self.config.options.app.threads_num) self.num.setToolTip(u'Значительно влияет на время выполнения и загрузку компьютера') threadform.layout().addWidget(QLabel(u'Количество потоков'),1,0) threadform.layout().addWidget(self.num,1,1) self.sepconnects=Switch(u'Создавать отдельные подключения на каждый запрос') threadform.layout().addWidget(self.sepconnects,3,0) self.skiperrors=Switch(u'Пропускать ошибки') threadform.layout().addWidget(self.skiperrors,4,0) self.fullc=Switch(u'Полный цикл') self.fullc.setChecked(True) self.fullc.stateChanged.connect(self.togglefull) threadform.layout().addWidget(self.fullc,5,0) self.minthreads=QSpinBox() self.minthreads.setValue(1) self.minthreads.setMaximum(999) self.minthreads.setMinimum(1) threadform.layout().addWidget(QLabel(u'Начально потоков'),6,0) threadform.layout().addWidget(self.minthreads,6,1) self.step=QSpinBox() self.step.setValue(1) self.step.setMaximum(999) self.step.setMinimum(1) threadform.layout().addWidget(QLabel(u'Шаг'),7,0) threadform.layout().addWidget(self.step,7,1) self.mc=QSpinBox() self.mc.setValue(0) self.mc.setMaximum(99999) self.mc.setMinimum(0) threadform.layout().addWidget(QLabel(u'Максимум запросов (0 = весь файл)'),2,0) threadform.layout().addWidget(self.mc,2,1) # options=QTabWidget() # options.addTab(dbform,u'Настройки БД') graphoptions=QWidget() graphoptions.setLayout(QFormLayout()) # options.addTab(graphoptions,u'Настройки графика') self.notshowmavg=Switch(u'Не показывать среднюю по максимуму') graphoptions.layout().addRow('',self.notshowmavg) self.showlevel01=Switch(u'Всегда показывать линию уровня 0.1sec') graphoptions.layout().addRow('',self.showlevel01) self.showlevel1=Switch(u'Всегда показывать линию уровня 1sec') graphoptions.layout().addRow('',self.showlevel1) self.notshowerr=Switch(u'Не показывать ошибки') graphoptions.layout().addRow('',self.notshowerr) self.detail=Switch(u'Детальный отчет') threadform.layout().addWidget(self.detail,8,0) # graphoptions.layout().addRow('',self.detail) # forms.layout().addWidget(options,1,1) # forms.layout().addWidget(threadform,1,0) self.sideBar = WinterSideBar(self) threadform.layout().setAlignment(Qt.AlignTop) self.createSBAction('configure','MainOptions',threadform,toolbar=True) self.createSBAction('db','db settings',dbform,toolbar=True) self.createSBAction('graph','graph settings',graphoptions,toolbar=True) self.resize(1200,600) widget=QWidget() widget.setLayout(QVBoxLayout()) widget.layout().addWidget(forms) widget.layout().addWidget(QLabel(u'')) widget.layout().addWidget(table) buttons=QWidget() buttons.setLayout(QHBoxLayout()) hb=QPushButton(u'Справка') hb.clicked.connect(self.help) self.progress=QProgressBar() buttons.layout().addWidget(hb) buttons.layout().addWidget(self.progress) spacerItem=QWidget() spacerItem.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum)) buttons.layout().addWidget(spacerItem) sb=QPushButton(u'Поехали!') sb.clicked.connect(self.launch) buttons.layout().addWidget(sb) bb=QPushButton(u'Стоп') bb.clicked.connect(self.stop) buttons.layout().addWidget(bb) qb=QPushButton(u'Выход') qb.clicked.connect(self.quit) buttons.layout().addWidget(qb) self.help=QMainWindow() self.help.resize(800,600) self.help.setWindowTitle(u'Справка') hwidget=QWidget() hwidget.setLayout(QVBoxLayout()) self.help.browser=QWebView() hwidget.layout().addWidget(self.help.browser) self.help.setCentralWidget(hwidget) self.viewer=QWebView() self.viewer.setFixedWidth(950) self.viewer.hide() wrapper=QWidget() wrapper.setLayout(QHBoxLayout()) wrapper.layout().addWidget(widget) wrapper.layout().addWidget(self.viewer) widget.layout().addWidget(buttons) self.total=0 self.callsnum=0 self.errnum=0 self.data=[] self.edata=[] self.mdata=[] self.tt=0 self.tts=[] self.force_stop=False self.callsavg={} self.pdata={} self.cc={} self.args={} self.setMainWidget(wrapper) # self.sideBar = WinterSideBar(self) self.core.start()