Exemple #1
0
    def initUI(self):

        self.dict_gen = Dictionary_generator('merriam webster',
                                             ['noun', 'verb', 'adjective'],
                                             'random')

        self.setWindowTitle('Dictionary Text Generator')

        screen_rect = QDesktopWidget().availableGeometry(self)
        screen_w, screen_h = screen_rect.width(), screen_rect.height()
        app_w = screen_w * .25
        app_h = screen_h * .75
        self.resize(app_w, app_h)

        selectDictionaryLabel = QLabel('Select dictionary to use:')
        selectDictionaryLabel.setAlignment(Qt.AlignTop)
        self.selectDictionaryDropdown = QComboBox()
        self.selectDictionaryDropdown.addItems(
            Dictionary_generator.dictionaries)

        selectMethodLabel = QLabel('Select method to use:')
        self.selectMethodDropdown = QComboBox()
        self.selectMethodDropdown.addItems(Dictionary_generator.methods)

        originWordLabel = QLabel(
            'Choose origin word(s) (if multiple, use a comma separated list):')
        self.originWord = QLineEdit()
        regexp = QRegExp('^[a-zA-Z]+(,[ ][a-zA-Z]+)*')
        self.validator = QRegExpValidator(regexp)
        self.originWord.setValidator(self.validator)

        numberOfWordsLabel = QLabel('Choose number of words used per output:')
        self.numberOfWords = QSpinBox()
        self.numberOfWords.setMinimum(1)

        numberOfLoopsLabel = QLabel('Choose number of times to loop output:')
        self.numberOfLoops = QSpinBox()
        self.numberOfLoops.setMinimum(1)

        generateButton = QPushButton('Generate text')
        #generateButton.clicked.connect(self.generate_text)
        generateButton.clicked.connect(self.start_generation)

        noteText = QLabel(
            'Note: Parts of speech used are noun, verb, and adjective')

        self.output = QLabel('')
        self.output.setFrameStyle(QFrame.Panel | QFrame.Sunken)
        self.output.setWordWrap(True)
        self.output.setAlignment(Qt.AlignTop)

        outputScrollArea = QScrollArea()
        outputScrollArea.setWidget(self.output)
        outputScrollArea.setWidgetResizable(True)

        clearTextButton = QPushButton('Clear output')
        clearTextButton.clicked.connect(self.clear_text)

        parametersGroup = QGroupBox('Input Parameters:')
        outputGroup = QGroupBox('Output:')

        parametersLayout = QVBoxLayout()
        outputLayout = QVBoxLayout()

        parametersLayout.addWidget(selectDictionaryLabel)
        parametersLayout.addWidget(self.selectDictionaryDropdown)
        parametersLayout.addWidget(selectMethodLabel)
        parametersLayout.addWidget(self.selectMethodDropdown)
        parametersLayout.addWidget(originWordLabel)
        parametersLayout.addWidget(self.originWord)
        parametersLayout.addWidget(numberOfWordsLabel)
        parametersLayout.addWidget(self.numberOfWords)
        parametersLayout.addWidget(numberOfLoopsLabel)
        parametersLayout.addWidget(self.numberOfLoops)
        parametersLayout.addWidget(generateButton)
        parametersLayout.setAlignment(generateButton, Qt.AlignCenter)
        parametersLayout.addWidget(noteText)

        outputLayout.addWidget(outputScrollArea)
        outputLayout.addWidget(clearTextButton)
        outputLayout.setAlignment(clearTextButton, Qt.AlignCenter)

        parametersGroup.setLayout(parametersLayout)
        parametersGroup.setMaximumHeight(app_h * .4)
        outputGroup.setLayout(outputLayout)

        mainLayout = QVBoxLayout(self)
        mainLayout.addWidget(parametersGroup)
        mainLayout.addWidget(outputGroup)

        self.setLayout(mainLayout)
Exemple #2
0
 def __init__(self):
     super(VNA, self).__init__()
     self.setupUi(self)
     # IP address validator
     rx = QRegExp(
         '^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$'
     )
     self.addrValue.setValidator(QRegExpValidator(rx, self.addrValue))
     # state variables
     self.idle = True
     self.reading = False
     self.auto = False
     # sweep parameters
     self.sweep_start = 10
     self.sweep_stop = 60000
     self.sweep_size = 6000
     # buffer and offset for the incoming samples
     self.buffer = bytearray(16 * 32768)
     self.offset = 0
     self.data = np.frombuffer(self.buffer, np.complex64)
     # create measurements
     self.open = Measurement(self.sweep_start, self.sweep_stop,
                             self.sweep_size)
     self.short = Measurement(self.sweep_start, self.sweep_stop,
                              self.sweep_size)
     self.load = Measurement(self.sweep_start, self.sweep_stop,
                             self.sweep_size)
     self.dut = Measurement(self.sweep_start, self.sweep_stop,
                            self.sweep_size)
     self.mode = 'open'
     # create figures
     self.tabs = {}
     for i in range(len(self.graphs)):
         layout = getattr(self, '%sLayout' % self.graphs[i])
         self.tabs[i] = FigureTab(layout, self)
     # configure widgets
     self.rateValue.addItems(
         ['10000', '5000', '1000', '500', '100', '50', '10', '5', '1'])
     self.rateValue.lineEdit().setReadOnly(True)
     self.rateValue.lineEdit().setAlignment(Qt.AlignRight)
     for i in range(self.rateValue.count()):
         self.rateValue.setItemData(i, Qt.AlignRight, Qt.TextAlignmentRole)
     self.set_enabled(False)
     self.stopSweep.setEnabled(False)
     # read settings
     settings = QSettings('vna.ini', QSettings.IniFormat)
     self.read_cfg_settings(settings)
     # create TCP socket
     self.socket = QTcpSocket(self)
     self.socket.connected.connect(self.connected)
     self.socket.readyRead.connect(self.read_data)
     self.socket.error.connect(self.display_error)
     # connect signals from widgets
     self.connectButton.clicked.connect(self.start)
     self.writeButton.clicked.connect(self.write_cfg)
     self.readButton.clicked.connect(self.read_cfg)
     self.openSweep.clicked.connect(partial(self.sweep, 'open'))
     self.shortSweep.clicked.connect(partial(self.sweep, 'short'))
     self.loadSweep.clicked.connect(partial(self.sweep, 'load'))
     self.singleSweep.clicked.connect(partial(self.sweep, 'dut'))
     self.autoSweep.clicked.connect(self.sweep_auto)
     self.stopSweep.clicked.connect(self.cancel)
     self.csvButton.clicked.connect(self.write_csv)
     self.s1pButton.clicked.connect(self.write_s1p)
     self.s2pshortButton.clicked.connect(self.write_s2p_short)
     self.s2popenButton.clicked.connect(self.write_s2p_open)
     self.startValue.valueChanged.connect(self.set_start)
     self.stopValue.valueChanged.connect(self.set_stop)
     self.sizeValue.valueChanged.connect(self.set_size)
     self.rateValue.currentIndexChanged.connect(self.set_rate)
     self.corrValue.valueChanged.connect(self.set_corr)
     self.phase1Value.valueChanged.connect(self.set_phase1)
     self.phase2Value.valueChanged.connect(self.set_phase2)
     self.level1Value.valueChanged.connect(self.set_level1)
     self.level2Value.valueChanged.connect(self.set_level2)
     self.tabWidget.currentChanged.connect(self.update_tab)
     # create timers
     self.startTimer = QTimer(self)
     self.startTimer.timeout.connect(self.timeout)
     self.sweepTimer = QTimer(self)
     self.sweepTimer.timeout.connect(self.sweep_timeout)
    def __init__(self, parent=None):
        """
        Constructor
        
        @param parent reference to the parent widget (QWidget)
        """
        super(QRegularExpressionWizardCharactersDialog, self).__init__(parent)
        self.setupUi(self)

        self.__initCharacterSelectors()

        self.comboItems = []
        self.singleComboItems = []  # these are in addition to the above
        self.comboItems.append((self.tr("Normal character"), "-c"))
        self.comboItems.append(
            (self.tr("Unicode character in hexadecimal notation"), "-h"))
        self.comboItems.append(
            (self.tr("ASCII/Latin1 character in octal notation"), "-o"))
        self.singleComboItems.extend([
            ("---", "-i"),
            (self.tr("Bell character (\\a)"), "\\a"),
            (self.tr("Escape character (\\e)"), "\\e"),
            (self.tr("Page break (\\f)"), "\\f"),
            (self.tr("Line feed (\\n)"), "\\n"),
            (self.tr("Carriage return (\\r)"), "\\r"),
            (self.tr("Horizontal tabulator (\\t)"), "\\t"),
            ("---", "-i"),
            (self.tr("Character Category"), "-ccp"),
            (self.tr("Special Character Category"), "-csp"),
            (self.tr("Character Block"), "-cbp"),
            (self.tr("POSIX Named Set"), "-psp"),
            (self.tr("Not Character Category"), "-ccn"),
            (self.tr("Not Character Block"), "-cbn"),
            (self.tr("Not Special Character Category"), "-csn"),
            (self.tr("Not POSIX Named Set"), "-psn"),
        ])

        self.charValidator = QRegExpValidator(QRegExp(".{0,1}"), self)
        self.hexValidator = QRegExpValidator(QRegExp("[0-9a-fA-F]{0,4}"), self)
        self.octValidator = QRegExpValidator(QRegExp("[0-3]?[0-7]{0,2}"), self)

        # generate dialog part for single characters
        self.singlesBoxLayout = QVBoxLayout(self.singlesBox)
        self.singlesBoxLayout.setObjectName("singlesBoxLayout")
        self.singlesBoxLayout.setSpacing(6)
        self.singlesBoxLayout.setContentsMargins(6, 6, 6, 6)
        self.singlesBox.setLayout(self.singlesBoxLayout)
        self.singlesView = QScrollArea(self.singlesBox)
        self.singlesView.setObjectName("singlesView")
        self.singlesBoxLayout.addWidget(self.singlesView)

        self.singlesItemsBox = QWidget(self)
        self.singlesView.setWidget(self.singlesItemsBox)
        self.singlesItemsBox.setObjectName("singlesItemsBox")
        self.singlesItemsBox.setMinimumWidth(1000)
        self.singlesItemsBoxLayout = QVBoxLayout(self.singlesItemsBox)
        self.singlesItemsBoxLayout.setContentsMargins(6, 6, 6, 6)
        self.singlesItemsBoxLayout.setSpacing(6)
        self.singlesItemsBox.setLayout(self.singlesItemsBoxLayout)
        self.singlesEntries = []
        self.__addSinglesLine()

        hlayout0 = QHBoxLayout()
        hlayout0.setContentsMargins(0, 0, 0, 0)
        hlayout0.setSpacing(6)
        hlayout0.setObjectName("hlayout0")
        self.moreSinglesButton = QPushButton(self.tr("Additional Entries"),
                                             self.singlesBox)
        self.moreSinglesButton.setObjectName("moreSinglesButton")
        hlayout0.addWidget(self.moreSinglesButton)
        hspacer0 = QSpacerItem(30, 20, QSizePolicy.Expanding,
                               QSizePolicy.Minimum)
        hlayout0.addItem(hspacer0)
        self.singlesBoxLayout.addLayout(hlayout0)
        self.moreSinglesButton.clicked.connect(self.__addSinglesLine)

        # generate dialog part for character ranges
        self.rangesBoxLayout = QVBoxLayout(self.rangesBox)
        self.rangesBoxLayout.setObjectName("rangesBoxLayout")
        self.rangesBoxLayout.setSpacing(6)
        self.rangesBoxLayout.setContentsMargins(6, 6, 6, 6)
        self.rangesBox.setLayout(self.rangesBoxLayout)
        self.rangesView = QScrollArea(self.rangesBox)
        self.rangesView.setObjectName("rangesView")
        self.rangesBoxLayout.addWidget(self.rangesView)

        self.rangesItemsBox = QWidget(self)
        self.rangesView.setWidget(self.rangesItemsBox)
        self.rangesItemsBox.setObjectName("rangesItemsBox")
        self.rangesItemsBox.setMinimumWidth(1000)
        self.rangesItemsBoxLayout = QVBoxLayout(self.rangesItemsBox)
        self.rangesItemsBoxLayout.setContentsMargins(6, 6, 6, 6)
        self.rangesItemsBoxLayout.setSpacing(6)
        self.rangesItemsBox.setLayout(self.rangesItemsBoxLayout)
        self.rangesEntries = []
        self.__addRangesLine()

        hlayout1 = QHBoxLayout()
        hlayout1.setContentsMargins(0, 0, 0, 0)
        hlayout1.setSpacing(6)
        hlayout1.setObjectName("hlayout1")
        self.moreRangesButton = QPushButton(self.tr("Additional Entries"),
                                            self.rangesBox)
        self.moreSinglesButton.setObjectName("moreRangesButton")
        hlayout1.addWidget(self.moreRangesButton)
        hspacer1 = QSpacerItem(30, 20, QSizePolicy.Expanding,
                               QSizePolicy.Minimum)
        hlayout1.addItem(hspacer1)
        self.rangesBoxLayout.addLayout(hlayout1)
        self.moreRangesButton.clicked.connect(self.__addRangesLine)
Exemple #4
0
        def __init__(self, parent=None):
            super(Widget, self).__init__(parent)
            self.setWindowTitle("Keuze grafieken externe werken")
            self.setWindowIcon(QIcon('./images/logos/logo.jpg'))

            self.setFont(QFont('Arial', 10))

            self.Keuze = QLabel()
            kEdit = QComboBox()
            kEdit.setFixedWidth(300)
            kEdit.setFont(QFont("Arial", 10))
            kEdit.setStyleSheet("color: black;  background-color: gainsboro")
            kEdit.addItem('                  Keuze Grafieken')
            kEdit.addItem('1. Kosten totaal begroot-werkelijk')
            kEdit.addItem('2. Lonen begroot-werkelijk')
            kEdit.addItem('3. Materialen begroot-werkelijk')
            kEdit.addItem('4. Materiëel begroot-werkelijk')
            kEdit.addItem('5. Inhuur begroot-werkelijk')
            kEdit.addItem('6. Diensten begroot-werkelijk')
            kEdit.addItem('7. Projektkosten begroot-werkelijk')
            kEdit.addItem('8. Bruto winst - prognose / aktueel')
            kEdit.addItem('9. Onderhandenwerk - Betaald bedrag')
            kEdit.addItem('A. Opbrengsten - prognose / aktueel')
            kEdit.addItem('B. Bruto winst werkelijk\n     Meerminderwerk')

            kEdit.activated[str].connect(self.kChanged)

            self.Zoekterm = QLabel()
            zktermEdit = QLineEdit()
            zktermEdit.setFixedWidth(65)
            zktermEdit.setFont(QFont("Arial", 10))
            zktermEdit.textChanged.connect(self.zktermChanged)
            reg_ex = QRegExp("^[2]{1}[0-9]{3}[0-5]{1}[0-9]{1}$")
            input_validator = QRegExpValidator(reg_ex, zktermEdit)
            zktermEdit.setValidator(input_validator)

            grid = QGridLayout()
            grid.setSpacing(20)

            lbl = QLabel()
            pixmap = QPixmap('./images/logos/verbinding.jpg')
            lbl.setPixmap(pixmap)
            grid.addWidget(lbl, 0, 0, 1, 2)

            grid.addWidget(kEdit, 1, 0, 1, 2, Qt.AlignRight)
            lbl1 = QLabel('Jaarweek-uitdraai (jjjjww)')
            lbl1.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl1, 2, 0, 1, 2, Qt.AlignCenter)
            grid.addWidget(zktermEdit, 2, 1, 1, 1, Qt.AlignRight)

            self.setLayout(grid)
            self.setGeometry(500, 200, 150, 150)

            grid.addWidget(
                QLabel('\u00A9 2017 all rights reserved [email protected]'),
                4, 0, 1, 2, Qt.AlignRight)

            logo = QLabel()
            pixmap = QPixmap('./images/logos/logo.jpg')
            logo.setPixmap(pixmap)
            grid.addWidget(logo, 0, 1, 1, 1, Qt.AlignRight)

            applyBtn = QPushButton('Zoeken')
            applyBtn.clicked.connect(self.accept)

            sluitBtn = QPushButton('Sluiten')
            sluitBtn.clicked.connect(lambda: windowSluit(self, m_email))

            grid.addWidget(applyBtn, 3, 1, 1, 1, Qt.AlignRight)
            applyBtn.setFont(QFont("Arial", 10))
            applyBtn.setFixedWidth(100)
            applyBtn.setStyleSheet(
                "color: black;  background-color: gainsboro")

            grid.addWidget(sluitBtn, 3, 0, 1, 2, Qt.AlignCenter)
            sluitBtn.setFont(QFont("Arial", 10))
            sluitBtn.setFixedWidth(100)
            sluitBtn.setStyleSheet(
                "color: black;  background-color: gainsboro")
Exemple #5
0
 def __init__(self):
     super(VNA, self).__init__()
     self.setupUi(self)
     # IP address validator
     rx = QRegExp(
         '^(((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(rp\-[a-f,0-9][a-f,0-9][a-f,0-9][a-f,0-9][a-f,0-9][a-f,0-9]\.local))$'
     )
     self.addrValue.setValidator(QRegExpValidator(rx, self.addrValue))
     # state variables
     self.idle = True
     self.reading = False
     # sweep parameters
     self.sweep_start = 100
     self.sweep_stop = 60000
     self.sweep_size = 600
     self.xaxis, self.sweep_step = np.linspace(self.sweep_start,
                                               self.sweep_stop,
                                               self.sweep_size,
                                               retstep=True)
     self.xaxis *= 1000
     # buffer and offset for the incoming samples
     self.buffer = bytearray(24 * VNA.max_size)
     self.offset = 0
     self.data = np.frombuffer(self.buffer, np.complex64)
     self.adc1 = np.zeros(VNA.max_size, np.complex64)
     self.adc2 = np.zeros(VNA.max_size, np.complex64)
     self.dac1 = np.zeros(VNA.max_size, np.complex64)
     self.open = np.zeros(VNA.max_size, np.complex64)
     self.short = np.zeros(VNA.max_size, np.complex64)
     self.load = np.zeros(VNA.max_size, np.complex64)
     self.dut = np.zeros(VNA.max_size, np.complex64)
     self.mode = 'dut'
     # create figure
     self.figure = Figure()
     self.figure.set_facecolor('none')
     self.canvas = FigureCanvas(self.figure)
     self.plotLayout.addWidget(self.canvas)
     # create navigation toolbar
     self.toolbar = NavigationToolbar(self.canvas, self.plotWidget, False)
     # initialize cursor
     self.cursor = None
     # remove subplots action
     actions = self.toolbar.actions()
     self.toolbar.removeAction(actions[7])
     self.plotLayout.addWidget(self.toolbar)
     # create TCP socket
     self.socket = QTcpSocket(self)
     self.socket.connected.connect(self.connected)
     self.socket.readyRead.connect(self.read_data)
     self.socket.error.connect(self.display_error)
     # connect signals from buttons and boxes
     self.sweepFrame.setEnabled(False)
     self.dutSweep.setEnabled(False)
     self.connectButton.clicked.connect(self.start)
     self.writeButton.clicked.connect(self.write_cfg)
     self.readButton.clicked.connect(self.read_cfg)
     self.openSweep.clicked.connect(self.sweep_open)
     self.shortSweep.clicked.connect(self.sweep_short)
     self.loadSweep.clicked.connect(self.sweep_load)
     self.dutSweep.clicked.connect(self.sweep_dut)
     self.csvButton.clicked.connect(self.write_csv)
     self.s1pButton.clicked.connect(self.write_s1p)
     self.s2pButton.clicked.connect(self.write_s2p)
     self.startValue.valueChanged.connect(self.set_start)
     self.stopValue.valueChanged.connect(self.set_stop)
     self.sizeValue.valueChanged.connect(self.set_size)
     self.rateValue.addItems(['500', '100', '50', '10', '5', '1'])
     self.rateValue.lineEdit().setReadOnly(True)
     self.rateValue.lineEdit().setAlignment(Qt.AlignRight)
     for i in range(0, self.rateValue.count()):
         self.rateValue.setItemData(i, Qt.AlignRight, Qt.TextAlignmentRole)
     self.rateValue.currentIndexChanged.connect(self.set_rate)
     self.corrValue.valueChanged.connect(self.set_corr)
     self.levelValue.valueChanged.connect(self.set_level)
     self.openPlot.clicked.connect(self.plot_open)
     self.shortPlot.clicked.connect(self.plot_short)
     self.loadPlot.clicked.connect(self.plot_load)
     self.dutPlot.clicked.connect(self.plot_dut)
     self.smithPlot.clicked.connect(self.plot_smith)
     self.impPlot.clicked.connect(self.plot_imp)
     self.rcPlot.clicked.connect(self.plot_rc)
     self.swrPlot.clicked.connect(self.plot_swr)
     self.rlPlot.clicked.connect(self.plot_rl)
     self.gainPlot.clicked.connect(self.plot_gain)
     # create timer
     self.startTimer = QTimer(self)
     self.startTimer.timeout.connect(self.timeout)
Exemple #6
0
 def apply_validation(self, line_edit, pattern):
     reg_ex = QRegExp(pattern)
     input_validator = QRegExpValidator(reg_ex, line_edit)
     line_edit.setValidator(input_validator)
 def setup_validators(self):
     # check if the text is an empty string
     rx = QRegExp('^(?!\\s*$).+')
     self.filename_validator = QRegExpValidator(rx)
Exemple #8
0
    def initUI(self, pos_offset):

        self.setWindowTitle(f"DataViewer - {self.df.name}")
        self.setGeometry(80 + pos_offset, 300 + pos_offset, 900, 650)

        # for the status bar
        main_widget = QWidget()
        self.statusBar()

        self.tsCanvas = mkTimeSeriesCanvas()
        main_frame = QWidget()
        self.tsCanvas.setParent(main_frame)
        ntb = NavigationToolbar(self.tsCanvas, main_frame)  # full toolbar

        # the table instance,
        DataTable = QTableView()
        model = PandasModel(self.df)
        DataTable.setModel(model)
        DataTable.setSelectionBehavior(2)  # columns only
        DataTable.clicked.connect(
            self.Table_select)  # magically transports QModelIndex
        # so that it also works for header selection
        header = DataTable.horizontalHeader()  # returns QHeaderView
        header.sectionClicked.connect(
            self.Header_select)  # magically transports QModelIndex

        # size policy for DataTable, not needed..?!
        # size_pol= QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
        # DataTable.setSizePolicy(size_pol)

        # the signal selection box
        SignalBox = QComboBox(self)
        SignalBox.setStatusTip(
            "..or just click directly on a signal in the table!")

        main_layout_v = QVBoxLayout()  # The whole Layout
        # Data selction drop-down
        dataLabel = QLabel("Select Signal", self)

        dt_label = QLabel("Sampling Interval:")
        self.dt_edit = QLineEdit()
        self.dt_edit.setStatusTip("How much time in between two recordings?")
        self.dt_edit.setMinimumSize(70, 0)  # no effect :/
        self.dt_edit.setValidator(posfloatV)

        unit_label = QLabel("Time Unit:")
        self.unit_edit = QLineEdit(self)
        self.unit_edit.setStatusTip("Changes only the axis labels..")
        self.unit_edit.setMinimumSize(70, 0)

        top_bar_box = QWidget()
        top_bar_layout = QHBoxLayout()

        top_bar_layout.addWidget(dataLabel)
        top_bar_layout.addWidget(SignalBox)
        top_bar_layout.addStretch(0)
        top_bar_layout.addWidget(dt_label)
        top_bar_layout.addWidget(self.dt_edit)
        top_bar_layout.addStretch(0)
        top_bar_layout.addWidget(unit_label)
        top_bar_layout.addWidget(self.unit_edit)
        top_bar_layout.addStretch(0)
        top_bar_box.setLayout(top_bar_layout)

        top_and_table = QGroupBox("Settings and Data")
        top_and_table_layout = QVBoxLayout()
        top_and_table_layout.addWidget(top_bar_box)
        top_and_table_layout.addWidget(DataTable)
        top_and_table.setLayout(top_and_table_layout)
        main_layout_v.addWidget(top_and_table)

        ## detrending parameter

        self.T_c_edit = QLineEdit()
        self.T_c_edit.setMaximumWidth(70)
        self.T_c_edit.setValidator(posfloatV)
        self.T_c_edit.setStatusTip("..in time units, e.g. 120min")

        sinc_options_box = QGroupBox("Sinc Detrending")
        sinc_options_layout = QGridLayout()
        sinc_options_layout.addWidget(QLabel("Cut-off Period:"), 0, 0)
        sinc_options_layout.addWidget(self.T_c_edit, 0, 1)
        sinc_options_box.setLayout(sinc_options_layout)

        ## Amplitude envelope parameter
        self.wsize_edit = QLineEdit()
        self.wsize_edit.setMaximumWidth(70)
        self.wsize_edit.setValidator(self.envelopeV)
        self.wsize_edit.setStatusTip("..in time units, e.g. 120min")

        envelope_options_box = QGroupBox("Amplitude Envelope")
        envelope_options_layout = QGridLayout()
        envelope_options_layout.addWidget(QLabel("Window Size:"), 0, 0)
        envelope_options_layout.addWidget(self.wsize_edit, 0, 1)
        envelope_options_box.setLayout(envelope_options_layout)

        # plot options box
        plot_options_box = QGroupBox("Plotting Options")
        plot_options_layout = QGridLayout()

        self.cb_raw = QCheckBox("Raw Signal", self)
        self.cb_raw.setStatusTip("Plots the raw unfiltered signal")

        self.cb_trend = QCheckBox("Trend", self)
        self.cb_trend.setStatusTip("Plots the sinc filtered signal")

        self.cb_detrend = QCheckBox("Detrended Signal", self)
        self.cb_detrend.setStatusTip(
            "Plots the signal after trend subtraction (detrending)")

        self.cb_envelope = QCheckBox("Envelope", self)
        self.cb_envelope.setStatusTip("Plots the estimated amplitude envelope")

        plotButton = QPushButton("Refresh Plot", self)
        plotButton.setStatusTip(
            "Updates the plot with the new filter parameter values")
        plotButton.clicked.connect(self.doPlot)

        saveButton = QPushButton("Save Filter Results", self)
        saveButton.clicked.connect(self.save_out_trend)
        saveButton.setStatusTip(
            "Writes the trend and the detrended signal into a file")

        ## checkbox layout
        plot_options_layout.addWidget(self.cb_raw, 0, 0)
        plot_options_layout.addWidget(self.cb_trend, 0, 1)
        plot_options_layout.addWidget(self.cb_detrend, 1, 0)
        plot_options_layout.addWidget(self.cb_envelope, 1, 1)
        plot_options_layout.addWidget(plotButton, 2, 0)
        plot_options_layout.addWidget(saveButton, 2, 1, 1, 1)
        plot_options_box.setLayout(plot_options_layout)

        ## checkbox signal set and change
        self.cb_raw.toggle()

        self.cb_raw.stateChanged.connect(self.toggle_raw)
        self.cb_trend.stateChanged.connect(self.toggle_trend)
        self.cb_detrend.stateChanged.connect(self.toggle_trend)
        self.cb_envelope.stateChanged.connect(self.toggle_envelope)

        # Ploting box/Canvas area
        plot_box = QGroupBox("Signal and Trend")
        plot_layout = QVBoxLayout()
        plot_layout.addWidget(self.tsCanvas)
        plot_layout.addWidget(ntb)
        plot_box.setLayout(plot_layout)

        # Analyzer box with tabs
        ana_widget = QGroupBox("Analysis")
        ana_box = QVBoxLayout()

        ## Initialize tab scresen
        tabs = QTabWidget()
        tab1 = QWidget()
        tab2 = QWidget()

        ## Add tabs
        tabs.addTab(tab1, "Wavelet Analysis")
        tabs.addTab(tab2, "Fourier Transform")

        ## Create first tab
        tab1.parameter_box = QFormLayout()

        ## for wavlet params, button, etc.
        self.Tmin_edit = QLineEdit()
        self.Tmin_edit.setStatusTip("This is the lower period limit")
        self.nT_edit = QLineEdit()
        self.nT_edit.setValidator(QRegExpValidator(QRegExp('[0-9]+')))
        self.nT_edit.setStatusTip(
            "Increase this number for more spectral resolution")
        self.Tmax_edit = QLineEdit()
        self.Tmax_edit.setStatusTip("This is the upper period limit")

        self.pow_max_edit = QLineEdit()
        self.pow_max_edit.setStatusTip(
            "Enter a fixed value or leave blank for automatic wavelet power scaling"
        )

        Tmin_lab = QLabel("Lowest period")
        step_lab = QLabel("Number of periods")
        Tmax_lab = QLabel("Highest  period")
        pow_max_lab = QLabel("Expected maximal power")

        Tmin_lab.setWordWrap(True)
        step_lab.setWordWrap(True)
        Tmax_lab.setWordWrap(True)
        pow_max_lab.setWordWrap(True)

        wletButton = QPushButton("Analyze Signal", self)
        wletButton.setStyleSheet("background-color: lightblue")
        wletButton.setStatusTip("Opens the wavelet analysis..")
        wletButton.clicked.connect(self.run_wavelet_ana)

        batchButton = QPushButton("Analyze All..", self)
        batchButton.clicked.connect(self.run_batch)
        batchButton.setStatusTip("Starts the batch processing")

        ## add  button to layout
        wlet_button_layout_h = QHBoxLayout()

        wlet_button_layout_h.addStretch(0)
        wlet_button_layout_h.addWidget(wletButton)
        wlet_button_layout_h.addStretch(0)
        wlet_button_layout_h.addWidget(batchButton)
        wlet_button_layout_h.addStretch(0)

        self.cb_use_detrended = QCheckBox("Use Detrended Signal", self)
        # self.cb_use_detrended.stateChanged.connect(self.toggle_trend)
        self.cb_use_detrended.setChecked(True)  # detrend by default

        self.cb_use_envelope = QCheckBox("Normalize with Envelope", self)
        self.cb_use_envelope.stateChanged.connect(self.toggle_envelope)
        self.cb_use_envelope.setChecked(False)  # no envelope by default

        ## Add Wavelet analyzer options to tab1.parameter_box layout

        tab1.parameter_box.addRow(Tmin_lab, self.Tmin_edit)
        tab1.parameter_box.addRow(Tmax_lab, self.Tmax_edit)
        tab1.parameter_box.addRow(step_lab, self.nT_edit)
        tab1.parameter_box.addRow(pow_max_lab, self.pow_max_edit)
        tab1.parameter_box.addRow(self.cb_use_detrended)
        tab1.parameter_box.addRow(self.cb_use_envelope)
        tab1.parameter_box.addRow(wlet_button_layout_h)

        tab1.setLayout(tab1.parameter_box)

        # fourier button
        fButton = QPushButton("Analyze Signal", self)
        ## add  button to layout
        f_button_layout_h = QHBoxLayout()
        fButton.clicked.connect(self.run_fourier_ana)
        f_button_layout_h.addStretch(0)
        f_button_layout_h.addWidget(fButton)

        # fourier detrended switch
        self.cb_use_detrended2 = QCheckBox("Use Detrended Signal", self)
        self.cb_use_detrended2.setChecked(True)  # detrend by default

        self.cb_use_envelope2 = QCheckBox("Normalize with Envelope", self)
        self.cb_use_envelope2.setChecked(False)

        # fourier period or frequency view
        self.cb_FourierT = QCheckBox("Show Frequencies", self)
        self.cb_FourierT.setChecked(False)  # show periods per default

        ## Create second tab
        tab2.parameter_box = QFormLayout()
        # tab2.parameter_box.addRow(Tmin_lab,self.Tmin)
        # tab2.parameter_box.addRow(Tmax_lab,self.Tmax)
        tab2.parameter_box.addRow(self.cb_use_detrended2)
        tab2.parameter_box.addRow(self.cb_use_envelope2)
        tab2.parameter_box.addRow(self.cb_FourierT)
        tab2.parameter_box.addRow(f_button_layout_h)
        tab2.setLayout(tab2.parameter_box)

        # Add tabs to Vbox
        ana_box.addWidget(tabs)
        # set layout of ana_widget (will be added to options layout)
        # as ana_box (containing actual layout)
        ana_widget.setLayout(ana_box)

        # Fix size of table_widget containing parameter boxes
        # -> it's all done via column stretches of
        # the GridLayout below
        # size_pol= QSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
        # ana_widget.setSizePolicy(size_pol)

        # ==========Plot and Options Layout=================================
        # Merge Plotting canvas and options
        plot_and_options = QWidget()
        layout = QGridLayout()
        plot_and_options.setLayout(layout)

        layout.addWidget(plot_box, 0, 0, 4, 1)
        layout.addWidget(sinc_options_box, 0, 5, 1, 1)
        layout.addWidget(envelope_options_box, 0, 6, 1, 1)
        layout.addWidget(plot_options_box, 1, 5, 1, 2)
        layout.addWidget(ana_widget, 2, 5, 2, 2)

        # plotting-canvas column stretch <-> 1st (0th) column
        layout.setColumnStretch(0, 1)  # plot should stretch
        layout.setColumnMinimumWidth(0, 360)  # plot should not get too small

        layout.setColumnStretch(1, 0)  # options shouldn't stretch
        layout.setColumnStretch(2, 0)  # options shouldn't stretch

        # ==========Main Layout=======================================
        main_layout_v.addWidget(plot_and_options)  # is a VBox

        # populate signal selection box
        SignalBox.addItem("")  # empty initial selector

        for col in self.df.columns:
            SignalBox.addItem(col)

        # connect to plotting machinery
        SignalBox.activated[str].connect(self.select_signal_and_Plot)
        # to modify current index by table selections
        self.SignalBox = SignalBox

        # --- connect some parameter fields ---

        self.dt_edit.textChanged[str].connect(self.qset_dt)
        self.unit_edit.textChanged[str].connect(self.qset_time_unit)

        # --- initialize parameter fields from settings ---

        self.load_settings()

        main_widget.setLayout(main_layout_v)
        self.setCentralWidget(main_widget)
        self.show()
 def __init__(self, parent):
     super().__init__(parent)
     self.setupUi(self)
     self.browsePushButton.clicked.connect(self.open_file_window)
     self.toLineEdit.setValidator(QRegExpValidator(EMAIL_REGEXP))
     self.show()
                def __init__(self):
                    QDialog.__init__(self)

                    grid = QGridLayout()
                    grid.setSpacing(20)

                    self.lbl = QLabel()
                    self.pixmap = QPixmap('./images/logos/verbinding.jpg')
                    self.lbl.setPixmap(self.pixmap)
                    grid.addWidget(self.lbl, 0, 1, 1, 2)

                    self.logo = QLabel()
                    self.pixmap = QPixmap('./images/logos/logo.jpg')
                    self.logo.setPixmap(self.pixmap)
                    grid.addWidget(self.logo, 0, 2, 1, 1, Qt.AlignRight)

                    grid.addWidget(QLabel('Clusternummer               '+clusternr+\
                                        '\n'+momschr[:35]), 1, 1, 1, 3)

                    self.setFont(QFont('Arial', 10))
                    grid.addWidget(
                        QLabel('Artikelnummer               ' +
                               str(artikelnr)), 3, 1, 1, 3)

                    self.setWindowTitle("Clusters Samenstellen")
                    self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
                    self.setFont(QFont('Arial', 10))

                    self.Hoeveelheid = QLabel(self)
                    self.Hoeveelheid.setText('Hoeveelheid ')
                    self.hoev = QLineEdit(self)
                    self.hoev.setFixedWidth(210)
                    reg_ex = QRegExp("^[-+]?[0-9]*\.?[0-9]+$")
                    input_validator = QRegExpValidator(reg_ex, self.hoev)
                    self.hoev.setValidator(input_validator)

                    grid.addWidget(self.Hoeveelheid, 4, 1)
                    grid.addWidget(self.hoev, 4, 2)

                    grid.addWidget(
                        QLabel(
                            '\u00A9 2017 all rights reserved\n     [email protected]'
                        ), 6, 0, 1, 3, Qt.AlignCenter)

                    self.applyBtn = QPushButton('Invoeren', self)
                    self.applyBtn.clicked.connect(self.clickMethod)
                    grid.addWidget(self.applyBtn, 5, 2, 1, 1, Qt.AlignRight)
                    self.applyBtn.setFont(QFont("Arial", 10))
                    self.applyBtn.setFixedWidth(100)
                    self.applyBtn.setStyleSheet(
                        "color: black;  background-color: gainsboro")

                    self.cancelBtn = QPushButton('Sluiten')
                    self.cancelBtn.clicked.connect(self.close)
                    grid.addWidget(self.cancelBtn, 5, 1, 1, 2, Qt.AlignCenter)
                    self.cancelBtn.setFont(QFont("Arial", 10))
                    self.cancelBtn.setFixedWidth(100)
                    self.cancelBtn.setStyleSheet(
                        "color: black;  background-color: gainsboro")

                    self.setLayout(grid)
                    self.setGeometry(500, 100, 150, 150)
        def __init__(self, parent=None):
            super(Widget, self).__init__(parent)
            self.setWindowTitle("Cluster -> Artikelen bereik")
            self.setWindowIcon(QIcon('./images/logos/logo.jpg'))

            self.setFont(QFont('Arial', 10))

            self.Clusternummer = QLabel()
            clEdit = QLineEdit()
            clEdit.setFixedWidth(210)
            font = QFont("Arial", 10)
            font.setCapitalization(QFont.AllUppercase)
            clEdit.setFont(font)
            reg_ex = QRegExp('^[L-Tl-t]{1}[A-Za-z]{1}[0-9]{5}')
            input_validator = QRegExpValidator(reg_ex, clEdit)
            clEdit.setValidator(input_validator)
            clEdit.textChanged.connect(self.clChanged)

            self.Keuze = QLabel()
            k0Edit = QComboBox()
            k0Edit.setFixedWidth(320)
            k0Edit.setFont(QFont("Arial", 10))
            k0Edit.setStyleSheet("color: black;  background-color: #F8F7EE")
            k0Edit.addItem('                  Zoeken Artikelen')
            k0Edit.addItem('1. Alle Artikelen')
            k0Edit.addItem('2. Filter op artikelnummers')
            k0Edit.addItem('3. Filter op artikelomschrijving')
            k0Edit.activated[str].connect(self.k0Changed)

            self.Zoekterm = QLabel()
            zktermEdit = QLineEdit()
            zktermEdit.setFixedWidth(210)
            zktermEdit.setFont(QFont("Arial", 10))
            reg_ex = QRegExp('^.{0,20}$')
            input_validator = QRegExpValidator(reg_ex, zktermEdit)
            zktermEdit.setValidator(input_validator)
            zktermEdit.textChanged.connect(self.zktermChanged)

            grid = QGridLayout()
            grid.setSpacing(20)

            lbl = QLabel()
            pixmap = QPixmap('./images/logos/verbinding.jpg')
            lbl.setPixmap(pixmap)
            grid.addWidget(lbl, 1, 0, 1, 2)

            lbl2 = QLabel('Clusternummer')
            lbl2.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl2, 2, 0)
            grid.addWidget(clEdit, 2, 1)

            grid.addWidget(k0Edit, 3, 0, 1, 2, Qt.AlignRight)
            lbl1 = QLabel('Zoekterm')
            lbl1.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl1, 4, 0)
            grid.addWidget(zktermEdit, 4, 1)

            self.setLayout(grid)
            self.setGeometry(500, 300, 150, 150)

            grid.addWidget(
                QLabel('\u00A9 2017 all rights reserved [email protected]'),
                6, 0, 1, 3)

            logo = QLabel()
            pixmap = QPixmap('./images/logos/logo.jpg')
            logo.setPixmap(pixmap)
            grid.addWidget(logo, 1, 1, 1, 1, Qt.AlignRight)

            applyBtn = QPushButton('Zoeken')
            applyBtn.clicked.connect(self.accept)

            grid.addWidget(applyBtn, 5, 1, 1, 1, Qt.AlignRight)
            applyBtn.setFont(QFont("Arial", 10))
            applyBtn.setFixedWidth(100)
            applyBtn.setStyleSheet(
                "color: black;  background-color: gainsboro")

            cancelBtn = QPushButton('Sluiten')
            cancelBtn.clicked.connect(lambda: windowSluit(self, m_email))

            grid.addWidget(cancelBtn, 5, 1, 1, 2)
            cancelBtn.setFont(QFont("Arial", 10))
            cancelBtn.setFixedWidth(100)
            cancelBtn.setStyleSheet(
                "color: black;  background-color: gainsboro")
Exemple #12
0
    def __init__(self):
        """

        """
        super(wearTableView, self).__init__()
        self.setupUi(self)
        self.toolbar = QtWidgets.QToolBar("Navigation")
        self.addToolBar(self.toolbar)
        self.refreshAct = QtWidgets.QAction(QtGui.QIcon("refresh1.ico"),
                                            "刷新织轴卡列表")
        self.firstAct = QtWidgets.QAction(QtGui.QIcon("firstPage1.ico"),
                                          "查看第一页织轴卡列表")
        self.prevAct = QtWidgets.QAction(QtGui.QIcon("prevPage2.ico"),
                                         "查看上一页织轴卡列表")
        self.lastAct = QtWidgets.QAction(QtGui.QIcon("lastPage2.ico"),
                                         "查看下一页织轴卡列表")
        self.endAct = QtWidgets.QAction(QtGui.QIcon("endPage1.ico"),
                                        "查看最后一页织轴卡列表")
        self.lookLatestAct = QtWidgets.QAction(QtGui.QIcon("Eye.ico"),
                                               "查看最新织轴卡")

        self.lableFont = QFont("Roman times", 12, QFont.Bold)
        self.timeLable = QtWidgets.QLabel()
        self.timeLable.setSizePolicy(
            QtWidgets.QSizePolicy.Expanding,
            self.timeLable.sizePolicy().verticalPolicy())
        self.nowtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        self.timeLable.setText(str(self.nowtime))
        self.timeLable.setFont(self.lableFont)
        self.timeLable.setStyleSheet("color:blue")
        self.timeLable.setAlignment(Qt.AlignCenter)

        self.curPage = 0
        self.curPageEdit = QLineEdit()
        validator = QRegExpValidator(QRegExp("\d+"))
        self.curPageEdit.setValidator(validator)  # 设置只能输入数字
        self.curPageEdit.setText(str(self.curPage))
        self.curPageEdit.setMaximumSize(QSize(40, 20))
        self.curPageEdit.setFont(self.lableFont)
        self.curPageEdit.setStyleSheet("color:blue")
        self.curPageEdit.setAlignment(Qt.AlignCenter)

        self.totalPage = 0
        self.totalPageLable = QtWidgets.QLabel()
        self.totalPageLable.setText("/" + str(self.totalPage) + "(共" +
                                    str(self.totalPage) + "页)")
        self.totalPageLable.setFont(self.lableFont)
        self.totalPageLable.setStyleSheet("color:blue")
        self.totalPageLable.setAlignment(Qt.AlignCenter)

        self.backAct = QtWidgets.QAction(QtGui.QIcon("Back.ico"), "返回设备列表")

        self.toolbar.addAction(self.refreshAct)
        self.toolbar.addAction(self.firstAct)
        self.toolbar.addAction(self.prevAct)
        self.toolbar.addWidget(self.curPageEdit)
        self.toolbar.addWidget(self.totalPageLable)
        self.toolbar.addAction(self.lastAct)
        self.toolbar.addAction(self.endAct)
        self.toolbar.addAction(self.lookLatestAct)
        self.toolbar.addWidget(self.timeLable)
        self.toolbar.addAction(self.backAct)
        self.wearTable.setHorizontalHeaderLabels(
            ["序号", "设备名称", "所属厂区", "洛轴时间"])
        self.wearTable.verticalHeader().setVisible(False)  # 隐藏纵向表头
        rect = self.wearTable.rect()
        self.wearTable.setColumnWidth(0, 50)
        self.wearTable.setColumnWidth(1, (rect.width() - 50) / 3)
        self.wearTable.setColumnWidth(2, (rect.width() - 50) / 3)
        self.wearTable.setColumnWidth(3, (rect.width() - 50) / 3)
Exemple #13
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(897, 663)  #设置窗口大小
        self.F = matplot.MyFigure([], [], width=1, height=1, dpi=60)  #轨迹展示图
        # 初始化赋值,(航母的个数等还未初始化)!!
        self.planedata = []  #用于飞机数据保存
        self.shipdata = []  #用于航母数据保存
        self.actionArray = []  #飞机动作序列
        self.shipActionArray = []  #航母动作序列
        self.raddata = []  #飞机电磁数据
        self.num = 1  #计数
        self.savenum = 1  #保存次数计数
        self.formation = 1  #编队标志位
        self.checkedNum = 0  #飞机数量
        self.planeGap = 500  #编队距离
        self.mainShip = 1  #主舰数量默认为1
        self.destroyer = 0  ## 驱逐舰数量
        self.frigate = 0  #护卫舰数量
        self.sig1 = 0  #飞机初始位置是否设置,标志位
        self.sig2 = 0  #航母初始位置是否设置,标志位
        #以下为界面设计,QTdesigner自动生成的代码
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout_4 = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.line_18 = QtWidgets.QFrame(self.centralwidget)
        self.line_18.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_18.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_18.setObjectName("line_18")
        self.gridLayout_4.addWidget(self.line_18, 0, 1, 1, 1)
        self.line_19 = QtWidgets.QFrame(self.centralwidget)
        self.line_19.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_19.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_19.setObjectName("line_19")
        self.gridLayout_4.addWidget(self.line_19, 1, 0, 1, 1)
        self.gridLayout_9 = QtWidgets.QGridLayout()
        self.gridLayout_9.setObjectName("gridLayout_9")
        self.line_15 = QtWidgets.QFrame(self.centralwidget)
        self.line_15.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_15.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_15.setObjectName("line_15")
        self.gridLayout_9.addWidget(self.line_15, 0, 1, 1, 1)
        self.verticalLayout_8 = QtWidgets.QVBoxLayout()
        self.verticalLayout_8.setObjectName("verticalLayout_8")
        self.gridLayout_5 = QtWidgets.QGridLayout()
        self.gridLayout_5.setObjectName("gridLayout_5")
        spacerItem = QtWidgets.QSpacerItem(20, 40,
                                           QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        self.gridLayout_5.addItem(spacerItem, 7, 0, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.gridLayout_5.addItem(spacerItem1, 0, 0, 1, 1)
        self.line_2 = QtWidgets.QFrame(self.centralwidget)
        self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.gridLayout_5.addWidget(self.line_2, 4, 0, 1, 3)
        self.line_5 = QtWidgets.QFrame(self.centralwidget)
        self.line_5.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_5.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_5.setObjectName("line_5")
        self.gridLayout_5.addWidget(self.line_5, 1, 0, 1, 3)
        self.line_3 = QtWidgets.QFrame(self.centralwidget)
        self.line_3.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_3.setObjectName("line_3")
        self.gridLayout_5.addWidget(self.line_3, 5, 1, 1, 1)
        self.line = QtWidgets.QFrame(self.centralwidget)
        self.line.setFrameShape(QtWidgets.QFrame.HLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.gridLayout_5.addWidget(self.line, 6, 0, 1, 3)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setObjectName("label_4")
        self.horizontalLayout.addWidget(self.label_4)
        self.planetype = QtWidgets.QComboBox(self.centralwidget)
        self.planetype.setObjectName("planetype")
        self.planetype.addItem("")
        self.planetype.addItem("")
        self.planetype.addItem("")
        self.horizontalLayout.addWidget(self.planetype)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem2)
        self.gridLayout_5.addLayout(self.horizontalLayout, 2, 0, 1, 3)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setObjectName("label_5")
        self.verticalLayout_2.addWidget(self.label_5)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        spacerItem3 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem3)
        self.formation = QtWidgets.QComboBox(self.centralwidget)
        self.formation.setObjectName("formation")
        self.formation.addItem("")
        self.formation.addItem("")
        self.horizontalLayout_3.addWidget(self.formation)
        self.verticalLayout_2.addLayout(self.horizontalLayout_3)
        self.line_4 = QtWidgets.QFrame(self.centralwidget)
        self.line_4.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_4.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_4.setObjectName("line_4")
        self.verticalLayout_2.addWidget(self.line_4)
        self.label_9 = QtWidgets.QLabel(self.centralwidget)
        self.label_9.setObjectName("label_9")
        self.verticalLayout_2.addWidget(self.label_9)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        spacerItem4 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_5.addItem(spacerItem4)
        self.checkBox = QtWidgets.QCheckBox(self.centralwidget)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.checkBox.setFont(font)
        self.checkBox.setObjectName("checkBox")
        self.horizontalLayout_5.addWidget(self.checkBox)
        self.verticalLayout_2.addLayout(self.horizontalLayout_5)
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.label_12 = QtWidgets.QLabel(self.centralwidget)
        self.label_12.setObjectName("label_12")
        self.horizontalLayout_4.addWidget(self.label_12)
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setObjectName("lineEdit")

        regx = QRegExp("^[0-9]{9}$")  #只允许输入数字
        validator = QRegExpValidator(regx, self.lineEdit)
        self.lineEdit.setValidator(validator)

        self.horizontalLayout_4.addWidget(self.lineEdit)
        self.verticalLayout.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
        self.label_10 = QtWidgets.QLabel(self.centralwidget)
        self.label_10.setObjectName("label_10")
        self.horizontalLayout_8.addWidget(self.label_10)
        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_2.setObjectName("lineEdit_2")

        validator = QRegExpValidator(regx, self.lineEdit_2)
        self.lineEdit_2.setValidator(validator)

        self.horizontalLayout_8.addWidget(self.lineEdit_2)
        self.verticalLayout.addLayout(self.horizontalLayout_8)
        self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_9.setObjectName("horizontalLayout_9")
        self.label_11 = QtWidgets.QLabel(self.centralwidget)
        self.label_11.setObjectName("label_11")
        self.horizontalLayout_9.addWidget(self.label_11)
        self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_3.setObjectName("lineEdit_3")

        validator = QRegExpValidator(regx, self.lineEdit_3)
        self.lineEdit_3.setValidator(validator)

        self.horizontalLayout_9.addWidget(self.lineEdit_3)
        self.verticalLayout.addLayout(self.horizontalLayout_9)
        self.verticalLayout_2.addLayout(self.verticalLayout)
        self.gridLayout_5.addLayout(self.verticalLayout_2, 5, 0, 1, 1)
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.turn = QtWidgets.QPushButton(self.centralwidget)
        self.turn.setObjectName("turn")
        self.gridLayout.addWidget(self.turn, 3, 0, 1, 1)
        self.falldown = QtWidgets.QPushButton(self.centralwidget)
        self.falldown.setObjectName("falldown")
        self.gridLayout.addWidget(self.falldown, 4, 0, 1, 1)
        self.flying = QtWidgets.QPushButton(self.centralwidget)
        self.flying.setObjectName("flying")
        self.gridLayout.addWidget(self.flying, 1, 0, 1, 1)
        self.climb = QtWidgets.QPushButton(self.centralwidget)
        self.climb.setObjectName("climb")
        self.gridLayout.addWidget(self.climb, 2, 0, 1, 1)
        self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit.setObjectName("textEdit")
        self.gridLayout.addWidget(self.textEdit, 0, 1, 6, 1)
        self.delete1 = QtWidgets.QPushButton(self.centralwidget)
        self.delete1.setStyleSheet("color: rgb(255, 0, 0);")
        self.delete1.setObjectName("delete1")
        self.gridLayout.addWidget(self.delete1, 5, 0, 1, 1)
        self.gridLayout_5.addLayout(self.gridLayout, 5, 2, 1, 1)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setObjectName("label_3")
        self.horizontalLayout_2.addWidget(self.label_3)
        self.spinBox = QtWidgets.QSpinBox(self.centralwidget)
        self.spinBox.setObjectName("spinBox")
        self.horizontalLayout_2.addWidget(self.spinBox)
        self.numchecked = QtWidgets.QPushButton(self.centralwidget)
        self.numchecked.setStyleSheet("color: rgb(255, 0, 0);")
        self.numchecked.setObjectName("numchecked")
        self.horizontalLayout_2.addWidget(self.numchecked)
        spacerItem5 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem5)
        self.gridLayout_5.addLayout(self.horizontalLayout_2, 3, 0, 1, 3)
        self.gridLayout_5.setColumnStretch(0, 1)
        self.verticalLayout_8.addLayout(self.gridLayout_5)
        self.line_16 = QtWidgets.QFrame(self.centralwidget)
        self.line_16.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_16.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_16.setObjectName("line_16")
        self.verticalLayout_8.addWidget(self.line_16)
        self.verticalLayout_7 = QtWidgets.QVBoxLayout()
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        self.gridLayout_3 = QtWidgets.QGridLayout()
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.scheck1 = QtWidgets.QPushButton(self.centralwidget)
        self.scheck1.setStyleSheet("color: rgb(255, 0, 0);")
        self.scheck1.setObjectName("scheck1")
        self.gridLayout_3.addWidget(self.scheck1, 1, 2, 1, 1)
        self.label_8 = QtWidgets.QLabel(self.centralwidget)
        self.label_8.setObjectName("label_8")
        self.gridLayout_3.addWidget(self.label_8, 0, 0, 1, 3)
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setObjectName("label_7")
        self.gridLayout_3.addWidget(self.label_7, 1, 0, 1, 1)
        self.scheck2 = QtWidgets.QPushButton(self.centralwidget)
        self.scheck2.setStyleSheet("color: rgb(255, 0, 0);")
        self.scheck2.setObjectName("scheck2")
        self.gridLayout_3.addWidget(self.scheck2, 2, 2, 1, 1)
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setObjectName("label_6")
        self.gridLayout_3.addWidget(self.label_6, 2, 0, 1, 1)
        self.spinBox_2 = QtWidgets.QSpinBox(self.centralwidget)
        self.spinBox_2.setObjectName("spinBox_2")
        self.gridLayout_3.addWidget(self.spinBox_2, 1, 1, 1, 1)
        self.spinBox_4 = QtWidgets.QSpinBox(self.centralwidget)
        self.spinBox_4.setObjectName("spinBox_4")
        self.gridLayout_3.addWidget(self.spinBox_4, 2, 1, 1, 1)
        spacerItem6 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_3.addItem(spacerItem6, 1, 3, 1, 1)
        self.verticalLayout_7.addLayout(self.gridLayout_3)
        self.line_13 = QtWidgets.QFrame(self.centralwidget)
        self.line_13.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_13.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_13.setObjectName("line_13")
        self.verticalLayout_7.addWidget(self.line_13)
        self.horizontalLayout_21 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_21.setObjectName("horizontalLayout_21")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout()
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        self.label_16 = QtWidgets.QLabel(self.centralwidget)
        self.label_16.setObjectName("label_16")
        self.verticalLayout_6.addWidget(self.label_16)
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        spacerItem7 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_7.addItem(spacerItem7)
        self.checkBox_2 = QtWidgets.QCheckBox(self.centralwidget)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.checkBox_2.setFont(font)
        self.checkBox_2.setObjectName("checkBox_2")
        self.horizontalLayout_7.addWidget(self.checkBox_2)
        self.verticalLayout_6.addLayout(self.horizontalLayout_7)
        self.line_6 = QtWidgets.QFrame(self.centralwidget)
        self.line_6.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_6.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_6.setObjectName("line_6")
        self.verticalLayout_6.addWidget(self.line_6)
        self.gridLayout_6 = QtWidgets.QGridLayout()
        self.gridLayout_6.setObjectName("gridLayout_6")
        self.label_14 = QtWidgets.QLabel(self.centralwidget)
        self.label_14.setObjectName("label_14")
        self.gridLayout_6.addWidget(self.label_14, 1, 0, 1, 2)
        self.lineEdit_5 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_5.setObjectName("lineEdit_5")
        validator = QRegExpValidator(regx, self.lineEdit_5)
        self.lineEdit_5.setValidator(validator)

        self.gridLayout_6.addWidget(self.lineEdit_5, 1, 2, 1, 1)
        self.lineEdit_6 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_6.setObjectName("lineEdit_6")

        validator = QRegExpValidator(regx, self.lineEdit_6)
        self.lineEdit_6.setValidator(validator)
        self.gridLayout_6.addWidget(self.lineEdit_6, 2, 2, 1, 1)
        self.label_15 = QtWidgets.QLabel(self.centralwidget)
        self.label_15.setObjectName("label_15")
        self.gridLayout_6.addWidget(self.label_15, 2, 0, 1, 2)
        self.label_13 = QtWidgets.QLabel(self.centralwidget)
        self.label_13.setObjectName("label_13")
        self.gridLayout_6.addWidget(self.label_13, 0, 0, 1, 2)
        self.lineEdit_4 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_4.setObjectName("lineEdit_4")

        validator = QRegExpValidator(regx, self.lineEdit_4)
        self.lineEdit_4.setValidator(validator)
        self.gridLayout_6.addWidget(self.lineEdit_4, 0, 2, 1, 1)
        self.verticalLayout_6.addLayout(self.gridLayout_6)
        self.horizontalLayout_21.addLayout(self.verticalLayout_6)
        self.line_12 = QtWidgets.QFrame(self.centralwidget)
        self.line_12.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_12.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_12.setObjectName("line_12")
        self.horizontalLayout_21.addWidget(self.line_12)
        self.gridLayout_7 = QtWidgets.QGridLayout()
        self.gridLayout_7.setObjectName("gridLayout_7")
        self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_5.setObjectName("pushButton_5")
        self.gridLayout_7.addWidget(self.pushButton_5, 1, 1, 1, 1)
        self.pushButton_7 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_7.setObjectName("pushButton_7")
        self.gridLayout_7.addWidget(self.pushButton_7, 2, 1, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setObjectName("label_2")
        self.gridLayout_7.addWidget(self.label_2, 0, 1, 1, 1)
        self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)
        self.textEdit_2.setObjectName("textEdit_2")
        self.gridLayout_7.addWidget(self.textEdit_2, 0, 2, 5, 1)
        self.pushButton_8 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_8.setObjectName("pushButton_8")
        self.gridLayout_7.addWidget(self.pushButton_8, 3, 1, 1, 1)
        self.delete2 = QtWidgets.QPushButton(self.centralwidget)
        self.delete2.setStyleSheet("color: rgb(255, 0, 0);")
        self.delete2.setObjectName("delete2")
        self.gridLayout_7.addWidget(self.delete2, 4, 1, 1, 1)
        self.horizontalLayout_21.addLayout(self.gridLayout_7)
        self.verticalLayout_7.addLayout(self.horizontalLayout_21)
        self.verticalLayout_8.addLayout(self.verticalLayout_7)
        self.line_14 = QtWidgets.QFrame(self.centralwidget)
        self.line_14.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_14.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_14.setObjectName("line_14")
        self.verticalLayout_8.addWidget(self.line_14)
        spacerItem8 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_8.addItem(spacerItem8)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.start = QtWidgets.QPushButton(self.centralwidget)
        self.start.setObjectName("start")
        self.horizontalLayout_6.addWidget(self.start)
        self.delete3 = QtWidgets.QPushButton(self.centralwidget)
        self.delete3.setStyleSheet("color:rgb(255, 58, 19)")
        self.delete3.setObjectName("delete3")
        self.horizontalLayout_6.addWidget(self.delete3)
        self.verticalLayout_8.addLayout(self.horizontalLayout_6)
        self.gridLayout_9.addLayout(self.verticalLayout_8, 0, 0, 1, 1)
        self.gridLayout_2 = QtWidgets.QGridLayout()
        self.gridLayout_2.setObjectName("gridLayout_2")
        spacerItem9 = QtWidgets.QSpacerItem(20, 13,
                                            QtWidgets.QSizePolicy.Preferred,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem9, 1, 3, 1, 2)
        spacerItem10 = QtWidgets.QSpacerItem(13, 13,
                                             QtWidgets.QSizePolicy.Minimum,
                                             QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem10, 1, 1, 1, 1)
        self.exitbutton = QtWidgets.QPushButton(self.centralwidget)
        self.exitbutton.setObjectName("exitbutton")
        self.gridLayout_2.addWidget(self.exitbutton, 1, 5, 1, 1)
        self.savebutton = QtWidgets.QPushButton(self.centralwidget)
        self.savebutton.setObjectName("savebutton")
        self.gridLayout_2.addWidget(self.savebutton, 1, 3, 1, 1)

        self.display = QtWidgets.QPushButton(self.centralwidget)
        self.display.setObjectName("display")
        self.gridLayout_2.addWidget(self.display, 1, 1, 1, 1)

        # self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        # self.groupBox.setObjectName("groupBox")
        # self.gridLayout_2.addWidget(self.groupBox, 0, 0, 1, 6)

        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout_2.addWidget(self.groupBox, 0, 0, 1, 6)

        self.gridLayout_9.addLayout(self.gridLayout_2, 0, 2, 1, 1)
        self.gridLayout_9.setColumnStretch(0, 1)
        self.gridLayout_9.setColumnStretch(2, 3)
        self.gridLayout_4.addLayout(self.gridLayout_9, 1, 1, 1, 1)
        self.line_21 = QtWidgets.QFrame(self.centralwidget)
        self.line_21.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_21.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_21.setObjectName("line_21")
        self.gridLayout_4.addWidget(self.line_21, 2, 1, 1, 1)
        self.line_20 = QtWidgets.QFrame(self.centralwidget)
        self.line_20.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_20.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_20.setObjectName("line_20")
        self.gridLayout_4.addWidget(self.line_20, 3, 0, 1, 1)
        self.line_17 = QtWidgets.QFrame(self.centralwidget)
        self.line_17.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_17.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_17.setObjectName("line_17")
        self.gridLayout_4.addWidget(self.line_17, 3, 1, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 897, 23))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.gridlayout2 = QtWidgets.QGridLayout(self.groupBox)  # 继承容器

        self.retranslateUi(MainWindow)
        ##槽函数与按钮关联##
        #飞机四种动作按钮
        self.flying.clicked.connect(self.changeText)
        self.falldown.clicked.connect(self.changeText)
        self.turn.clicked.connect(self.changeText)
        self.climb.clicked.connect(self.changeText)
        #航母三种动作按钮
        self.pushButton_5.clicked.connect(self.changeText1)
        self.pushButton_8.clicked.connect(self.changeText1)
        self.pushButton_7.clicked.connect(self.changeText1)
        # self.pushButton_20.clicked.connect(self.changeText1)
        # self.pushButton_21.clicked.connect(self.changeText1)

        self.start.clicked.connect(self.startPlot)  #生成数据按钮
        # 初始位置是否锁定
        self.checkBox.stateChanged.connect(self.changec1)
        self.checkBox_2.stateChanged.connect(self.changec2)

        # self.pushButton_4.clicked.connect(self.submitNum)
        #self.linearButton.clicked.connect(self.changeStatus)
        #self.diamondButton.clicked.connect(self.changeStatus)
        self.numchecked.clicked.connect(self.submitNum1)
        self.scheck1.clicked.connect(self.submitNum2)
        self.delete3.clicked.connect(self.delt)  #撤销
        self.scheck2.clicked.connect(self.submitNum3)
        self.delete1.clicked.connect(self.deleteItem1)  #删除飞机动作
        self.delete2.clicked.connect(self.deleteItem2)  #删除航母动作
        self.savebutton.clicked.connect(self.save)  #保存按钮
        self.exitbutton.clicked.connect(QCoreApplication.instance().quit)  #退出

        # self.F.fig.canvas.mpl_connect('key_press_event', self.F.on_key_press)
        #self.F.fig.canvas.mpl_connect('motion_notify_event', self.OnMouseMotion)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
Exemple #14
0
 def validate_data(self, reg_exp, field_name):
     field = getattr(self, field_name)
     reg_ex = QRegExp(reg_exp)
     input_validator = QRegExpValidator(reg_ex, field)
     field.setValidator(input_validator)
Exemple #15
0
    def tab2UI(self):
        self.label = QtWidgets.QLabel(self.tab2)
        self.label.setGeometry(QtCore.QRect(50, 70, 54, 12))
        self.label.setObjectName("label")
        self.textBrowser = QtWidgets.QTextBrowser(self.tab2)
        self.textBrowser.setGeometry(QtCore.QRect(80, 60, 256, 31))
        self.textBrowser.setObjectName("textBrowser")
        self.pushButton = QtWidgets.QPushButton(self.tab2)
        self.pushButton.setGeometry(QtCore.QRect(350, 60, 131, 31))
        self.pushButton.setObjectName("pushButton")
        self.label_3 = QtWidgets.QLabel(self.tab2)
        self.label_3.setGeometry(QtCore.QRect(50, 120, 51, 16))
        self.label_3.setObjectName("label_3")
        self.label_5 = QtWidgets.QLabel(self.tab2)
        self.label_5.setGeometry(QtCore.QRect(50, 170, 51, 16))
        self.label_5.setObjectName("label_5")
        self.label_4 = QtWidgets.QLabel(self.tab2)
        self.label_4.setGeometry(QtCore.QRect(410, 120, 81, 16))
        self.label_4.setObjectName("label_4")
        self.lineEdit = QtWidgets.QLineEdit(self.tab2)
        self.lineEdit.setGeometry(QtCore.QRect(490, 110, 161, 31))
        self.lineEdit.setObjectName("lineEdit")
        self.label_7 = QtWidgets.QLabel(self.tab2)
        self.label_7.setGeometry(QtCore.QRect(410, 170, 81, 16))
        self.label_7.setObjectName("label_7")
        self.lineEdit_3 = QtWidgets.QLineEdit(self.tab2)
        self.lineEdit_3.setGeometry(QtCore.QRect(490, 160, 161, 31))
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.textBrowser_24 = QtWidgets.QTextBrowser(self.tab2)
        self.textBrowser_24.setGeometry(QtCore.QRect(180, 380, 761, 111))
        self.textBrowser_24.setObjectName("textBrowser_24")
        self.pushButton_24 = QtWidgets.QPushButton(self.tab2)
        self.pushButton_24.setGeometry(QtCore.QRect(420, 300, 261, 61))
        self.pushButton_24.setObjectName("pushButton_24")
        self.radioButton_3 = QtWidgets.QRadioButton(self.tab2)
        self.radioButton_3.setGeometry(QtCore.QRect(350, 120, 61, 16))
        self.radioButton_3.setObjectName("radioButton_3")
        self.radioButton_4 = QtWidgets.QRadioButton(self.tab2)
        self.radioButton_4.setGeometry(QtCore.QRect(350, 170, 51, 16))
        self.radioButton_4.setObjectName("radioButton_4")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.tab2)
        self.lineEdit_2.setGeometry(QtCore.QRect(100, 110, 235, 31))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.lineEdit_4 = QtWidgets.QLineEdit(self.tab2)
        self.lineEdit_4.setGeometry(QtCore.QRect(100, 160, 235, 31))
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.radioButton_5 = QtWidgets.QRadioButton(self.tab2)
        self.radioButton_5.setGeometry(QtCore.QRect(50, 230, 89, 16))
        self.radioButton_5.setObjectName("radioButton_5")
        self.radioButton_6 = QtWidgets.QRadioButton(self.tab2)
        self.radioButton_6.setGeometry(QtCore.QRect(180, 230, 89, 16))
        self.radioButton_6.setObjectName("radioButton_6")
        self.textBrowser_3 = QtWidgets.QTextBrowser(self.tab2)
        self.textBrowser_3.setGeometry(QtCore.QRect(100, 270, 256, 31))
        self.textBrowser_3.setObjectName("textBrowser_3")
        self.label_9 = QtWidgets.QLabel(self.tab2)
        self.label_9.setGeometry(QtCore.QRect(50, 280, 54, 12))
        self.label_9.setObjectName("label_9")
        self.pushButton_3 = QtWidgets.QPushButton(self.tab2)
        self.pushButton_3.setGeometry(QtCore.QRect(370, 270, 141, 31))
        self.pushButton_3.setObjectName("pushButton_15")
        self.pushButton_7 = QtWidgets.QPushButton(self.tab2)
        self.pushButton_7.setGeometry(QtCore.QRect(910, 270, 141, 31))
        self.pushButton_7.setObjectName("pushButton_16")
        self.label_17 = QtWidgets.QLabel(self.tab2)
        self.label_17.setGeometry(QtCore.QRect(590, 280, 54, 12))
        self.label_17.setObjectName("label_17")
        self.textBrowser_4 = QtWidgets.QTextBrowser(self.tab2)
        self.textBrowser_4.setGeometry(QtCore.QRect(640, 270, 256, 31))
        self.textBrowser_4.setObjectName("textBrowser_4")
        reg = '[0-9][/][0-9][/][0-9]'
        regExp = QRegExp(reg)
        reg2 = 'GDGZ-MS-IPMAN-BNG[0-9]{2}-[a-zA-Z]+[0-9]?-[HW|AL]{2}'
        regExp2 = QRegExp(reg2)
        self.lineEdit.setValidator(QRegExpValidator(regExp, self.tab2))
        self.lineEdit_3.setValidator(QRegExpValidator(regExp, self.tab2))
        self.lineEdit_2.setValidator(QRegExpValidator(regExp2, self.tab2))

        self.qbg = QButtonGroup()
        self.qbg2 = QButtonGroup()

        self.qbg.addButton(self.radioButton_3, 1)
        self.qbg.addButton(self.radioButton_4, 2)
        self.qbg2.addButton(self.radioButton_5, 1)
        self.qbg2.addButton(self.radioButton_6, 2)

        self.radioButton_5.setChecked(True)
        self.label_9.setHidden(True)
        self.label_17.setHidden(True)
        self.textBrowser_3.setHidden(True)
        self.textBrowser_4.setHidden(True)
        self.pushButton_3.setHidden(True)
        self.pushButton_7.setHidden(True)
        self.radioButton_5.toggled.connect(lambda: self.radioButtonStart5(self.radioButton_5))
        self.radioButton_6.toggled.connect(lambda: self.radioButtonStart6(self.radioButton_6))


        self.pushButton.clicked.connect(self.on_click_button)
        self.pushButton_3.clicked.connect(self.on_click_button_3)
        self.pushButton_7.clicked.connect(self.on_click_button_7)
        self.pushButton_24.clicked.connect(self.on_click_button_24)
Exemple #16
0
    def __init__(self, project_manager: ProjectManager, is_tx: bool, parent=None, testing_mode=False):
        super().__init__(parent)
        self.is_tx = is_tx
        self.update_interval = 25

        self.setWindowFlags(Qt.Window)
        self.testing_mode = testing_mode

        self.ui = Ui_SendRecvDialog()
        self.ui.setupUi(self)
        self.ui.splitter.setHandleWidth(6)

        self.set_sniff_ui_items_visible(False)

        self.graphics_view = None  # type: QGraphicsView
        self.__device = None  # type: VirtualDevice

        self.backend_handler = BackendHandler()

        self.ui.btnStop.setEnabled(False)
        self.ui.btnClear.setEnabled(False)
        self.ui.btnSave.setEnabled(False)

        self.start = 0

        self.bw_sr_are_locked = constants.SETTINGS.value("lock_bandwidth_sample_rate", True, bool)

        self.ui.spinBoxFreq.setValue(project_manager.device_conf["frequency"])
        self.ui.spinBoxSampleRate.setValue(project_manager.device_conf["sample_rate"])
        self.ui.spinBoxBandwidth.setValue(project_manager.device_conf["bandwidth"])
        self.ui.spinBoxGain.setValue(project_manager.device_conf["gain"])
        try:
            if_gain = project_manager.device_conf["if_gain"]
        except KeyError:
            if_gain = config.DEFAULT_IF_GAIN
        self.ui.spinBoxIFGain.setValue(if_gain)

        try:
            baseband_gain = project_manager.device_conf["baseband_gain"]
        except KeyError:
            baseband_gain = config.DEFAULT_BB_GAIN
        self.ui.spinBoxBasebandGain.setValue(baseband_gain)

        try:
            freq_correction = project_manager.device_conf["freq_correction"]
        except KeyError:
            freq_correction = config.DEFAULT_FREQ_CORRECTION
        self.ui.spinBoxFreqCorrection.setValue(freq_correction)

        self.ui.spinBoxNRepeat.setValue(constants.SETTINGS.value('num_sending_repeats', 1, type=int))
        device = project_manager.device

        self.ui.cbDevice.clear()
        items = self.get_devices_for_combobox()
        self.ui.cbDevice.addItems(items)

        if device in items:
            self.ui.cbDevice.setCurrentIndex(items.index(device))

        if testing_mode:
            self.ui.cbDevice.setCurrentText(NetworkSDRInterfacePlugin.NETWORK_SDR_NAME)

        self.timer = QTimer(self)

        dev_name = self.ui.cbDevice.currentText()
        self.set_device_ui_items_visibility(dev_name, adjust_gains=False)

        self.ui.btnLockBWSR.setChecked(self.bw_sr_are_locked)
        self.on_btn_lock_bw_sr_clicked()

        ip_range = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"
        ip_regex = QRegExp("^" + ip_range
                          + "\\." + ip_range
                          + "\\." + ip_range
                          + "\\." + ip_range + "$")
        self.ui.lineEditIP.setValidator(QRegExpValidator(ip_regex))

        try:
            self.restoreGeometry(constants.SETTINGS.value("{}/geometry".format(self.__class__.__name__)))
        except TypeError:
            pass

        self.ui.splitter.setSizes([0.4 * self.width(), 0.6 * self.width()])
Exemple #17
0
    def tab1UI(self):
        # SW选择
        self.pushButton_2 = QtWidgets.QPushButton(self.tab1)
        self.pushButton_2.setGeometry(QtCore.QRect(410, 30, 141, 28))
        self.pushButton_2.setObjectName("pushButton_2")

        self.label_2 = QtWidgets.QLabel(self.tab1)
        self.label_2.setGeometry(QtCore.QRect(50, 40, 72, 15))
        self.label_2.setObjectName("label_2")

        self.textBrowser_6 = QtWidgets.QTextBrowser(self.tab1)
        self.textBrowser_6.setGeometry(QtCore.QRect(330, 670, 731, 192))
        self.textBrowser_6.setObjectName("textBrowser_6")

        # 选择 SR02 文件
        self.pushButton_9 = QtWidgets.QPushButton(self.tab1)
        self.pushButton_9.setGeometry(QtCore.QRect(930, 120, 141, 28))
        self.pushButton_9.setObjectName("pushButton_9")
        
        
        self.target_lag_editor = QtWidgets.QTextEdit(self.tab1)
        self.target_lag_editor.setGeometry(QtCore.QRect(140, 75, 256, 31))
        self.target_lag_editor.setObjectName("target_lag_editor")

        self.pushButton_10 = QtWidgets.QPushButton(self.tab1)
        self.pushButton_10.setGeometry(QtCore.QRect(420, 340, 261, 61))
        self.pushButton_10.setObjectName("pushButton_10")

        self.label_10 = QtWidgets.QLabel(self.tab1)
        self.label_10.setGeometry(QtCore.QRect(50, 80, 72, 15))
        self.label_10.setObjectName("label_10")

        self.label_11 = QtWidgets.QLabel(self.tab1)
        self.label_11.setGeometry(QtCore.QRect(570, 130, 72, 15))
        self.label_11.setObjectName("label_11")

        self.label_12 = QtWidgets.QLabel(self.tab1)
        self.label_12.setGeometry(QtCore.QRect(50, 230, 101, 20))
        self.label_12.setObjectName("label_12")

        self.label_18 = QtWidgets.QLabel(self.tab1)
        self.label_18.setGeometry(QtCore.QRect(170, 280, 101, 20))
        self.label_18.setObjectName("label_18")

        # SR01
        self.pushButton_11 = QtWidgets.QPushButton(self.tab1)
        self.pushButton_11.setGeometry(QtCore.QRect(410, 120, 141, 28))
        self.pushButton_11.setObjectName("pushButton_11")

        # 保存文件路径
        self.pushButton_12 = QtWidgets.QPushButton(self.tab1)
        self.pushButton_12.setGeometry(QtCore.QRect(410, 220, 141, 28))
        self.pushButton_12.setObjectName("pushButton_12")

        self.label_13 = QtWidgets.QLabel(self.tab1)
        self.label_13.setGeometry(QtCore.QRect(50, 180, 72, 15))
        self.label_13.setObjectName("label_13")

        
        
        self.label_14 = QtWidgets.QLabel(self.tab1)
        self.label_14.setGeometry(QtCore.QRect(420, 80, 81, 16))
        self.label_14.setObjectName("label_14")
        self.label_15 = QtWidgets.QLabel(self.tab1)
        self.label_15.setGeometry(QtCore.QRect(50, 130, 72, 15))
        self.label_15.setObjectName("label_15")

        self.pushButton_14 = QtWidgets.QPushButton(self.tab1)
        self.pushButton_14.setGeometry(QtCore.QRect(790, 75, 141, 28))
        self.pushButton_14.setObjectName("pushButton_14")

        self.label_16 = QtWidgets.QLabel(self.tab1)
        self.label_16.setGeometry(QtCore.QRect(450, 80, 51, 16))
        self.label_16.setObjectName("label_16")

        self.label_19 = QtWidgets.QLabel(self.tab1)
        self.label_19.setGeometry(QtCore.QRect(700, 280, 25, 16))
        self.label_19.setObjectName("label_19")

        self.lineEdit_5 = QtWidgets.QLineEdit(self.tab1)
        self.lineEdit_5.setGeometry(QtCore.QRect(725, 270, 190, 31))
        self.lineEdit_5.setObjectName("lineEdit_5")

        self.label_20 = QtWidgets.QLabel(self.tab1)
        self.label_20.setGeometry(QtCore.QRect(925, 280, 27, 16))
        self.label_20.setObjectName("label_20")

        self.lineEdit_6 = QtWidgets.QLineEdit(self.tab1)
        self.lineEdit_6.setGeometry(QtCore.QRect(960, 270, 100, 31))
        self.lineEdit_6.setObjectName("lineEdit_6")

        # 目标SW选择
        self.textBrowser_2 = QtWidgets.QTextBrowser(self.tab1)
        self.textBrowser_2.setGeometry(QtCore.QRect(140, 30, 256, 31))
        self.textBrowser_2.setObjectName("textBrowser_2")

        # PTN文件选择框
        self.textBrowser_11 = QtWidgets.QTextBrowser(self.tab1)
        self.textBrowser_11.setGeometry(QtCore.QRect(510, 75, 261, 31))
        self.textBrowser_11.setObjectName("textBrowser_11")

        # SR01
        self.textBrowser_14 = QtWidgets.QTextBrowser(self.tab1)
        self.textBrowser_14.setGeometry(QtCore.QRect(140, 120, 256, 31))
        self.textBrowser_14.setObjectName("textBrowser_14")

        # SR02
        self.textBrowser_10 = QtWidgets.QTextBrowser(self.tab1)
        self.textBrowser_10.setGeometry(QtCore.QRect(660, 120, 256, 31))
        self.textBrowser_10.setObjectName("textBrowser_10")

        # vlan尾数
        self.textedit_vlan = QtWidgets.QTextEdit(self.tab1)
        self.textedit_vlan.setGeometry(QtCore.QRect(140, 170, 256, 31))
        self.textedit_vlan.setObjectName("textBrowser_13")

        # 最后的回显框
        self.textBrowser_12 = QtWidgets.QTextBrowser(self.tab1)
        self.textBrowser_12.setGeometry(QtCore.QRect(180, 420, 761, 111))
        self.textBrowser_12.setObjectName("textBrowser_12")

        # 保存文件的路径
        self.textBrowser_9 = QtWidgets.QTextBrowser(self.tab1)
        self.textBrowser_9.setGeometry(QtCore.QRect(140, 220, 256, 31))
        self.textBrowser_9.setObjectName("textBrowser_9")

        self.sw_port_editor = QtWidgets.QTextEdit(self.tab1)
        self.sw_port_editor.setGeometry(QtCore.QRect(510, 75, 261, 31))
        self.sw_port_editor.setObjectName("sw_port_editor")

        self.textBrowser_15 = QtWidgets.QTextBrowser(self.tab1)
        self.textBrowser_15.setGeometry(QtCore.QRect(260, 270, 256, 31))
        self.textBrowser_15.setObjectName("textBrowser_15")

        self.pushButton_15 = QtWidgets.QPushButton(self.tab1)
        self.pushButton_15.setGeometry(QtCore.QRect(530, 270, 141, 28))
        self.pushButton_15.setObjectName("pushButton_15")
        
        self.radioButton = QtWidgets.QRadioButton(self.tab1)
        self.radioButton.setGeometry(QtCore.QRect(600, 30, 120, 16))
        self.radioButton.setObjectName("radioButton")
        self.radioButton_2 = QtWidgets.QRadioButton(self.tab1)
        self.radioButton_2.setGeometry(QtCore.QRect(710, 30, 120, 16))
        self.radioButton_2.setObjectName("radioButton_2")
        self.radioButton.setText("框式OLT集客")
        self.radioButton_2.setText("PTN集客")
        self.radioButton_7 = QtWidgets.QRadioButton(self.tab1)
        self.radioButton_7.setGeometry(QtCore.QRect(50, 280, 101, 20))
        self.radioButton_7.setObjectName("radioButton_7")
        self.radioButton_7.setText("割接VPRN业务")
        self.qbg_3 = QButtonGroup()
        self.qbg_3.addButton(self.radioButton, 1)
        self.qbg_3.addButton(self.radioButton_2, 2)
        #self.radioButton.setChecked(True)
        self.radioButton.toggled.connect(lambda: self.radioButtonStart(self.radioButton))
        self.radioButton_2.toggled.connect(lambda: self.radioButtonStart2(self.radioButton_2))
        self.radioButton_7.toggled.connect(lambda: self.radioButtonStart7(self.radioButton_7))

        reg = '[0-9][/][0-9][/][0-9]'
        regExp = QRegExp(reg)
        reg2 = 'GDGZ-MS-IPMAN-BNG[0-9]{2}-[a-zA-Z]+[0-9]?-[HW|AL]{2}'
        regExp2 = QRegExp(reg2)
        self.lineEdit_6.setValidator(QRegExpValidator(regExp, self.tab1))
        self.lineEdit_5.setValidator(QRegExpValidator(regExp2, self.tab1))

        self.label_16.setHidden(True)
        self.sw_port_editor.setHidden(True)
        self.label_14.setHidden(True)
        self.textBrowser_11.setHidden(True)
        self.pushButton_14.setHidden(True)

        self.label_18.setHidden(True)
        self.textBrowser_15.setHidden(True)
        self.pushButton_15.setHidden(True)
        self.label_19.setHidden(True)
        self.lineEdit_5.setHidden(True)
        self.label_20.setHidden(True)
        self.lineEdit_6.setHidden(True)

        self.pushButton_2.clicked.connect(self.on_click_button_2)

        self.pushButton_9.clicked.connect(self.on_click_button_9)
        self.pushButton_10.clicked.connect(self.on_click_button_10)
        self.pushButton_11.clicked.connect(self.on_click_button_11)
        self.pushButton_12.clicked.connect(self.on_click_button_12)
        self.pushButton_14.clicked.connect(self.on_click_button_14)
Exemple #18
0
 def textFiltering(self):
     reg_num = QRegExp('^[0-9]{5}$')
     validator_num = QRegExpValidator(self)
     validator_num.setRegExp(reg_num)
     self.setValidator(validator_num)
Exemple #19
0
    def __init__(self, model, controller):
        super().__init__()

        self._model = model
        self._controller = controller
        self.segmentcursor = False
        self.togglecolors = {"#1f77b4": "m", "m": "#1f77b4"}

        #################################################################
        # define GUI layout and connect input widgets to external slots #
        #################################################################

        self.setWindowTitle("biopeaks")
        self.setGeometry(50, 50, 1750, 750)
        self.setWindowIcon(QIcon(":/python_icon.png"))

        # figure0 for signal
        self.figure0 = Figure()
        self.canvas0 = FigureCanvas(self.figure0)
        self.ax00 = self.figure0.add_subplot(1, 1, 1)
        self.ax00.set_frame_on(False)
        self.figure0.subplots_adjust(left=0.04, right=0.98, bottom=0.25)
        self.line00 = None
        self.scat = None
        self.segmentspan = None

        # figure1 for marker
        self.figure1 = Figure()
        self.canvas1 = FigureCanvas(self.figure1)
        self.ax10 = self.figure1.add_subplot(1, 1, 1, sharex=self.ax00)
        self.ax10.get_xaxis().set_visible(False)
        self.ax10.set_frame_on(False)
        self.figure1.subplots_adjust(left=0.04, right=0.98)
        self.line10 = None

        # figure2 for statistics
        self.figure2 = Figure()
        self.canvas2 = FigureCanvas(self.figure2)
        self.ax20 = self.figure2.add_subplot(3, 1, 1, sharex=self.ax00)
        self.ax20.get_xaxis().set_visible(False)
        self.ax20.set_frame_on(False)
        self.line20 = None
        self.ax21 = self.figure2.add_subplot(3, 1, 2, sharex=self.ax00)
        self.ax21.get_xaxis().set_visible(False)
        self.ax21.set_frame_on(False)
        self.line21 = None
        self.ax22 = self.figure2.add_subplot(3, 1, 3, sharex=self.ax00)
        self.ax22.get_xaxis().set_visible(False)
        self.ax22.set_frame_on(False)
        self.line22 = None
        self.figure2.subplots_adjust(left=0.04, right=0.98)

        # navigation bar
        self.navitools = CustomNavigationToolbar(self.canvas0, self)

        # peak editing
        self.editcheckbox = QCheckBox("editable", self)
        self.editcheckbox.stateChanged.connect(self._model.set_peakseditable)

        # peak saving batch
        self.savecheckbox = QCheckBox("save during batch processing", self)
        self.savecheckbox.stateChanged.connect(self._model.set_savebatchpeaks)

        # peak auto-correction batch
        self.correctcheckbox = QCheckBox("correct during batch processing",
                                         self)
        self.correctcheckbox.stateChanged.connect(
            self._model.set_correctbatchpeaks)

        # selecting stats for saving
        self.periodcheckbox = QCheckBox("period", self)
        self.periodcheckbox.stateChanged.connect(
            lambda: self.select_stats("period"))
        self.ratecheckbox = QCheckBox("rate", self)
        self.ratecheckbox.stateChanged.connect(
            lambda: self.select_stats("rate"))
        self.tidalampcheckbox = QCheckBox("tidal amplitude", self)
        self.tidalampcheckbox.stateChanged.connect(
            lambda: self.select_stats("tidalamp"))

        # channel selection
        self.sigchanmenulabel = QLabel("biosignal")
        self.sigchanmenu = QComboBox(self)
        self.sigchanmenu.addItem("A1")
        self.sigchanmenu.addItem("A2")
        self.sigchanmenu.addItem("A3")
        self.sigchanmenu.addItem("A4")
        self.sigchanmenu.addItem("A5")
        self.sigchanmenu.addItem("A6")
        self.sigchanmenu.currentTextChanged.connect(self._model.set_signalchan)
        # initialize with default value
        self._model.set_signalchan(self.sigchanmenu.currentText())

        self.markerchanmenulabel = QLabel("marker")
        self.markerchanmenu = QComboBox(self)
        self.markerchanmenu.addItem("none")
        self.markerchanmenu.addItem("I1")
        self.markerchanmenu.addItem("I2")
        self.markerchanmenu.addItem("A1")
        self.markerchanmenu.addItem("A2")
        self.markerchanmenu.addItem("A3")
        self.markerchanmenu.addItem("A4")
        self.markerchanmenu.addItem("A5")
        self.markerchanmenu.addItem("A6")
        self.markerchanmenu.currentTextChanged.connect(
            self._model.set_markerchan)
        # initialize with default value
        self._model.set_markerchan(self.markerchanmenu.currentText())

        # processing mode (batch or single file)
        self.batchmenulabel = QLabel("mode")
        self.batchmenu = QComboBox(self)
        self.batchmenu.addItem("single file")
        self.batchmenu.addItem("multiple files")
        self.batchmenu.currentTextChanged.connect(self._model.set_batchmode)
        self.batchmenu.currentTextChanged.connect(self.toggle_options)
        # initialize with default value
        self._model.set_batchmode(self.batchmenu.currentText())
        self.toggle_options(self.batchmenu.currentText())

        # modality selection
        self.modmenulabel = QLabel("modality")
        self.modmenu = QComboBox(self)
        self.modmenu.addItem("ECG")
        self.modmenu.addItem("PPG")
        self.modmenu.addItem("RESP")
        self.modmenu.currentTextChanged.connect(self._model.set_modality)
        self.modmenu.currentTextChanged.connect(self.toggle_options)
        # initialize with default value
        self._model.set_modality(self.modmenu.currentText())
        self.toggle_options(self.modmenu.currentText())

        # segment selection; this widget can be openend / set visible from
        # the menu and closed from within itself (see mapping of segmentermap);
        # it provides utilities to select a segment from the signal
        self.segmentermap = QSignalMapper(self)
        self.segmenter = QDockWidget("select a segment", self)
        # disable closing such that widget can only be closed by confirming
        # selection or custom button
        self.segmenter.setFeatures(QDockWidget.NoDockWidgetFeatures)
        # Limit number of decimals to four.
        regex = QRegExp("[0-9]*\.?[0-9]{4}")
        validator = QRegExpValidator(regex)

        self.startlabel = QLabel("start")
        self.startedit = QLineEdit()
        self.startedit.setValidator(validator)

        self.endlabel = QLabel("end")
        self.endedit = QLineEdit()
        self.endedit.setValidator(validator)

        segmentfromcursor = QAction(QIcon(":/mouse_icon.png"),
                                    "select with mouse", self)
        segmentfromcursor.triggered.connect(self.enable_segmentedit)
        self.startedit.addAction(segmentfromcursor, 1)
        self.endedit.addAction(segmentfromcursor, 1)

        self.previewedit = QPushButton("preview segment")
        lambdafn = lambda: self._model.set_segment(
            [self.startedit.text(), self.endedit.text()])
        self.previewedit.clicked.connect(lambdafn)

        self.confirmedit = QPushButton("confirm segment")
        self.confirmedit.clicked.connect(self._controller.segment_signal)
        self.confirmedit.clicked.connect(self.segmentermap.map)
        self.segmentermap.setMapping(self.confirmedit, 0)

        self.abortedit = QPushButton("abort segmentation")
        self.abortedit.clicked.connect(self.segmentermap.map)
        # reset the segment to None
        self.segmentermap.setMapping(self.abortedit, 2)

        self.segmenterlayout = QFormLayout()
        self.segmenterlayout.addRow(self.startlabel, self.startedit)
        self.segmenterlayout.addRow(self.endlabel, self.endedit)
        self.segmenterlayout.addRow(self.previewedit)
        self.segmenterlayout.addRow(self.confirmedit)
        self.segmenterlayout.addRow(self.abortedit)
        self.segmenterwidget = QWidget()
        self.segmenterwidget.setLayout(self.segmenterlayout)
        self.segmenter.setWidget(self.segmenterwidget)

        self.segmenter.setVisible(False)
        self.segmenter.setAllowedAreas(Qt.RightDockWidgetArea)
        self.addDockWidget(Qt.RightDockWidgetArea, self.segmenter)

        # set up menubar
        menubar = self.menuBar()

        # signal menu
        signalmenu = menubar.addMenu("biosignal")

        openSignal = QAction("load", self)
        openSignal.triggered.connect(self._controller.get_fpaths)
        signalmenu.addAction(openSignal)

        segmentSignal = QAction("select segment", self)
        segmentSignal.triggered.connect(self.segmentermap.map)
        self.segmentermap.setMapping(segmentSignal, 1)
        signalmenu.addAction(segmentSignal)

        self.segmentermap.mapped.connect(self.toggle_segmenter)

        saveSignal = QAction("save", self)
        saveSignal.triggered.connect(self._controller.get_wpathsignal)
        signalmenu.addAction(saveSignal)

        # peak menu
        peakmenu = menubar.addMenu("peaks")

        findPeaks = QAction("find", self)
        findPeaks.triggered.connect(self._controller.find_peaks)
        peakmenu.addAction(findPeaks)

        autocorrectPeaks = QAction("autocorrect", self)
        autocorrectPeaks.triggered.connect(self._controller.autocorrect_peaks)
        peakmenu.addAction(autocorrectPeaks)

        savePeaks = QAction("save", self)
        savePeaks.triggered.connect(self._controller.get_wpathpeaks)
        peakmenu.addAction(savePeaks)

        loadPeaks = QAction("load", self)
        loadPeaks.triggered.connect(self._controller.get_rpathpeaks)
        peakmenu.addAction(loadPeaks)

        # stats menu
        statsmenu = menubar.addMenu("statistics")

        calculateStats = QAction("calculate", self)
        calculateStats.triggered.connect(self._controller.calculate_stats)
        statsmenu.addAction(calculateStats)

        saveStats = QAction("save", self)
        saveStats.triggered.connect(self._controller.get_wpathstats)
        statsmenu.addAction(saveStats)

        # set up status bar to display error messages and current file path
        self.statusBar = QStatusBar()
        self.setStatusBar(self.statusBar)
        self.progressBar = QProgressBar(self)
        self.progressBar.setRange(0, 1)
        self.statusBar.addPermanentWidget(self.progressBar)
        self.currentFile = QLabel()
        self.statusBar.addPermanentWidget(self.currentFile)

        # set up the central widget containing the plot and navigationtoolbar
        self.centwidget = QWidget()
        self.setCentralWidget(self.centwidget)

        # connect canvas0 to keyboard and mouse input for peak editing;
        # only widgets (e.g. canvas) that currently have focus capture
        # keyboard input: "You must enable keyboard focus for a widget if
        # it processes keyboard events."
        self.canvas0.setFocusPolicy(Qt.ClickFocus)
        self.canvas0.setFocus()
        self.canvas0.mpl_connect("key_press_event",
                                 self._controller.edit_peaks)
        self.canvas0.mpl_connect("button_press_event", self.get_xcursor)

        # arrange the three figure canvases in splitter object
        self.splitter = QSplitter(Qt.Vertical)
        # setting opaque resizing to false is important, since resizing gets
        # very slow otherwise once axes are populated
        self.splitter.setOpaqueResize(False)
        self.splitter.addWidget(self.canvas0)
        self.splitter.addWidget(self.canvas1)
        self.splitter.addWidget(self.canvas2)

        # define GUI layout
        self.vlayout0 = QVBoxLayout(self.centwidget)
        self.vlayout1 = QVBoxLayout()
        self.vlayoutA = QFormLayout()
        self.vlayoutB = QFormLayout()
        self.vlayoutC = QVBoxLayout()
        self.vlayoutD = QVBoxLayout()
        self.hlayout0 = QHBoxLayout()
        self.hlayout1 = QHBoxLayout()

        self.optionsgroupA = QGroupBox("processing options")
        self.vlayoutA.addRow(self.modmenulabel, self.modmenu)
        self.vlayoutA.addRow(self.batchmenulabel, self.batchmenu)
        self.optionsgroupA.setLayout(self.vlayoutA)

        self.optionsgroupB = QGroupBox("channels")
        self.vlayoutB.addRow(self.sigchanmenulabel, self.sigchanmenu)
        self.vlayoutB.addRow(self.markerchanmenulabel, self.markerchanmenu)
        self.optionsgroupB.setLayout(self.vlayoutB)

        self.optionsgroupC = QGroupBox("peak options")
        self.vlayoutC.addWidget(self.editcheckbox)
        self.vlayoutC.addWidget(self.savecheckbox)
        self.vlayoutC.addWidget(self.correctcheckbox)
        self.optionsgroupC.setLayout(self.vlayoutC)

        self.optionsgroupD = QGroupBox("select statistics for saving")
        self.vlayoutD.addWidget(self.periodcheckbox)
        self.vlayoutD.addWidget(self.ratecheckbox)
        self.vlayoutD.addWidget(self.tidalampcheckbox)
        self.optionsgroupD.setLayout(self.vlayoutD)

        self.vlayout1.addWidget(self.optionsgroupA)
        self.vlayout1.addWidget(self.optionsgroupB)
        self.vlayout1.addWidget(self.optionsgroupC)
        self.vlayout1.addWidget(self.optionsgroupD)
        self.hlayout0.addLayout(self.vlayout1)
        self.hlayout0.addWidget(self.splitter)
        self.hlayout0.setStretch(0, 1)
        self.hlayout0.setStretch(1, 15)
        self.vlayout0.addLayout(self.hlayout0)

        self.hlayout1.addWidget(self.navitools)
        self.vlayout0.addLayout(self.hlayout1)

        ##############################################
        # connect output widgets to external signals #
        ##############################################
        self._model.signal_changed.connect(self.plot_signal)
        self._model.marker_changed.connect(self.plot_marker)
        self._model.peaks_changed.connect(self.plot_peaks)
        self._model.period_changed.connect(self.plot_period)
        self._model.rate_changed.connect(self.plot_rate)
        self._model.tidalamp_changed.connect(self.plot_tidalamp)
        self._model.path_changed.connect(self.display_path)
        self._model.segment_changed.connect(self.plot_segment)
        self._model.status_changed.connect(self.display_status)
        self._model.progress_changed.connect(self.display_progress)
        self._model.model_reset.connect(self.reset_plot)
        def __init__(self, parent=None):
            super(Widget, self).__init__(parent)
            self.setWindowTitle("Opvragen Webverkooporder")
            self.setWindowIcon(QIcon('./images/logos/logo.jpg'))

            self.setFont(QFont('Arial', 10))

            self.Keuze = QLabel()
            k0Edit = QComboBox()
            k0Edit.setFixedWidth(230)
            k0Edit.setFont(QFont("Arial", 10))
            k0Edit.setStyleSheet("color: black;  background-color: #F8F7EE")
            k0Edit.addItem(' Sorteersleutel voor zoeken')
            k0Edit.addItem('1. Alle Orders')
            k0Edit.addItem('2. Gefilterd op postcode')
            k0Edit.addItem('3. Gefilterd op achternaam')
            k0Edit.addItem('4. Gefilterd op ordernummer')
            k0Edit.addItem('5. Gefilterd op besteldatum')
            k0Edit.activated[str].connect(self.k0Changed)

            self.Zoekterm = QLabel()
            zktrmEdit = QLineEdit()
            zktrmEdit.setFixedWidth(220)
            zktrmEdit.setFont(QFont("Arial", 10))
            zktrmEdit.textChanged.connect(self.zktrmChanged)
            reg_ex = QRegExp('.*$')
            input_validator = QRegExpValidator(reg_ex, zktrmEdit)
            zktrmEdit.setValidator(input_validator)

            grid = QGridLayout()
            grid.setSpacing(20)

            lbl = QLabel()
            pixmap = QPixmap('./images/logos/verbinding.jpg')
            lbl.setPixmap(pixmap)
            grid.addWidget(lbl, 1, 0, 1, 2)

            logo = QLabel()
            pixmap = QPixmap('./images/logos/logo.jpg')
            logo.setPixmap(pixmap)
            grid.addWidget(logo, 1, 1, 1, 2, Qt.AlignRight)

            lbl1 = QLabel('Zoekterm')
            grid.addWidget(lbl1, 3, 0, 1, 1, Qt.AlignRight)
            grid.addWidget(zktrmEdit, 3, 1, 1, 2)
            grid.addWidget(k0Edit, 2, 1, 1, 2, Qt.AlignRight)

            self.setLayout(grid)
            self.setGeometry(500, 300, 150, 150)

            grid.addWidget(
                QLabel('\u00A9 2017 all rights reserved [email protected]'),
                5, 0, 1, 3, Qt.AlignCenter)

            applyBtn = QPushButton('Zoeken')
            applyBtn.clicked.connect(self.accept)

            grid.addWidget(applyBtn, 4, 2, 1, 1, Qt.AlignRight)
            applyBtn.setFont(QFont("Arial", 10))
            applyBtn.setFixedWidth(100)
            applyBtn.setStyleSheet(
                "color: black;  background-color: gainsboro")

            closeBtn = QPushButton('Sluiten')
            closeBtn.clicked.connect(lambda: windowSluit(self, m_email))

            grid.addWidget(closeBtn, 4, 1, 1, 1, Qt.AlignRight)
            closeBtn.setFont(QFont("Arial", 10))
            closeBtn.setFixedWidth(100)
            closeBtn.setStyleSheet(
                "color: black;  background-color: gainsboro")
Exemple #21
0
    def request_safe_t_init_settings(self, wizard, method, device):
        vbox = QVBoxLayout()
        next_enabled = True
        label = QLabel(_("Enter a label to name your device:"))
        name = QLineEdit()
        hl = QHBoxLayout()
        hl.addWidget(label)
        hl.addWidget(name)
        hl.addStretch(1)
        vbox.addLayout(hl)

        def clean_text(widget):
            text = widget.toPlainText().strip()
            return ' '.join(text.split())

        if method in [TIM_NEW, TIM_RECOVER]:
            gb = QGroupBox()
            hbox1 = QHBoxLayout()
            gb.setLayout(hbox1)
            vbox.addWidget(gb)
            gb.setTitle(_("Select your seed length:"))
            bg = QButtonGroup()
            for i, count in enumerate([12, 18, 24]):
                rb = QRadioButton(gb)
                rb.setText(_("{:d} words").format(count))
                bg.addButton(rb)
                bg.setId(rb, i)
                hbox1.addWidget(rb)
                rb.setChecked(True)
            cb_pin = QCheckBox(_('Enable PIN protection'))
            cb_pin.setChecked(True)
        else:
            text = QTextEdit()
            text.setMaximumHeight(60)
            if method == TIM_MNEMONIC:
                msg = _("Enter your BIP39 mnemonic:")
            else:
                msg = _("Enter the master private key beginning with xprv:")

                def set_enabled():
                    from electrum.bip32 import is_xprv
                    wizard.next_button.setEnabled(is_xprv(clean_text(text)))

                text.textChanged.connect(set_enabled)
                next_enabled = False

            vbox.addWidget(QLabel(msg))
            vbox.addWidget(text)
            pin = QLineEdit()
            pin.setValidator(QRegExpValidator(QRegExp('[1-9]{0,9}')))
            pin.setMaximumWidth(100)
            hbox_pin = QHBoxLayout()
            hbox_pin.addWidget(QLabel(_("Enter your PIN (digits 1-9):")))
            hbox_pin.addWidget(pin)
            hbox_pin.addStretch(1)

        if method in [TIM_NEW, TIM_RECOVER]:
            vbox.addWidget(WWLabel(RECOMMEND_PIN))
            vbox.addWidget(cb_pin)
        else:
            vbox.addLayout(hbox_pin)

        passphrase_msg = WWLabel(PASSPHRASE_HELP_SHORT)
        passphrase_warning = WWLabel(PASSPHRASE_NOT_PIN)
        passphrase_warning.setStyleSheet("color: red")
        cb_phrase = QCheckBox(_('Enable passphrases'))
        cb_phrase.setChecked(False)
        vbox.addWidget(passphrase_msg)
        vbox.addWidget(passphrase_warning)
        vbox.addWidget(cb_phrase)

        wizard.exec_layout(vbox, next_enabled=next_enabled)

        if method in [TIM_NEW, TIM_RECOVER]:
            item = bg.checkedId()
            pin = cb_pin.isChecked()
        else:
            item = ' '.join(str(clean_text(text)).split())
            pin = str(pin.text())

        return (item, name.text(), pin, cb_phrase.isChecked())
Exemple #22
0
    def __init__(self, parent):
        super().__init__(parent)
        self.parent = parent
        self.weekdays = WEEKDAYS
        self.weekday_switches = []
        self.setObjectName('days_config')
        self.setTitle('Working days settings')
        self.setAlignment(Qt.AlignHCenter)
        self.layout = QVBoxLayout(self)

        # Weekdays selector
        week_frame = QFrame(self, Qt.Widget)
        week_layout = QHBoxLayout(week_frame)
        week_layout.setSpacing(2)
        week_layout.setContentsMargins(0, 0, 0, 0)

        # Generating weekdays checkboxes
        for day, state in self.weekdays.items():
            checkbox = QCheckBox()
            checkbox.setText(day)
            checkbox.setChecked(state)
            checkbox.stateChanged.connect(self.update_weekdays)
            week_layout.addWidget(checkbox, 0, Qt.AlignHCenter)
            self.weekday_switches.append(checkbox)

        # Misc options
        misc_frame = QFrame(self, Qt.Widget)
        misc_layout = QFormLayout(misc_frame)
        misc_layout.setSpacing(5)
        misc_layout.setContentsMargins(0, 0, 0, 0)

        # Process daily tasks only control
        self.daily_only = QCheckBox()
        self.daily_only.setChecked(get_main_window().params['daily_only'])
        self.daily_only.setToolTip(
            'If checked only Daily Tasks will be processed and logged\n'
            'Still they won\'t exceed target hours per day')

        # Target hours per day
        self.target_hrs = QDoubleSpinBox()
        self.target_hrs.setSingleStep(0.1)
        self.target_hrs.setDecimals(1)
        self.target_hrs.setRange(0, 24)
        self.target_hrs.setToolTip(
            'Amount of working hours that logger will\nattempt to fill for each day.'
        )
        self.target_hrs.setFixedWidth(50)
        self.target_hrs.setRange(1, 24)
        self.target_hrs.setValue(8)

        # Daily tasks
        tasks_frame = QFrame(self, Qt.Widget)
        tasks_layout = QFormLayout(tasks_frame)
        tasks_layout.setSpacing(5)
        tasks_layout.setContentsMargins(0, 0, 0, 0)
        self.daily_tasks = QLineEdit()
        regex = QRegExp(
            '^[A-Z]+-[0-9]+:[0-9]+[smh]( [A-Z]+-[0-9]+:[0-9]+[smh])*$'
        )  # BR-408:30m BR-7630:2h BR-2345:1h
        validator = QRegExpValidator(regex)
        self.daily_tasks.setValidator(validator)
        self.daily_tasks.textChanged.connect(self.validate_input)
        self.daily_tasks.setText(
            tasks_dict_to_string(get_main_window().params['daily_tasks']))
        self.daily_tasks.setToolTip(
            'List of daily task:time that will be\nexplicitly logged for each day.\n'
            'Example: "BR-222:30m BR-555:1h"')

        # Tasks comment
        self.tasks_comment = QLineEdit()
        self.tasks_comment.setToolTip(
            'Comment that will be added for every daily task')
        self.tasks_comment.setText(get_main_window().params['tasks_comment'])

        # Tasks to be ignored
        self.ignore_tasks = QLineEdit()
        regex = QRegExp(
            '^[A-Z]+-[0-9]+( [A-Z]+-[0-9]+)*$')  # BR-408 BR-234 BR-7758
        validator = QRegExpValidator(regex)
        self.ignore_tasks.setValidator(validator)
        self.ignore_tasks.textChanged.connect(self.validate_input)
        self.ignore_tasks.setText(
            tasks_list_to_string(get_main_window().params['ignore_tasks']))
        self.ignore_tasks.setToolTip(
            'List of tasks to be ignored during processing.\nExample: "BR-555 BR-777"'
        )

        tasks_layout.addRow('Daily tasks', self.daily_tasks)
        tasks_layout.addRow('Comment', self.tasks_comment)
        tasks_layout.addRow('Ignore tasks', self.ignore_tasks)
        misc_layout.addRow('Process Daily Tasks only', self.daily_only)
        misc_layout.addRow('Target working hours per day:', self.target_hrs)

        # Placing sub-widgets to root layout
        self.layout.addWidget(week_frame, 0, Qt.AlignTop)
        self.layout.addWidget(tasks_frame, 0, Qt.AlignTop)
        self.layout.addWidget(misc_frame, 0, Qt.AlignTop)
Exemple #23
0
    def set_regexpression(self, regexp):
        """ Set regular expression for input format
            regexp as string """

        validator = QRegExpValidator(QRegExp(regexp))
        self.setValidator(validator)
Exemple #24
0
    def __init__(self, parent=None):
        super(TopbarWidget, self).__init__(parent)
        self.owner_avatar = QPushButton(self)  # 主播头像
        self.room_name = QLabel(u'直播间标题', self)  # 直播间标题
        self.cate_name = QLabel(u'分类:', self)  # 直播间所属分类
        self.room_status = QLabel(u'开播状态:', self)  # 直播间开播状态
        self.owner_name = QLabel(u'主播:', self)  # 主播名称
        self.hot_value = QLabel(u'热度:', self)  # 热度值
        self.fans_num = QLabel(u'关注:', self)  # 关注数
        self.start_time = QLabel(u'最近开播时间:', self)  # 最近开播时间
        self.roomid_label = QLabel(u'直播间号:', self)
        self.roomid_enter = QLineEdit(self)  # 直播间号输入框
        self.connect_danmu = QPushButton(u'连接', self)  # 连接弹幕按钮

        self.setFrameShape(QFrame.StyledPanel)
        self.setFrameShadow(QFrame.Plain)

        self.room_name.setFont(TITLE_FONT)
        details_short_width = CHINESE_SIZE.width() * 11
        details_long_width = CHINESE_SIZE.width() * 20
        self.cate_name.setFixedWidth(details_short_width)
        self.room_status.setFixedWidth(details_short_width)
        self.owner_name.setMinimumWidth(details_long_width)
        self.hot_value.setFixedWidth(details_short_width)
        self.fans_num.setFixedWidth(details_short_width)
        self.start_time.setMinimumWidth(details_long_width)
        self.roomid_enter.setFixedWidth(DIGIT_SIZE.width() * 12)
        self.connect_danmu.setFixedWidth(CHINESE_SIZE.width() * 5)
        self.roomid_enter.setValidator(QRegExpValidator(QRegExp(r"[0-9]+")))
        self.owner_avatar.setFlat(True)
        self.owner_avatar.setCursor(POINT_HAND_CURSOR)
        self.connect_danmu.setCursor(POINT_HAND_CURSOR)

        connect_danmu_layout = QHBoxLayout()
        connect_danmu_layout.addWidget(self.roomid_label)
        connect_danmu_layout.addWidget(self.roomid_enter)
        connect_danmu_layout.addWidget(self.connect_danmu)

        topbar_layout = QGridLayout()
        topbar_layout.addWidget(self.room_name, 0, 0, 1, 3)
        topbar_layout.addWidget(self.cate_name, 1, 0, 1, 1)
        topbar_layout.addWidget(self.room_status, 1, 1, 1, 1)
        topbar_layout.addWidget(self.owner_name, 1, 2, 1, 1)
        topbar_layout.addWidget(self.hot_value, 2, 0, 1, 1)
        topbar_layout.addWidget(self.fans_num, 2, 1, 1, 1)
        topbar_layout.addWidget(self.start_time, 2, 2, 1, 1)
        topbar_layout.addLayout(connect_danmu_layout, 0, 3, 1, 1)
        topbar_layout_spacer = 5
        topbar_layout.setSpacing(topbar_layout_spacer)
        topbar_layout.setContentsMargins(10, 10, 10, 10)
        topbar_layout.setColumnStretch(2, 1)

        all_widget_layout = QHBoxLayout()
        all_widget_layout.addWidget(self.owner_avatar)
        all_widget_layout.addLayout(topbar_layout)
        all_widget_layout.setSpacing(0)
        all_widget_layout.setContentsMargins(0, 0, 0, 0)

        avatar_height = topbar_layout.sizeHint().height()
        self.owner_avatar.setFixedSize(avatar_height, avatar_height)
        self.owner_avatar.setIconSize(self.owner_avatar.size())
        self.owner_avatar.setToolTip(u'打开直播间')

        self.setLayout(all_widget_layout)
        self.resize(all_widget_layout.sizeHint())
Exemple #25
0
 def __init__(self, *args, **kwargs):
     QtWidgets.QTextEdit.__init__(self, *args, **kwargs)
     regexp = QtCore.QRegExp("[^\'\"¨&\[\]{};`~?|!@#$\\=]*")
     self.validator = QRegExpValidator(regexp)
Exemple #26
0
    def __init__(self, parent=None):
        super(RecordWidget, self).__init__(parent)
        self.record_text = QTextEdit(self)
        self.message_type = QGroupBox(u'消息类型', self)
        self.selected_message_type = QButtonGroup(self)
        self.option_chatmsg = QRadioButton(u'弹幕消息', self.message_type)
        self.option_uenter = QRadioButton(u'进房消息', self.message_type)
        self.option_newblackres = QRadioButton(u'禁言消息', self.message_type)
        self.option_dgb = QRadioButton(u'房间礼物', self.message_type)
        self.option_spbc = QRadioButton(u'广播礼物', self.message_type)
        self.option_anbc = QRadioButton(u'开通贵族', self.message_type)
        self.option_rss = QRadioButton(u'开关播消息', self.message_type)
        self.begin_time_label = QLabel(u'开始时间:', self)
        self.end_time_label = QLabel(u'结束时间:', self)
        self.room_num_label = QLabel(u'直播间号:', self)
        self.view_way_label = QLabel(u'观看方式:', self)
        self.noble_level_label = QLabel(u'贵族等级:', self)
        self.user_name_label = QLabel(u'水友名称:', self)
        self.danmu_text_label = QLabel(u'弹幕内容:', self)
        self.gift_name_label = QLabel(u'礼物名称:', self)
        self.anthor_name_label = QLabel(u'主播名称:', self)
        self.begin_time = QDateTimeEdit(self)
        self.end_time = QDateTimeEdit(self)
        self.room_num = QLineEdit(self)
        self.view_way = QComboBox(self)
        self.noble_level = QComboBox(self)
        self.user_name = QLineEdit(self)
        self.danmu_text = QLineEdit(self)
        self.gift_name = QLineEdit(self)
        self.anthor_name = QLineEdit(self)
        self.query_button = QPushButton(u'查询', self)
        self.reset_button = QPushButton(u'重置', self)
        self.clear_record_button = QPushButton(u'清屏', self)

        self.record_text.setReadOnly(True)
        self.record_text.setAcceptRichText(True)
        self.selected_message_type.addButton(self.option_chatmsg, 0)
        self.selected_message_type.addButton(self.option_uenter, 1)
        self.selected_message_type.addButton(self.option_newblackres, 2)
        self.selected_message_type.addButton(self.option_dgb, 3)
        self.selected_message_type.addButton(self.option_spbc, 4)
        self.selected_message_type.addButton(self.option_anbc, 5)
        self.selected_message_type.addButton(self.option_rss, 6)
        self.begin_time.setDisplayFormat('yyyy-MM-dd HH:mm')
        self.end_time.setDisplayFormat('yyyy-MM-dd HH:mm')
        self.room_num.setValidator(QRegExpValidator(QRegExp(r"[0-9]+")))
        self.view_way.addItems(VIEW_WAY_LIST)
        self.noble_level.addItems(NOBLE_LEVEL_LIST)
        self.query_button.setCursor(POINT_HAND_CURSOR)
        self.reset_button.setCursor(POINT_HAND_CURSOR)
        self.clear_record_button.setCursor(POINT_HAND_CURSOR)
        self.reset_button.clicked.connect(self.reset_widgets)
        self.selected_message_type.buttonClicked.connect(
            self.selected_message_type_event)

        message_type_layout = QGridLayout()
        message_type_layout.addWidget(self.option_chatmsg, 0, 0)
        message_type_layout.addWidget(self.option_uenter, 0, 1)
        message_type_layout.addWidget(self.option_newblackres, 0, 2)
        message_type_layout.addWidget(self.option_dgb, 1, 0)
        message_type_layout.addWidget(self.option_spbc, 1, 1)
        message_type_layout.addWidget(self.option_anbc, 1, 2)
        message_type_layout.addWidget(self.option_rss, 2, 0)
        self.message_type.setLayout(message_type_layout)

        condition_layout = QGridLayout()
        condition_layout.addWidget(self.begin_time_label, 0, 0)
        condition_layout.addWidget(self.end_time_label, 1, 0)
        condition_layout.addWidget(self.room_num_label, 2, 0)
        condition_layout.addWidget(self.view_way_label, 3, 0)
        condition_layout.addWidget(self.noble_level_label, 4, 0)
        condition_layout.addWidget(self.user_name_label, 5, 0)
        condition_layout.addWidget(self.danmu_text_label, 6, 0)
        condition_layout.addWidget(self.gift_name_label, 7, 0)
        condition_layout.addWidget(self.anthor_name_label, 8, 0)
        condition_layout.addWidget(self.begin_time, 0, 1)
        condition_layout.addWidget(self.end_time, 1, 1)
        condition_layout.addWidget(self.room_num, 2, 1)
        condition_layout.addWidget(self.view_way, 3, 1)
        condition_layout.addWidget(self.noble_level, 4, 1)
        condition_layout.addWidget(self.user_name, 5, 1)
        condition_layout.addWidget(self.danmu_text, 6, 1)
        condition_layout.addWidget(self.gift_name, 7, 1)
        condition_layout.addWidget(self.anthor_name, 8, 1)

        button_layout = QHBoxLayout()
        button_layout.addWidget(self.query_button)
        button_layout.addWidget(self.reset_button)
        button_layout.addWidget(self.clear_record_button)
        button_layout.addStretch(1)

        right_layout = QVBoxLayout()
        right_layout.addWidget(self.message_type)
        right_layout.addLayout(condition_layout)
        right_layout.addLayout(button_layout)
        right_layout.addStretch(1)
        right_layout.setContentsMargins(10, 10, 0, 0)

        record_widget_layout = QHBoxLayout()
        record_widget_layout.addWidget(self.record_text, 1)
        record_widget_layout.addLayout(right_layout)
        record_widget_layout.setContentsMargins(0, 0, 0, 0)

        self.setLayout(record_widget_layout)
        self.resize(record_widget_layout.sizeHint())
        self.reset_widgets()
    def __init__(self,
                 freq,
                 samp_rate,
                 bw,
                 gain,
                 device,
                 noise,
                 center,
                 bit_length,
                 tolerance,
                 modulation_type_index,
                 parent=None):
        super().__init__(parent)
        self.ui = Ui_SniffProtocol()
        self.ui.setupUi(self)
        self.setAttribute(Qt.WA_DeleteOnClose)

        self.ui.spinBoxFreq.setValue(freq)
        self.ui.spinBoxSampleRate.setValue(samp_rate)
        self.ui.spinBoxBandwidth.setValue(bw)
        self.ui.spinBoxGain.setValue(gain)
        self.ui.spinboxNoise.setValue(noise)
        self.ui.spinboxCenter.setValue(center)
        self.ui.spinboxBitLen.setValue(bit_length)
        self.ui.spinboxErrorTolerance.setValue(tolerance)
        self.ui.comboxModulation.setCurrentIndex(modulation_type_index)

        self.ui.btnStop.setEnabled(False)
        self.ui.btnClear.setEnabled(False)

        self.ui.cbDevice.clear()
        items = []
        bh = BackendHandler()
        for device_name in bh.DEVICE_NAMES:
            dev = bh.device_backends[device_name.lower()]
            if dev.is_enabled and dev.supports_rx:
                items.append(device_name)

        pm = PluginManager()
        if pm.is_plugin_enabled("NetworkSDRInterface"):
            items.append(NetworkSDRInterfacePlugin.NETWORK_SDR_NAME)

        self.ui.cbDevice.addItems(items)
        del bh
        if device in items:
            self.ui.cbDevice.setCurrentIndex(items.index(device))

        if self.ui.cbDevice.count() == 0:
            Errors.no_device()
            self.close()
            return

        device = self.ui.cbDevice.currentText()
        self.sniffer = ProtocolSniffer(bit_length, center, noise, tolerance,
                                       modulation_type_index, samp_rate, freq,
                                       gain, bw, device)

        self.set_object_visibility()

        self.sniffer.usrp_ip = self.ui.lineEditIP.text()
        self.bw_sr_are_locked = self.ui.btnLockBWSR.isChecked()

        ipRange = "(?:[0-1]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])"
        ipRegex = QRegExp("^" + ipRange + "\\." + ipRange + "\\." + ipRange +
                          "\\." + ipRange + "$")
        self.ui.lineEditIP.setValidator(QRegExpValidator(ipRegex))

        # Auto Complete like a Boss
        completer = QCompleter()
        completer.setModel(QDirModel(completer))
        self.ui.lineEditOutputFile.setCompleter(completer)

        self.create_connects()
        def __init__(self):
            super(Widget,self).__init__()
            
            self.setWindowTitle("Uren invoeren externe werken -lonen")
            self.setWindowIcon(QIcon('./images/logos/logo.jpg'))
            self.setWindowFlags(self.windowFlags()| Qt.WindowSystemMenuHint |
                                Qt.WindowMinMaxButtonsHint)
            
            #self.setStyleSheet("background-color: #D9E1DF")
            self.setFont(QFont('Arial', 10))
               
            self.zkaccEdit = QLineEdit(str(maccountnr))
            self.zkaccEdit.setFixedWidth(150)
            self.zkaccEdit.setFont(QFont("Arial",10))
            reg_ex = QRegExp("^[1]{1}[0-9]{8}$")
            input_validator = QRegExpValidator(reg_ex, self.zkaccEdit)
            self.zkaccEdit.setValidator(input_validator)
            
            self.zkwerknEdit = QLineEdit(str(mwerknr))
            self.zkwerknEdit.setFixedWidth(150)
            self.zkwerknEdit.setFont(QFont("Arial",10))
            reg_ex = QRegExp("^[8]{1}[0-9]{8}$")
            input_validator = QRegExpValidator(reg_ex, self.zkwerknEdit)
            self.zkwerknEdit.setValidator(input_validator)
     
            self.k0Edit = QComboBox()
            self.k0Edit.setFixedWidth(150)
            self.k0Edit.setFont(QFont("Arial",10))
            self.k0Edit.addItem('100%')
            self.k0Edit.addItem('125%')
            self.k0Edit.addItem('150%')
            self.k0Edit.addItem('200%')
            self.k0Edit.addItem('Reis')
            self.k0Edit.addItem('Verlof')
            self.k0Edit.addItem('Extra verlof')
            self.k0Edit.addItem('Ziekte')
            self.k0Edit.addItem('Feestdag')
            self.k0Edit.addItem('Dokter')
            self.k0Edit.addItem('Geoorl. verzuim')
            self.k0Edit.addItem('Ong. verzuim')
  
            self.cBox = QCheckBox('Meerwerk')
            self.cBox.setFont(QFont("Arial",10))
                                                                     
            self.urenEdit = QLineEdit('0')
            self.urenEdit.setFixedWidth(150)
            self.urenEdit.setFont(QFont("Arial",10))
            reg_ex = QRegExp("^[-+]?[0-9]*\.?[0-9]+$")
            input_validator = QRegExpValidator(reg_ex, self.urenEdit)
            self.urenEdit.setValidator(input_validator)
            
            self.urentotEdit = QLineEdit('0')
            self.urentotEdit.setFixedWidth(150)
            self.urentotEdit.setDisabled(True)
            self.urentotEdit.setFont(QFont("Arial",10))
            self.urentotEdit.setStyleSheet("color: black")
                                                          
            self.boekdatumEdit = QLineEdit(mboekd)
            self.boekdatumEdit.setFixedWidth(150)
            self.boekdatumEdit.setFont(QFont("Arial",10))
            reg_ex = QRegExp("^[2]{1}[0-1]{1}[0-9]{2}[-]{1}[0-1]{1}[0-9]{1}[-]{1}[0-3]{1}[0-9]{1}$")
            input_validator = QRegExpValidator(reg_ex, self.boekdatumEdit)
            self.boekdatumEdit.setValidator(input_validator)
                                            
            def accChanged():
                self.zkaccEdit.setText(self.zkaccEdit.text())
            self.zkaccEdit.textChanged.connect(accChanged)
             
            def werknChanged():
                self.zkwerknEdit.setText(self.zkwerknEdit.text())
            self.zkwerknEdit.textChanged.connect(werknChanged)
             
            '''
            def k0Changed():
                self.k0Edit.setCurrentText(self.k0Edit.currentText())
            self.k0Edit.currentTextChanged.connect(k0Changed)
            '''
            
            def k0Changed():
                self.k0Edit.setCurrentIndex(self.k0Edit.currentIndex())
            self.k0Edit.currentIndexChanged.connect(k0Changed)
                        
            def  cboxChanged():
                 self.cBox.setCheckState(self.cBox.checkState())
            self.cBox.stateChanged.connect(cboxChanged)
            
            def urenChanged():
                self.urenEdit.setText(self.urenEdit.text())
            self.urenEdit.textChanged.connect(urenChanged)
            
            def boekdatumChanged():
                self.boekdatumEdit.setText(self.boekdatumEdit.text())
            self.boekdatumEdit.textChanged.connect(boekdatumChanged)
            
            grid = QGridLayout()
            grid.setSpacing(10)
            
            lbl = QLabel()
            pixmap = QPixmap('./images/logos/verbinding.jpg')
            lbl.setPixmap(pixmap)
            grid.addWidget(lbl ,0 , 1)
            
            logo = QLabel()
            pixmap = QPixmap('./images/logos/logo.jpg')
            logo.setPixmap(pixmap)
            grid.addWidget(logo , 0, 3, 1, 1, Qt.AlignRight)       

            self.lblt = QLabel('Muteren uren (werken - lonen) niet cumulatief')
            self.lblt.setFont(QFont("Arial", 10))
            grid.addWidget(self.lblt , 12, 1, 1, 4, Qt.AlignCenter)
            
            lbl1 = QLabel('Accountnummer')
            lbl1.setFont(QFont("Arial", 10))
            grid.addWidget(lbl1, 6, 1, 1, 1, Qt.AlignRight)
            grid.addWidget(self.zkaccEdit , 6, 2, 1, 1, Qt.AlignRight)
            
            lbl2 = QLabel('Werknummer')
            lbl2.setFont(QFont("Arial", 10))
            grid.addWidget(lbl2, 7, 1, 1, 1, Qt.AlignRight)
            grid.addWidget(self.zkwerknEdit, 7, 2, 1, 1, Qt.AlignRight)
                
            lbl3 = QLabel('Soort Uren')
            lbl3.setFont(QFont("Arial", 10))
            grid.addWidget(lbl3, 8, 1, 1, 1, Qt.AlignRight)
            grid.addWidget(self.k0Edit, 8, 2, 1, 1, Qt.AlignRight)
                        
            grid.addWidget(self.cBox, 8, 3)
            
            self.lblprof = QLabel('Totaaluren\n')
            grid.addWidget(self.lblprof, 9, 1, 1, 1, Qt.AlignRight | Qt.AlignTop)
            grid.addWidget(self.urentotEdit, 9, 2, 1, 1, Qt.AlignRight)
            
            lbl4 = QLabel('Urenmutatie')
            lbl4.setFont(QFont("Arial", 10))
            grid.addWidget(lbl4, 10, 1, 1, 1, Qt.AlignRight)
            grid.addWidget(self.urenEdit, 10, 2, 1, 1, Qt.AlignRight)
                                       
            lbl5 = QLabel('Boekdatum')
            lbl5.setFont(QFont("Arial", 10))
            grid.addWidget(lbl5, 11, 1, 1, 1, Qt.AlignRight)
            grid.addWidget(self.boekdatumEdit, 11, 2, 1, 1, Qt.AlignRight)
            
            self.applyBtn = QPushButton('Muteren')
            self.applyBtn.clicked.connect(lambda: urenBoeking(self, merror, m_email))
               
            self.applyBtn.setFont(QFont("Arial",10))
            self.applyBtn.setFixedWidth(100)
            self.applyBtn.setStyleSheet("color: black;  background-color: gainsboro") 
                
            grid.addWidget(self.applyBtn,13, 3 , 1 , 1, Qt.AlignRight)
                
            cancelBtn = QPushButton('Sluiten')
            cancelBtn.clicked.connect(lambda: windowSluit(self, m_email)) 
    
            grid.addWidget(cancelBtn, 13, 2, 1 , 1, Qt.AlignRight)
            cancelBtn.setFont(QFont("Arial",10))
            cancelBtn.setFixedWidth(100)
            cancelBtn.setStyleSheet("color: black; background-color: gainsboro") 
                   
            infoBtn = QPushButton('Informatie')
            infoBtn.clicked.connect(lambda: info()) 
    
            grid.addWidget(infoBtn, 13, 1, 1, 1, Qt.AlignRight)
            infoBtn.setFont(QFont("Arial",10))
            infoBtn.setFixedWidth(100)
            infoBtn.setStyleSheet("color: black; background-color: gainsboro") 
            
            grid.addWidget(QLabel('\u00A9 2017 all rights reserved - [email protected]'), 14, 1, 1, 4, Qt.AlignCenter)
            
            self.setLayout(grid)
            self.setGeometry(600, 200, 150, 100)
Exemple #29
0
    def __init__(self):
        super(mainView, self).__init__()
        self.setupUi(self)
        # 主要变量初始化
        self.isShow_flag = False
        self.account = "admin"
        self.password = "******"
        self.loadTimeStr = ""
        self.isAdmin = False
        self.curPage = 1
        self.totalPage = 1

        # 日志相关变量和类的初始化
        # self.log = logout.TimedRotatingFileLog("win_log",".\\log\\", "win.log",logging.DEBUG)
        self.log = logout.RotatingFileLog("win_log", ".\\log\\", "win.log",
                                          logging.DEBUG)
        self.msg_list = []
        self.msg_list2 = []
        self.DEBUG = 1
        self.INFO = 2
        self.WARNING = 3
        self.ERROR = 4
        self.CRITICAL = 5

        # 线程锁及线程信号量初始化
        self.mutex1 = QMutex()
        self.mutex2 = QMutex()
        self.signal = threading.Event()
        self.signal.clear()

        # 初始化数据库相关信息
        self.db = pymysql.Connect(mysql["host"], mysql["user"],
                                  mysql["passwd"], mysql["dbName"])
        self.cursor = self.db.cursor()

        # 系统时间显示相关类初始化
        self.updateTime = QTimer()
        self.updateTime.start(1000)
        self.updateTime.timeout.connect(self.updateTimeShow)

        # 自动刷新显示列表定时器初始化
        self.Refresh_timer = QTimer()
        self.Refresh_timer.timeout.connect(self.refreshSelf)

        # 扫码枪未连接提示
        self.scanner_statue_timer = QTimer()
        self.scanner_statue_timer.timeout.connect(self.scanner_statu_change)
        self.scanner_statue_flag = False

        # PLC未连接提示
        self.plc_statue_timer = QTimer()
        self.plc_statue_timer.timeout.connect(self.plc_statue_change)
        self.plc_statue_flag = False

        # 初始化状态栏及时间栏相关类及变量初始化
        # self.setWhatsThis("123456789")
        self.statuLable = QtWidgets.QLabel()
        # self.errLable = QtWidgets.QLabel()
        self.nowTimeLable = QtWidgets.QLabel()
        self.statuLable.setAlignment(Qt.AlignLeft)
        # self.errLable.setAlignment(Qt.AlignCenter)
        self.nowTimeLable.setAlignment(Qt.AlignRight)
        self.statusbar.addWidget(self.statuLable)
        # self.statusbar.addWidget(self.errLable)
        self.statusbar.addWidget(self.nowTimeLable)
        self.statusbar.setStyleSheet("QStatusBar::item{border: 0px}")
        self.statuLable.setText("就绪")
        # self.errLable.setStyleSheet("color:red;font:bold;font-size:12px")
        # self.errLable.setText("异常显示")
        nowtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        self.nowTimeLable.setText(str(nowtime))
        self.nowTimeLable.setStyleSheet("color:blue;font-size:12px")
        self.statuLable.setStyleSheet("color:red;font-size:12px")

        # 用户及登陆信息栏初始化
        self.textLable.setStyleSheet("color:blue;font:bold;font-size:14px")
        self.userLable.setStyleSheet("color:red;font:bold;font-size:14px")
        self.loadTimeLable2.setStyleSheet("color:red;font:bold;font-size:14px")

        # 设置设置信息为只读
        self.machineID.setReadOnly(True)
        self.plantID.setReadOnly(True)
        self.processNo.setReadOnly(True)
        self.localityNo.setReadOnly(True)
        self.type.setReadOnly(True)
        self.loadTime.setReadOnly(True)
        self.classBox.setEnabled(False)

        # 初始化页码显示控件
        self.curPageNoEdit.setMaximumSize(QSize(40, 20))
        self.curPageNoEdit.setStyleSheet("color:blue;font:bold;font-size:14px")
        validator = QRegExpValidator(QRegExp("\d+"))
        self.curPageNoEdit.setValidator(validator)  # 设置只能输入数字
        self.curPageNoEdit.setText(str(self.curPage))
        self.curPageNoEdit.setAlignment(Qt.AlignCenter)
        self.totalPageLable.setStyleSheet(
            "color:blue;font:bold;font-size:14px")

        # 设置PLC和扫码枪连接状态
        self.PlcConStatu.setText("PLC等待连接")
        self.ScanConStatu.setText("扫码枪等待连接")
        self.PlcConStatu.setStyleSheet(
            "background:none;border:none;font:bold;font-size:12px;color:#FF8800"
        )
        self.ScanConStatu.setStyleSheet(
            "background:none;border:none;font:bold;font-size:12px;color:#FF8800"
        )

        # 设置各类信号与槽
        self.prevPageBtn.clicked.connect(self.onClickedPrevPageBtn)
        self.nextPageBtn.clicked.connect(self.onClickedNextPageBtn)
        self.curPageNoEdit.returnPressed.connect(self.onPressedCurPageNoEdit)

        self.setBtn.clicked.connect(self.onClickedSetBtn)
        self.changePwdBtn.clicked.connect(self.onClickedChangePwdBtn)
        self.refreshBtn.clicked.connect(self.onClickedRefreshBtn)
        self.refreshSelfBtn.clicked.connect(self.onClickedRefreshSelfBtn)

        # 设置显示列表
        # self.showTable.setHorizontalHeaderLabels(["序号", "工字轮编号", "重量1", "称重时间1", "是否二次称重", "重量2", "称重时间2"])
        self.mode = QStandardItemModel()
        self.mode.setRowCount(15)
        self.mode.setColumnCount(7)
        for i in range(0, 15):
            for j in range(0, 7):
                self.mode.setItem(i, j, QStandardItem(""))
        self.mode.setHorizontalHeaderLabels(
            ["序号", "工字轮编号", "重量1", "称重时间1", "是否二次称重", "重量2", "称重时间2"])
        self.showTable.setModel(self.mode)
        self.showTable.verticalHeader().setVisible(False)
        self.setTable()

        # 初始化登陆界面类
        self.loginView = loginView()
        self.loginView.loginBtn.clicked.connect(self.onClickedLoginBtn)
        self.loginView.loginBtn.pressed.connect(self.onClickedLoginBtn)
        self.loginView.account.returnPressed.connect(self.onClickedLoginBtn)
        self.loginView.password.returnPressed.connect(self.onClickedLoginBtn)

        # 初始化修改密码界面类
        self.changePwdView = changePwdView()
        self.changePwdView.changeBtn.clicked.connect(self.onClickedChangeBtn_c)
        self.changePwdView.changeBtn.pressed.connect(self.onClickedChangeBtn_c)
        self.changePwdView.oldPwd.returnPressed.connect(
            self.onClickedChangeBtn_c)
        self.changePwdView.newPwd1.returnPressed.connect(
            self.onClickedChangeBtn_c)
        self.changePwdView.newPwd2.returnPressed.connect(
            self.onClickedChangeBtn_c)

        self.logMsgView = logMsgView()
Exemple #30
0
        def __init__(self, parent=None):
            super(Widget, self).__init__(parent)
            self.setWindowTitle('Bestelregels inkooporder materialen invoeren')
            self.setWindowIcon(QIcon('./images/logos/logo.jpg'))

            self.setFont(QFont('Arial', 10))

            self.Inkoopordernummer = QLabel()
            inkorderEdit = QLineEdit(str(minkordnr))
            inkorderEdit.setDisabled(True)
            inkorderEdit.setFixedWidth(130)
            inkorderEdit.setFont(QFont("Arial", 10))
            inkorderEdit.textChanged.connect(self.inkorderChanged)

            self.BestelregelArtikel = QLabel()
            artEdit = QLineEdit()
            artEdit.setFixedWidth(130)
            artEdit.setFont(QFont("Arial", 10))
            artEdit.textChanged.connect(self.artChanged)
            reg_ex = QRegExp("^[2#]{1}[0-9]{8}$")
            input_validator = QRegExpValidator(reg_ex, artEdit)
            artEdit.setValidator(input_validator)

            self.BestelHoeveelheid = QLabel()
            hoevEdit = QLineEdit()
            hoevEdit.setFixedWidth(130)
            hoevEdit.setFont(QFont("Arial", 10))
            hoevEdit.textChanged.connect(self.hoevChanged)
            reg_ex = QRegExp("^[0-9.]{0,12}$")
            input_validator = QRegExpValidator(reg_ex, hoevEdit)
            hoevEdit.setValidator(input_validator)

            self.Inkoopeenheidsprijs = QLabel()
            prijsEdit = QLineEdit()
            prijsEdit.setFixedWidth(130)
            prijsEdit.setFont(QFont("Arial", 10))
            prijsEdit.textChanged.connect(self.prijsChanged)
            reg_ex = QRegExp("^[0-9.]{0,12}$")
            input_validator = QRegExpValidator(reg_ex, prijsEdit)
            prijsEdit.setValidator(input_validator)

            self.Levering_start = QLabel()
            #levertEdit = QDateEdit(datetime.date)
            startEdit = QLineEdit('')
            startEdit.setCursorPosition(0)
            startEdit.setFixedWidth(130)
            startEdit.setFont(QFont("Arial", 10))
            startEdit.textChanged.connect(self.startChanged)
            reg_ex = QRegExp(
                '^[2]{1}[0]{1}[0-9]{2}[-]{1}[0-1]{1}[0-9]{1}[-]{1}[0-3]{1}[0-9]{1}$'
            )
            input_validator = QRegExpValidator(reg_ex, startEdit)
            startEdit.setValidator(input_validator)

            self.Levering_end = QLabel()
            #levertEdit = QDateEdit(datetime.date)
            endEdit = QLineEdit('')
            endEdit.setCursorPosition(0)
            endEdit.setFixedWidth(130)
            endEdit.setFont(QFont("Arial", 10))
            endEdit.textChanged.connect(self.endChanged)
            reg_ex = QRegExp(
                '^[2]{1}[0]{1}[0-9]{2}[-]{1}[0-1]{1}[0-9]{1}[-]{1}[0-3]{1}[0-9]{1}$'
            )
            input_validator = QRegExpValidator(reg_ex, endEdit)
            endEdit.setValidator(input_validator)

            grid = QGridLayout()
            grid.setSpacing(20)

            lbl = QLabel()
            pixmap = QPixmap('./images/logos/verbinding.jpg')
            lbl.setPixmap(pixmap)
            grid.addWidget(lbl, 1, 0)

            self.setFont(QFont('Arial', 10))
            grid.addWidget(QLabel('Bestelling voor\nLeverancier: '+str(minkgeg[1])+\
              ',\n'+minkgeg[2]+' '+minkgeg[3]+',\n'+minkgeg[4]+' '+str(minkgeg[5])+\
              minkgeg[6]+',\n'+minkgeg[7]+' '+minkgeg[8]+'.\nOrderregel '+str(mregel)), 1, 1, 1, 2)

            lbl1 = QLabel('Ordernummer')
            lbl1.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl1, 5, 0)
            grid.addWidget(inkorderEdit, 5, 1)

            lbl2 = QLabel('Artikelnummer')
            lbl2.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl2, 6, 0)
            grid.addWidget(artEdit, 6, 1)

            lbl3 = QLabel('Bestelhoeveelheid')
            lbl3.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl3, 7, 0)
            grid.addWidget(hoevEdit, 7, 1)

            lbl4 = QLabel('Inkoopeenheidsprijs')
            lbl4.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl4, 8, 0)
            grid.addWidget(prijsEdit, 8, 1)

            lbl5 = QLabel('Levering start jjjj-mm-dd')
            lbl5.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl5, 9, 0)
            grid.addWidget(startEdit, 9, 1)

            lbl6 = QLabel('Levering eind jjjj-mm-dd')
            lbl6.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
            grid.addWidget(lbl6, 10, 0)
            grid.addWidget(endEdit, 10, 1)

            logo = QLabel()
            pixmap = QPixmap('./images/logos/logo.jpg')
            logo.setPixmap(pixmap)
            grid.addWidget(logo, 5, 2, 1, 1, Qt.AlignRight)

            self.setLayout(grid)
            self.setGeometry(100, 100, 150, 150)

            applyBtn = QPushButton('Invoeren')
            applyBtn.clicked.connect(self.accept)

            grid.addWidget(applyBtn, 11, 2, 1, 1, Qt.AlignRight)
            applyBtn.setFont(QFont("Arial", 10))
            applyBtn.setFixedWidth(100)
            applyBtn.setStyleSheet(
                "color: black;  background-color: gainsboro")

            sluitBtn = QPushButton('Sluiten')
            sluitBtn.clicked.connect(self.close)

            grid.addWidget(sluitBtn, 11, 1, 1, 2)
            sluitBtn.setFont(QFont("Arial", 10))
            sluitBtn.setFixedWidth(100)
            sluitBtn.setStyleSheet(
                "color: black;  background-color: gainsboro")

            grid.addWidget(
                QLabel('\u00A9 2017 all rights reserved [email protected]'),
                12, 0, 1, 3, Qt.AlignCenter)