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]
Exemple #3
0
    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()