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)
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)
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")
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)
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)
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")
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)
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)
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)
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)
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()])
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)
def textFiltering(self): reg_num = QRegExp('^[0-9]{5}$') validator_num = QRegExpValidator(self) validator_num.setRegExp(reg_num) self.setValidator(validator_num)
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")
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())
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)
def set_regexpression(self, regexp): """ Set regular expression for input format regexp as string """ validator = QRegExpValidator(QRegExp(regexp)) self.setValidator(validator)
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())
def __init__(self, *args, **kwargs): QtWidgets.QTextEdit.__init__(self, *args, **kwargs) regexp = QtCore.QRegExp("[^\'\"¨&\[\]{};`~?|!@#$\\=]*") self.validator = QRegExpValidator(regexp)
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)
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()
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)