def bn_browse_for(vip, k): Dialog = QWidget() Dialog.resize(50, 70) # *cs.RESIZE_BROWSE_DIALOG Dialog.move(100, 100) def _set_file_path(sk, file_extension): new_path = str(QFileDialog.getOpenFileName(Dialog, 'Open a file', os.sep, "*."+file_extension)) if new_path: vip.set(sk, {k : new_path}) # this is a le change, triggered from this bn action return new_path def _set_dir_path(sk): new_path = str(QFileDialog.getExistingDirectory(Dialog, 'Open a folder', os.sep, QFileDialog.ShowDirsOnly)) if new_path: vip.set(sk, {k : new_path}) # this is a le change, triggered from this bn action return new_path if k == 'FILE_PATH_session': new_path = _set_file_path('Session', "txt") if new_path: bn_load_session_to_vip(vip) elif k == 'DIR_PATH_results': _set_dir_path('Results') elif k in ['FILE_PATH_waveform_'+str(j) for j in range(4)]: _set_file_path('H3344_1', "csv") else: vip.GUI_feedback("!!! (bn_browse_for) A strange key was passed.") Dialog.close()
def choosePath(self, flag): w = QWidget() w.resize(320, 240) w.setWindowTitle("Select directory where KID files are ") if flag == "firm": self.firmware = QFileDialog.getOpenFileName( self, "Select Directory") self.ui.firmEdit.setText(self.firmware) self.gc['FIRMWARE_FILE'] = self.firmware elif flag == "vnaPath": self.vna_savepath = QFileDialog.getOpenFileName( self, "Select Directory") self.ui.vnaEdit.setText(self.vna_savepath) self.gc['VNA_SAVEPATH'] = self.vna_savepath elif flag == "tarPath": self.targ_savepath = QFileDialog.getOpenFileName( self, "Select Directory") self.ui.tarEdit.setText(self.targ_savepath) self.gc['TARG_SAVEPATH'] = self.targ_savepath elif flag == "streamPath": self.dirfile_savepath = QFileDialog.getOpenFileName( self, "Select Directory") self.ui.streamEdit.setText(self.dirfile_savepath) self.gc['DIRFILE_SAVEPATH'] = self.dirfile_savepath
def __init__(self, module, parent=None): """Constructor.""" super(QgisODKServices, self).__init__(parent) # Set up the user interface from Designer. # After setupUI you can access any designer object by doing # self.<objectname>, and you can use autoconnect slots - see # http://qt-project.org/doc/qt-4.8/designer-using-a-ui-file.html # #widgets-and-dialogs-with-auto-connect self.setupUi(self) self.module = module for numServices in range(1, len(self.services)): container = QWidget() container.resize(QSize(310, 260)) self.tabServices.addTab(container, "") for tab, service in enumerate(self.services): container = self.tabServices.widget(tab) serviceClass = globals()[service] serviceClass(container) self.tabServices.setTabText(tab, service) S = QSettings() currentService = S.value("qgisodk/", defaultValue="0") self.tabServices.setCurrentIndex(int(currentService)) self.attachmentsCheckBox.hide() self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject)
def showLegend(self, layer, field, setting_list): if not self.cellstyle: self.styleManager = QgsMapLayerStyleManager(layer) self.styleManager.addStyleFromLayer(u'默认') self.cellstyle = True ranges = [] flabel = QLabel(field) fl = QHBoxLayout() fl.addWidget(flabel) self.vbox.addLayout(fl) for bl in setting_list: widget = QWidget(self) widget.setStyleSheet('QWidget {background-color:%s}' % bl[0].name()) widget.resize(20, 20) label = QLabel(str(bl[1]) + u'—' + str(bl[2])) c = QHBoxLayout() c.addWidget(widget) c.addWidget(label) c.setStretchFactor(widget, 1) c.setStretchFactor(label, 3) self.vbox.addLayout(c) sym = QgsSymbolV2.defaultSymbol(layer.geometryType()) sym.setColor(bl[0]) rng = QgsRendererRangeV2(bl[1], bl[2], sym, label.text()) ranges.append(rng) self.vbox.addStretch(1) self.setLayout(self.vbox) renderer = QgsGraduatedSymbolRendererV2(field, ranges) layer.setRendererV2(renderer) self.iface.actionDraw().trigger()
def choosePath(self, flag): w = QWidget() w.resize(320, 240) w.setWindowTitle("Select") if flag == "firm": firmwareDiry = QFileDialog.getExistingDirectory( self, "Select Folder") self.ui.diryFirmwareEdit.setText(firmwareDiry) elif flag == "firmFile": firmwareFile = QFileDialog.getOpenFileName(self, "Select File") self.ui.firmfileEdit.setText(firmwareFile) elif flag == "root": root = QFileDialog.getExistingDirectory(self, "Select Folder") self.ui.rootDiryEdit.setText(root) elif flag == "logg": logg = QFileDialog.getExistingDirectory(self, "Select Folder") self.ui.lggFilesEdit.setText(logg) elif flag == "pid": pid = QFileDialog.getExistingDirectory(self, "Select Folder") self.ui.diryPIDEdit.setText(pid) elif flag == "tonelist": self.tones = QFileDialog.getExistingDirectory( self, "Select Folder") self.ui.diryToneListEdit.setText(self.tones) elif flag == "tonesFile": TonesFile = QFileDialog.getOpenFileName(self, "Select File") self.ui.toneListFileEdit.setText(TonesFile) elif flag == "ram": self.ram = QFileDialog.getExistingDirectory(self, "Select Folder") self.ui.diryRamDiskEdit.setText(self.ram)
def run(self): w = QWidget() w.resize(250, 150) w.move(300, 300) w.setWindowTitle('Simple') w.show() while(self.ready): time.sleep(0.1)
def __init__(self, parent): parent.setWindowTitle("Create a new directory") parent.resize(400, 250) parent.setAttribute(Qt.WA_DeleteOnClose) descriptionLabel = QLabel(parent) descriptionLabel.setText("Enter the name for the new directory " \ + "and choose a parent directory for it") newDirectoryLabel = QLabel(parent) newDirectoryLabel.setText("Name of the new directory") directoryLabel = QLabel(parent) directoryLabel.setText("Parent directory for the new directory") parent.newDirectoryInput = QLineEdit(parent) validator = QRegExpValidator(parent.newDirectoryInput) # altho a valid unix filename can contain anything but / and \0 (null) # this should be enough for every sane person pattern = QRegExp("[a-zA-Z0-9-_.]+") validator.setRegExp(pattern) parent.newDirectoryInput.setValidator(validator) parent.directoryInput = QLineEdit(parent.startDirectory, parent) parent.directoryInput.setReadOnly(True) browseButton = QPushButton("&Browse", parent) browseButton.clicked.connect(parent.browseDirectory) okButton = QPushButton("&Done", parent) okButton.clicked.connect(parent.createNewDirectory) cancelButton = QPushButton("&Cancel", parent) cancelButton.clicked.connect(parent.close) frame = QFrame(parent) frame.setFrameStyle(QFrame.HLine) frame.setFrameShadow(QFrame.Sunken) space = QWidget(parent) space.resize(400, 50) grid = QGridLayout(parent) grid.addWidget(descriptionLabel, 0, 0, 1, 3) grid.addWidget(newDirectoryLabel, 1, 0, 1, 3) grid.addWidget(parent.newDirectoryInput, 2, 0, 1, 3) grid.addWidget(directoryLabel, 3, 0, 1, 3) grid.addWidget(parent.directoryInput, 4, 0, 1, 2) grid.addWidget(browseButton, 4, 2, 1, 1) grid.addWidget(space, 5, 0, 1, 3) grid.addWidget(frame, 6, 0, 1, 3) grid.addWidget(cancelButton, 7, 0, 1, 1) grid.addWidget(okButton, 7, 2, 1, 1)
def metronome(): import os, sys, time from PyQt4.QtCore import SIGNAL from PyQt4.QtGui import QApplication, QPushButton, QSlider, QWidget from PyQt4.QtGui import QHBoxLayout import scsynth import synths app = QApplication(sys.argv) server = scsynth.server.start(verbose=True) #server = scsynth.server.connect() engine = Engine(server, app) server.sendMsg('/dumpOSC', 1) engine.tempoclock.set_tempo(120) SYNTHDEF_PATH = os.path.join(os.path.expanduser('~'), '.pksampler', 'synthdefs') SYNTHDEFS = ('JASStereoSamplePlayer.scsyndef', 'JASSine.scsyndef', ) for fname in SYNTHDEFS: engine.server.sendMsg('/d_load', os.path.join(SYNTHDEF_PATH, fname)) CLICK = '/Users/patrick/.pksampler/clicks/click_1.wav' engine.loader.load(CLICK) time.sleep(.1) notes = [scsynth.Note(i, i+16, 69) for i in (0, )] pattern = scsynth.Pattern(notes) pattern.beats = 1 stream = engine.register(synths.Sine(), pattern) stream.loop(True) engine.start() widget = QWidget() Layout = QHBoxLayout(widget) widget.resize(100, 250) widget.show() def set_tempo(value): engine.tempoclock.set_tempo(value) slider = QSlider(widget) slider.setRange(100, 180) slider.setValue(140) QObject.connect(slider, SIGNAL('valueChanged(int)'), set_tempo) Layout.addWidget(slider) button = QPushButton('quit', widget) QObject.connect(button, SIGNAL('clicked()'), app.quit) Layout.addWidget(button) app.exec_() engine.stop()
def create_crop_tab(self, crop_params): # create crop tab widget & layout crop_tab_widget = QWidget(self.crop_tabs_widget) crop_tab_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) crop_tab_widget.resize(276, 300) crop_tab_layout = QVBoxLayout(crop_tab_widget) # add to list of crop widgets & layouts self.crop_tab_layouts.append(crop_tab_layout) self.crop_tab_widgets.append(crop_tab_widget) # create form layout self.form_layout = QFormLayout() self.form_layout.setFieldGrowthPolicy( QFormLayout.AllNonFixedFieldsGrow) crop_tab_layout.addLayout(self.form_layout) # add dict for storing param controls for this crop self.crop_param_controls.append({}) # add param controls self.create_param_controls(crop_params) # create crop button layout crop_button_layout = QHBoxLayout() crop_button_layout.setSpacing(5) crop_button_layout.addStretch(1) crop_tab_layout.addLayout(crop_button_layout) # add crop buttons self.reset_crop_button = QPushButton(u'\u25A8 Reset Crop', self) self.reset_crop_button.setMaximumWidth(110) self.reset_crop_button.clicked.connect(self.controller.reset_crop) crop_button_layout.addWidget(self.reset_crop_button) self.select_crop_button = QPushButton(u'\u25A3 Select Crop', self) self.select_crop_button.setMaximumWidth(110) self.select_crop_button.clicked.connect(self.controller.select_crop) crop_button_layout.addWidget(self.select_crop_button) # add crop widget as a tab self.crop_tabs_widget.addTab(crop_tab_widget, str(self.controller.current_crop)) # make this crop the active tab self.crop_tabs_widget.setCurrentIndex(self.controller.current_crop) # update text on all tabs for i in range(len(self.controller.params['crop_params'])): self.crop_tabs_widget.setTabText(i, str(i))
def __init__(self, parent: QtGui.QWidget, uiPyModule, className: str = "Ui_Widget"): """ 'parent' - common widget for all device types, 'uiPyModule' - generated from Widget.ui py-module. """ QtGui.QFrame.__init__(self) self.ui = uiPyModule.__dict__[className]() self.ui.setupUi(self) self.setParent(parent) if parent: parent.setMinimumHeight(parent.minimumHeight() + self.minimumHeight()) parent.resize(parent.width(), parent.minimumHeight())
def draw_image(self): data = urllib.request.urlopen(self.url).read() image = QtGui.QImage() image.loadFromData(data) app = QApplication(sys.argv) w = QWidget() w.setWindowTitle('Pokemon') label = QLabel(w) pixmap = QPixmap(image) label.setPixmap(pixmap) w.resize(pixmap.width(), pixmap.height()) w.show() app.exec_()
def setupUI(self): window = QWidget() window.setWindowTitle('Run script') window.resize(550, 300) window_layout = QGridLayout() window.setLayout(window_layout) btn_load = QPushButton("Load file") lbl_loaded = QLabel("Nothing loaded...") window_layout.addWidget(btn_load, 0, 0) window_layout.addWidget(lbl_loaded, 0, 1) self.script_textBox = TextBox() window_layout.addWidget(self.script_textBox, 1, 0, 1, 0) self.highlight = PythonHighlighter(self.script_textBox.document()) btn_att = QPushButton("Attack!") window_layout.addWidget(btn_att, 2, 0) @pyqtSlot() def on_click(): self.attack_file = QFileDialog.getOpenFileName( window, 'Open file', '', "") if self.attack_file != "": path = self.attack_file.rfind('/') self.attack_file = self.attack_file[path + 1:] lbl_loaded.setText(self.attack_file) self.script_textBox.setText("") with open(self.attack_file) as f: for line in f.readlines(): self.script_textBox.appendText(line) self.script_textBox.updateText() btn_load.clicked.connect(on_click) @pyqtSlot() def on_click(): self.attack() btn_att.clicked.connect(on_click) return window
def setupUI(self): window = QWidget() window.setWindowTitle('Denial of Service configuration') window.resize(300, 180) window_layout = QGridLayout() window.setLayout(window_layout) lbl_target = QLabel("Target IP: ") txt_target = QLineEdit() window_layout.addWidget(lbl_target, 0, 0) window_layout.addWidget(txt_target, 0, 1) lbl_source = QLabel("Source IP: ") txt_source = QLineEdit() window_layout.addWidget(lbl_source, 1, 0) window_layout.addWidget(txt_source, 1, 1) lbl_iface = QLabel("Net. Interface: ") ifaces = netifaces.interfaces() cb_iface = QComboBox() cb_iface.addItems(ifaces) window_layout.addWidget(lbl_iface, 2, 0) window_layout.addWidget(cb_iface, 2, 1) lbl_number = QLabel("Number of packets: ") txt_number = QLineEdit() window_layout.addWidget(lbl_number, 3, 0) window_layout.addWidget(txt_number, 3, 1) btn_att = QPushButton("Attack!") window_layout.addWidget(btn_att, 5, 0) @pyqtSlot() def on_click(): self.log_textBox.appendText( "Denial of Service attack starting...\n") self.setTarget(cb_iface.currentText(), txt_target.text(), txt_source.text(), txt_number.text()) #self.setTarget("", "192.168.122.95", "192.168.122.142", 10) window.close() self.attack() btn_att.clicked.connect(on_click) return window
def show(): """ Simple function to show how to load an image from a resource file and add it to a widget. @return: """ # Create window app = QApplication(sys.argv) w = QWidget() w.setWindowTitle("PyQT4") # Create widget label = QLabel(w) image = resource_filename(Requirement.parse("setuptools_resource_example_pkg"), "mypkg/resources/alba-logo.png") pixmap = QPixmap(image) label.setPixmap(pixmap) w.resize(pixmap.width(), pixmap.height()) # Draw window w.show() sys.exit(app.exec_())
def show(): """ Simple function to show how to load an image from a resource file and add it to a widget. @return: """ # Create window app = QApplication(sys.argv) w = QWidget() w.setWindowTitle("PyQT4") # Create widget label = QLabel(w) image = ':/alba-logo.png' pixmap = QPixmap(image) label.setPixmap(pixmap) w.resize(pixmap.width(), pixmap.height()) # Draw window w.show() sys.exit(app.exec_())
def initUI(self): self.setWindowTitle(u"模三分析") self.setWindowFlags(Qt.WindowStaysOnTopHint) self.setWindowFlags(Qt.WindowMinimizeButtonHint) widget_0 = QWidget() widget_0.setStyleSheet('QWidget {background-color: red}') widget_0.resize(20, 20) label_0 = QLabel("0") widget_1 = QWidget() widget_1.setStyleSheet('QWidget {background-color: yellow}') widget_1.resize(20, 20) label_1 = QLabel("1") widget_2 = QWidget() widget_2.setStyleSheet('QWidget {background-color: #47d54c}') widget_2.resize(20, 20) label_2 = QLabel("2") grid = QGridLayout() grid.setSpacing(20) grid.addWidget(widget_0, 0, 0) grid.addWidget(label_0, 0, 1) grid.addWidget(widget_1, 1, 0) grid.addWidget(label_1, 1, 1) grid.addWidget(widget_2, 2, 0) grid.addWidget(label_2, 2, 1) self.setLayout(grid) self.setGeometry(300, 300, 250, 200)
class DeviceOrderWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) self.section = None self.deviceWidgets = list() self.setMinimumWidth(520) self.setMinimumHeight(600) self.iconAssigner = IconAssigner() self.setupLayout() self.setupScrollArea() # self.addNewDeviceWidget(device = Device("ABC", None, None)) # self.addNewDeviceWidget(device = Device("XD", None, None)) # self.addNewDeviceWidget(device = Device("1313XD", None, None)) # self.addNewDeviceWidget(device = Device(":-(", None, None)) def setupLayout(self): self.containerWidget = QWidget(self) self.widgetHeight = 0 self.containerWidget.setGeometry(QRect(0,0,451,self.widgetHeight)) self.layout = QVBoxLayout() self.containerWidget.setLayout(self.layout) def setupScrollArea(self): self.scrollArea = QScrollArea(self) self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.scrollArea.setMaximumWidth(530) self.scrollArea.setMinimumHeight(600) self.scrollArea.setWidgetResizable(False) self.scrollArea.setWidget(self.containerWidget) def setSection(self, section): self.section = section devices = section.devices devices = sorted(devices, key=lambda device: device.getShortName()) for device in devices: self.addNewDeviceWidget(device) def addNewDeviceWidget(self, device=None): newWidget = DeviceWidget(self, device = device) newWidget.position = len(self.deviceWidgets) iconPath = self.iconAssigner.getIconPath(device) newWidget.deviceIcon.setIcon(iconPath) self.deviceWidgets.append(newWidget) self.layout.addWidget(newWidget) self.widgetHeight += 70 self.containerWidget.resize(530, self.widgetHeight) self.connect(newWidget, QtCore.SIGNAL("up()"), self.upWidget) self.connect(newWidget, QtCore.SIGNAL("down()"), self.downWidget) def upWidget(self): widget = self.sender() if widget.position > 0: self.swap(widget.position, widget.position-1) def downWidget(self): widget = self.sender() if widget.position < len(self.deviceWidgets)-1: self.swap(widget.position, widget.position+1) def swap(self, first, second): firstWidget = self.deviceWidgets[first] secondWidget = self.deviceWidgets[second] firstWidget.position = second secondWidget.position = first self.layout.removeWidget(firstWidget) self.layout.removeWidget(secondWidget) self.deviceWidgets.remove(firstWidget) self.deviceWidgets.remove(secondWidget) if first > second: self.layout.insertWidget(second, firstWidget) self.layout.insertWidget(first, secondWidget) self.deviceWidgets.insert(second, firstWidget) self.deviceWidgets.insert(first, secondWidget) else: self.layout.insertWidget(first, secondWidget) self.layout.insertWidget(second, firstWidget) self.deviceWidgets.insert(first, secondWidget) self.deviceWidgets.insert(second, firstWidget) def getSortedDevices(self): devices = list() for deviceWidget in self.deviceWidgets: devices.append(deviceWidget.device) return devices
class TestGUI(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.showMaximized() self.initUI() self.vid_fd = None # Must not be initialized until after layout is set self.gstWindowId = None engine_config = 'gstreamer' engine_config = 'gstreamer-testsrc' if engine_config == 'gstreamer': self.source = gst.element_factory_make("v4l2src", "vsource") self.source.set_property("device", "/dev/video0") self.vid_fd = -1 self.setupGst() elif engine_config == 'gstreamer-testsrc': print 'WARNING: using test source' self.source = gst.element_factory_make("videotestsrc", "video-source") self.setupGst() else: raise Exception('Unknown engine %s' % (engine_config,)) self.processor = ImageProcessor() self.processor.n_frames.connect(self.n_frames.setNum) self.processor.r_val.connect(self.r_val.setNum) self.processor.g_val.connect(self.g_val.setNum) self.processor.b_val.connect(self.b_val.setNum) self.processor.r_bal.connect(self.r_bal.setNum) self.processor.b_bal.connect(self.b_bal.setNum) self.capture_sink.img_cb = self.processor.img_cb self.processor.start() if self.gstWindowId: print "Starting gstreamer pipeline" self.player.set_state(gst.STATE_PLAYING) def awb(self): # makes one step for now # note # rb is out of 1000 # actual is out of 1024 rv = int(self.r_val.text()) gv = int(self.g_val.text()) bv = int(self.b_val.text()) rb = int(self.r_bal.text()) bb = int(self.b_bal.text()) # Using hacked driver where these are set directly setg = int(self.ctrls["Gain"].text()) setr = int(self.ctrls["Red Balance"].text()) setb = int(self.ctrls["Blue Balance"].text()) # make a linear guess based on the difference # it might under or overshoot, but should converge in time limit = lambda x: max(min(int(x), 1023), 0) sf = 0.2 rb_new = limit(setr - rb * sf) bb_new = limit(setb - bb * sf) print 'Step' print ' R: %d w/ %d => %d' % (setr, rb, rb_new) print ' B: %d w/ %d => %d' % (setb, bb, bb_new) #ctrl_set(self.vid_fd, "Red Balance", rb_new) self.ctrls["Red Balance"].setText(str(rb_new)) #ctrl_set(self.vid_fd, "Blue Balance", bb_new) self.ctrls["Blue Balance"].setText(str(bb_new)) def get_video_layout(self): # Overview def low_res_layout(): layout = QVBoxLayout() layout.addWidget(QLabel("Overview")) # Raw X-windows canvas self.video_container = QWidget() # Allows for convenient keyboard control by clicking on the video self.video_container.setFocusPolicy(Qt.ClickFocus) w, h = 3264/4, 2448/4 self.video_container.setMinimumSize(w, h) self.video_container.resize(w, h) policy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.video_container.setSizePolicy(policy) layout.addWidget(self.video_container) return layout self.awb_pb = QPushButton("AWG (G, E fixed)") self.awb_pb.clicked.connect(self.awb) layout = QHBoxLayout() layout.addLayout(low_res_layout()) layout.addWidget(self.awb_pb) return layout def get_ctrl_layout(self): layout = QGridLayout() row = 0 self.ctrls = {} for name in ("Red Balance", "Gain", "Blue Balance", "Exposure"): def textChanged(name): def f(): if self.vid_fd >= 0: try: val = int(self.ctrls[name].text()) except ValueError: pass else: print '%s changed => %d' % (name, val) ctrl_set(self.vid_fd, name, val) return f layout.addWidget(QLabel(name), row, 0) ctrl = QLineEdit('0') ctrl.textChanged.connect(textChanged(name)) self.ctrls[name] = ctrl layout.addWidget(ctrl, row, 1) row += 1 return layout def get_rgb_layout(self): layout = QGridLayout() row = 0 layout.addWidget(QLabel('N'), row, 0) self.n_frames = QLabel('0') layout.addWidget(self.n_frames, row, 1) row += 1 layout.addWidget(QLabel('R_V'), row, 0) self.r_val = QLabel('0') layout.addWidget(self.r_val, row, 1) row += 1 layout.addWidget(QLabel('G_V'), row, 0) self.g_val = QLabel('0') layout.addWidget(self.g_val, row, 1) row += 1 layout.addWidget(QLabel('B_V'), row, 0) self.b_val = QLabel('0') layout.addWidget(self.b_val, row, 1) row += 1 layout.addWidget(QLabel('R_B'), row, 0) self.r_bal = QLabel('0') layout.addWidget(self.r_bal, row, 1) row += 1 layout.addWidget(QLabel('B_B'), row, 0) self.b_bal = QLabel('0') layout.addWidget(self.b_bal, row, 1) row += 1 return layout def setupGst(self): print "Setting up gstreamer pipeline" self.gstWindowId = self.video_container.winId() self.player = gst.Pipeline("player") self.tee = gst.element_factory_make("tee") sinkx = gst.element_factory_make("ximagesink", 'sinkx_overview') fcs = gst.element_factory_make('ffmpegcolorspace') caps = gst.caps_from_string('video/x-raw-yuv') self.capture_enc = gst.element_factory_make("jpegenc") self.capture_sink = gst.element_factory_make("capturesink") self.capture_sink_queue = gst.element_factory_make("queue") self.resizer = gst.element_factory_make("videoscale") # Video render stream self.player.add( self.source, self.tee) gst.element_link_many(self.source, self.tee) self.player.add(fcs, self.resizer, sinkx) gst.element_link_many(self.tee, fcs, self.resizer, sinkx) self.player.add( self.capture_sink_queue, self.capture_enc, self.capture_sink) gst.element_link_many(self.tee, self.capture_sink_queue, self.capture_enc, self.capture_sink) bus = self.player.get_bus() bus.add_signal_watch() bus.enable_sync_message_emission() bus.connect("message", self.on_message) bus.connect("sync-message::element", self.on_sync_message) def on_message(self, bus, message): t = message.type if self.vid_fd is not None and self.vid_fd < 0: self.vid_fd = self.source.get_property("device-fd") if self.vid_fd >= 0: print 'Initializing V4L controls' self.v4l_load() if t == gst.MESSAGE_EOS: self.player.set_state(gst.STATE_NULL) print "End of stream" elif t == gst.MESSAGE_ERROR: err, debug = message.parse_error() print "Error: %s" % err, debug self.player.set_state(gst.STATE_NULL) '' def v4l_load(self): vconfig = uconfig["imager"].get("v4l2", None) if not vconfig: return for configk, configv in vconfig.iteritems(): break #if type(configv) != dict or '"Gain"' not in configv: # raise Exception("Bad v4l default config (old style?)") print 'Selected config %s' % configk for k, v in configv.iteritems(): if k in self.ctrls: self.ctrls[k].setText(str(v)) else: ctrl_set(self.vid_fd, k, v) def on_sync_message(self, bus, message): if message.structure is None: return message_name = message.structure.get_name() if message_name == "prepare-xwindow-id": if message.src.get_name() == 'sinkx_overview': print 'sinkx_overview win_id' win_id = self.gstWindowId else: raise Exception('oh noes') assert win_id imagesink = message.src imagesink.set_xwindow_id(win_id) def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('pyv4l test') # top layout layout = QHBoxLayout() layout.addLayout(self.get_ctrl_layout()) layout.addLayout(self.get_rgb_layout()) layout.addLayout(self.get_video_layout()) w = QWidget() w.setLayout(layout) self.setCentralWidget(w) self.show()
def test_devel_qt_dialog_fsbrowser(self): import PyQt4 import sys from PyQt4.QtGui import QApplication, QWidget, QLineEdit, QPushButton, QImage, QPixmap, QLabel import matplotlib.pyplot as plt # Create an PyQT4 application object. a = QApplication(sys.argv) # The QWidget widget is the base class of all user interface objects in PyQt4. w = QWidget() # Set window size. w.resize(320, 240) # Set window title w.setWindowTitle("Hello World!") # Get filename using QFileDialog # filename = QFileDialog.getOpenFileName(w, 'Open File', '/') # print(filename) qfd = QFileDialog(None) lineedit = QLineEdit(qfd) # Create a button in the window button = QPushButton('Click me', qfd) # Image image = io3d.datasets.generate_face([1, 100, 100]).squeeze() cmap = np.uint8(np.round(255 * plt.get_cmap('magma')(np.arange(256)))) image /= image.max() image = np.minimum(image, 1.0) image = np.round(255 * image).astype('uint8') Y, X = image.shape self._bgra = np.zeros((Y, X, 4), dtype=np.uint8, order='C') self._bgra[..., 0] = cmap[:, 2][image] self._bgra[..., 1] = cmap[:, 1][image] self._bgra[..., 2] = cmap[:, 0][image] qimage = QImage(self._bgra.data, X, Y, QImage.Format_RGB32) pixmap = QPixmap.fromImage(qimage) label = QLabel(w) # pixmap = QPixmap(os.getcwd() + 'https://pythonspot-9329.kxcdn.com/logo.png') label.setPixmap(pixmap) w.resize(pixmap.width(), pixmap.height()) # success = img.loadFromData(image_data) # painter = QPainter(img) layout = qfd.layout() layout.addWidget(lineedit) layout.addWidget(button, 2, 5) layout.addWidget(label, 1, 5) if qfd.exec_(): print(qfd.selectedFiles()) else: print("Cancel")
class BillboardDisplay(QMainWindow): def __init__(self, parent=None, workdir=None, fontsize=42): super(BillboardDisplay, self).__init__(parent) self.workdir = workdir self.logger = logging.getLogger('display') self.logger.info('Working directory: {}'.format(self.workdir)) self.current_display = os.path.join(self.workdir, 'current.jpg') desktop = QDesktopWidget() self.display = QWidget(self) size = desktop.availableGeometry(desktop.primaryScreen()) self.display.resize(size.width(), size.height()) self.display.setWindowTitle("Billboard") self.image_label = QLabel(self.display) self.image_label.resize(size.width(), size.height()) self.text_label = QLabel(self.display) self.text_label.resize(size.width(), size.height()) self.text_label.setMargin(100) self.text_label.setStyleSheet(''' QLabel {{ font-size: {}pt; font-weight: bold; color: #eeeeee; text-align: center; }} '''.format(fontsize)) self.text_label.setWordWrap(True) self.text_label.setAlignment(Qt.AlignCenter) dse = QGraphicsDropShadowEffect() dse.setBlurRadius(0) dse.setXOffset(5) dse.setYOffset(5) dse.setColor(QColor(0, 0, 0, 255)) self.text_label.setGraphicsEffect(dse) QObject.connect(self, SIGNAL("updateimage"), self.display_image) QObject.connect(self, SIGNAL("updatecurrent"), self.take_screenshot) def update_image(self, imagepath): self.emit(SIGNAL("updateimage"), imagepath) def update_current(self): self.emit(SIGNAL("updatecurrent"), self.current_display) def display(self, imagepath, text): self.display_text(text) self.display_image(imagepath) self.showFullScreen() def display_image(self, imagepath): pix = QPixmap(imagepath) self.image_label.setPixmap( pix.scaled(self.display.size(), Qt.KeepAspectRatioByExpanding)) def display_text(self, text): self.text_label.setText('"{}"'.format(text)) def take_screenshot(self, path): pixmap = QPixmap(QPixmap.grabWidget(self.display)) pixmap.save(path) self.logger.debug('Saving {}'.format(path))
def __init__(self): QMainWindow.__init__(self) self.setWindowTitle(u"TransTES Hub" if not DEBUG else 'TransTES [DEBUG]') self.setWindowIcon(QIcon('icons/app.png')) panel = QWidget() panel.setLayout(QHBoxLayout()) self.setCentralWidget(panel) games_panel = QWidget() games_panel.setLayout(QVBoxLayout()) # self.setCentralWidget(games_panel) games_panel.resize(500, 100) is_skywind = os.path.isfile('config/Skywind.yml') is_skyblivion = os.path.isfile('config/Skyblivion.yml') self.Skyrim = GameInfoPanel('Skyrim', force_browse=True) if is_skywind: self.Morrowind = GameInfoPanel('Morrowind') games_panel.layout().addWidget(self.Morrowind) self.Skywind = ModInfoPanel('Skywind', self.Skyrim, self.Morrowind) if is_skyblivion: self.Oblivion = GameInfoPanel('Oblivion') games_panel.layout().addWidget(self.Oblivion) self.Skyblivion = ModInfoPanel('Skyblivion', self.Skyrim, self.Oblivion) games_panel.layout().addWidget(self.Skyrim) games_panel.layout().addWidget(QLabel('<hr>')) if is_skywind: games_panel.layout().addWidget(self.Skywind) if is_skyblivion: games_panel.layout().addWidget(self.Skyblivion) buttons = QWidget() buttons.setLayout(QHBoxLayout()) games_panel.layout().setAlignment(Qt.AlignTop) panel.layout().addWidget(games_panel) self.statusBar = QStatusBar(self) self.statusBar.addPermanentWidget(QWidget().setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) self.setStatusBar(self.statusBar) self.statusBar.addPermanentWidget( QLabel(u'by <b>Averrin</b> for <b>Skywind Project</b>. Version: %s ' % __version__) ) self.statusBar.setSizeGripEnabled(False) self.sideBar = SideBar(self) self.sizeHint = QSize(500, 100) self.dm = DM() # self.dm.onShow = lambda: self.setMaximumWidth(games_panel.width()) self.readme = Browser() # self.readme.onShow = lambda: self.setMaximumWidth(games_panel.width()) readme = self.createSBAction(QIcon(icons_folder + 'readme.png'), 'Readme', self.readme, toolbar=True, widgetWidth=700, titleWidget=self.readme.toolbar) readme.showWidget() self.createSBAction(QIcon(icons_folder + 'dm.png'), 'Downloads', self.dm, toolbar=True, titleWidget=self.dm.toolbar)
class CNCGUI(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.showMaximized() self.initUI() self.vid_fd = None # Must not be initialized until after layout is set self.gstWindowId = None engine_config = 'gstreamer' if engine_config == 'gstreamer': self.source = gst.element_factory_make("v4l2src", "vsource") self.source.set_property("device", "/dev/video0") self.vid_fd = -1 self.setupGst() elif engine_config == 'gstreamer-testsrc': self.source = gst.element_factory_make("videotestsrc", "video-source") self.setupGst() else: raise Exception('Unknown engine %s' % (engine_config, )) self.processor = ImageProcessor() self.processor.n_frames.connect(self.n_frames.setNum) self.processor.r_val.connect(self.r_val.setNum) self.processor.g_val.connect(self.g_val.setNum) self.processor.b_val.connect(self.b_val.setNum) self.processor.r_bal.connect(self.r_bal.setNum) self.processor.b_bal.connect(self.b_bal.setNum) self.capture_sink.img_cb = self.processor.img_cb self.processor.start() if self.gstWindowId: print "Starting gstreamer pipeline" self.player.set_state(gst.STATE_PLAYING) def awb(self): # makes one step for now # note # rb is out of 1000 # actual is out of 1024 rv = int(self.r_val.text()) gv = int(self.g_val.text()) bv = int(self.b_val.text()) rb = int(self.r_bal.text()) bb = int(self.b_bal.text()) # Using hacked driver where these are set directly setg = int(self.ctrls["Gain"].text()) setr = int(self.ctrls["Red Balance"].text()) setb = int(self.ctrls["Blue Balance"].text()) # make a linear guess based on the difference # it might under or overshoot, but should converge in time limit = lambda x: max(min(int(x), 1023), 0) sf = 0.2 rb_new = limit(setr - rb * sf) bb_new = limit(setb - bb * sf) print 'Step' print ' R: %d w/ %d => %d' % (setr, rb, rb_new) print ' B: %d w/ %d => %d' % (setb, bb, bb_new) #ctrl_set(self.vid_fd, "Red Balance", rb_new) self.ctrls["Red Balance"].setText(str(rb_new)) #ctrl_set(self.vid_fd, "Blue Balance", bb_new) self.ctrls["Blue Balance"].setText(str(bb_new)) def get_video_layout(self): # Overview def low_res_layout(): layout = QVBoxLayout() layout.addWidget(QLabel("Overview")) # Raw X-windows canvas self.video_container = QWidget() # Allows for convenient keyboard control by clicking on the video self.video_container.setFocusPolicy(Qt.ClickFocus) w, h = 3264 / 4, 2448 / 4 self.video_container.setMinimumSize(w, h) self.video_container.resize(w, h) policy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.video_container.setSizePolicy(policy) layout.addWidget(self.video_container) return layout self.awb_pb = QPushButton("AWG (G, E fixed)") self.awb_pb.clicked.connect(self.awb) layout = QHBoxLayout() layout.addLayout(low_res_layout()) layout.addWidget(self.awb_pb) return layout def get_ctrl_layout(self): layout = QGridLayout() row = 0 self.ctrls = {} for name in ("Red Balance", "Gain", "Blue Balance", "Exposure"): def textChanged(name): def f(): if self.vid_fd >= 0: try: val = int(self.ctrls[name].text()) except ValueError: pass else: print '%s changed => %d' % (name, val) ctrl_set(self.vid_fd, name, val) return f layout.addWidget(QLabel(name), row, 0) ctrl = QLineEdit('0') ctrl.textChanged.connect(textChanged(name)) self.ctrls[name] = ctrl layout.addWidget(ctrl, row, 1) row += 1 return layout def get_rgb_layout(self): layout = QGridLayout() row = 0 layout.addWidget(QLabel('N'), row, 0) self.n_frames = QLabel('0') layout.addWidget(self.n_frames, row, 1) row += 1 layout.addWidget(QLabel('R_V'), row, 0) self.r_val = QLabel('0') layout.addWidget(self.r_val, row, 1) row += 1 layout.addWidget(QLabel('G_V'), row, 0) self.g_val = QLabel('0') layout.addWidget(self.g_val, row, 1) row += 1 layout.addWidget(QLabel('B_V'), row, 0) self.b_val = QLabel('0') layout.addWidget(self.b_val, row, 1) row += 1 layout.addWidget(QLabel('R_B'), row, 0) self.r_bal = QLabel('0') layout.addWidget(self.r_bal, row, 1) row += 1 layout.addWidget(QLabel('B_B'), row, 0) self.b_bal = QLabel('0') layout.addWidget(self.b_bal, row, 1) row += 1 return layout def setupGst(self): print "Setting up gstreamer pipeline" self.gstWindowId = self.video_container.winId() self.player = gst.Pipeline("player") self.tee = gst.element_factory_make("tee") sinkx = gst.element_factory_make("ximagesink", 'sinkx_overview') fcs = gst.element_factory_make('ffmpegcolorspace') caps = gst.caps_from_string('video/x-raw-yuv') self.capture_enc = gst.element_factory_make("jpegenc") self.capture_sink = gst.element_factory_make("capturesink") self.capture_sink_queue = gst.element_factory_make("queue") self.resizer = gst.element_factory_make("videoscale") # Video render stream self.player.add(self.source, self.tee) gst.element_link_many(self.source, self.tee) self.player.add(fcs, self.resizer, sinkx) gst.element_link_many(self.tee, fcs, self.resizer, sinkx) self.player.add(self.capture_sink_queue, self.capture_enc, self.capture_sink) gst.element_link_many(self.tee, self.capture_sink_queue, self.capture_enc, self.capture_sink) bus = self.player.get_bus() bus.add_signal_watch() bus.enable_sync_message_emission() bus.connect("message", self.on_message) bus.connect("sync-message::element", self.on_sync_message) def on_message(self, bus, message): t = message.type if self.vid_fd is not None and self.vid_fd < 0: self.vid_fd = self.source.get_property("device-fd") if self.vid_fd >= 0: print 'Initializing V4L controls' for k, v in uconfig["imager"].get("v4l2", {}).iteritems(): if k in self.ctrls: self.ctrls[k].setText(str(v)) else: ctrl_set(self.vid_fd, k, v) if t == gst.MESSAGE_EOS: self.player.set_state(gst.STATE_NULL) print "End of stream" elif t == gst.MESSAGE_ERROR: err, debug = message.parse_error() print "Error: %s" % err, debug self.player.set_state(gst.STATE_NULL) '' def on_sync_message(self, bus, message): if message.structure is None: return message_name = message.structure.get_name() if message_name == "prepare-xwindow-id": if message.src.get_name() == 'sinkx_overview': print 'sinkx_overview win_id' win_id = self.gstWindowId else: raise Exception('oh noes') assert win_id imagesink = message.src imagesink.set_xwindow_id(win_id) def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('pyv4l test') # top layout layout = QHBoxLayout() layout.addLayout(self.get_ctrl_layout()) layout.addLayout(self.get_rgb_layout()) layout.addLayout(self.get_video_layout()) w = QWidget() w.setLayout(layout) self.setCentralWidget(w) self.show()
if __name__ == "__main__": app = QApplication(sys.argv) grid = QGridLayout() browser = QWebView() url_input = UrlInput(browser) requests_table = RequestsTable() manager = Manager(requests_table) page = QWebPage() page.setNetworkAccessManager(manager) browser.setPage(page) browser.load(QUrl('index.html')) js_eval = JavaScriptEvaluator(page) action_box = ActionInputBox(page) #grid.addWidget(url_input, 1, 0) #grid.addWidget(action_box, 2, 0) grid.addWidget(browser, 3, 0) #grid.addWidget(requests_table, 4, 0) #grid.addWidget(js_eval, 5, 0) main_frame = QWidget() main_frame.resize(500, 630) main_frame.setLayout(grid) main_frame.show() sys.exit(app.exec_())
class StudentForm(QDialog): def __init__(self, parent=None): super(StudentForm, self).__init__(parent) #self.setGeometry(50, 50, 820, 530) self.resize(530, 430) self.tabz = QTabWidget(self) self.tab1 = QWidget(self) self.tab2 = QWidget(self) self.tab3 = QWidget(self) self.tab4 = QWidget(self) #main form self.schno = QLabel("School Number") self.schnoData = QLineEdit() self.schnoData.setObjectName("schno") self.schnoData.setPlaceholderText("00000000") self.surname = QLabel("Surname") self.surnameData = QLineEdit() self.surnameData.setObjectName("surname") self.surnameData.setPlaceholderText("Surname") self.firstname = QLabel("Firstname") self.firstnameData = QLineEdit() self.firstnameData.setObjectName("firstname") self.firstnameData.setPlaceholderText("Firstname") self.middlename = QLabel("Middlename") self.middlenameData = QLineEdit() self.middlenameData.setObjectName("middlename") self.middlenameData.setPlaceholderText("middlename") self.soo = QLabel("State/Region of Origin") self.sooData = QLineEdit() self.sooData.setObjectName("soo") self.sooData.setPlaceholderText("Lagos") self.lga = QLabel("LGA/District") self.lgaData = QLineEdit() self.lgaData.setObjectName("lga") self.lgaData.setPlaceholderText("Ikeja") self.addr = QLabel("House Address") self.addrData = QTextEdit() self.addrData.setObjectName("addr") #self.addrData.setPlaceholderText("No. 12 Harrrison For Str., Ney York") self.dob = QLabel("Date of Birth") self.dobData = QDateEdit() self.dobData.setObjectName("dob") self.admit = QLabel("Date Admitted") self.admitData = QDateEdit() self.admitData.setObjectName("admit") self.pb = QPushButton() self.pb.setObjectName("Submit") self.pb.setText("Submit") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Cancel") hbo = QHBoxLayout() self.gender = QLabel('Gender') self.r1 = QRadioButton('Male') self.r2 = QRadioButton('Female') hbo.addWidget(self.r1) hbo.addWidget(self.r2) Formlayout = QFormLayout() Formlayout.addRow(self.schno, self.schnoData) Formlayout.addRow(self.surname, self.surnameData) Formlayout.addRow(self.firstname, self.firstnameData) Formlayout.addRow(self.middlename, self.middlenameData) Formlayout.addRow(self.gender, hbo) Formlayout.addRow(self.dob, self.dobData) Formlayout.addRow(self.admit, self.admitData) Formlayout.addRow(self.soo, self.sooData) Formlayout.addRow(self.lga, self.lgaData) Formlayout.addRow(self.addr, self.addrData) grid = QGridLayout() grid.addWidget(self.pb1, 0, 1) grid.addWidget(self.pb, 0, 0) groupBox = QGroupBox('BIODATA') groupBox.setLayout(Formlayout) vbox = QVBoxLayout() vbox.addWidget(groupBox) vbox.addStretch() vbox.addLayout(grid) #self.setLayout(vbox) self.connect(self.pb, SIGNAL("clicked()"), lambda: self.button_click(1)) self.connect(self.pb1, SIGNAL("clicked()"), self.close) self.setWindowTitle("Student Data") #self.setTabText(0, 'BioData') self.tab1.setLayout(vbox) #guardian data relations = [ 'Father', 'Mother', 'Aunt', 'Uncle', 'Grand Parent', 'Guardian', 'Others' ] #first guardian details self.g1name = QLabel("First Guardian") self.g1Data = QLineEdit() self.g1Data.setObjectName("g1name") self.g1Data.setPlaceholderText("Fullname") self.g1rel = QLabel('Relationship') self.g1relData = QComboBox() self.g1relData.addItems(relations) self.g1p1 = QLabel("Phone Number") self.g1p1Data = QLineEdit() self.g1p1Data.setObjectName("g1p1") self.g1p1Data.setPlaceholderText("08000000000") self.g1p2 = QLabel("Alt. Phone Number") self.g1p2Data = QLineEdit() self.g1p2Data.setObjectName("g1p2") self.g1p2Data.setPlaceholderText("08000000000") self.g1email = QLabel("Email") self.g1emailData = QLineEdit() self.g1emailData.setObjectName("g1email") self.g1emailData.setPlaceholderText("*****@*****.**") self.g1addr = QLabel("Address") self.g1addrData = QTextEdit() self.g1addrData.setObjectName("g1add") #self.g1addrData.setPlaceholderText("No. 12 Harrrison For Str., Ney York") #second guardian details self.g2name = QLabel("Second Guardian") self.g2Data = QLineEdit() self.g2Data.setObjectName("g2name") self.g2Data.setPlaceholderText("Mr. Surname Lastname") self.g2rel = QLabel('Relationship') self.g2relData = QComboBox() self.g2relData.addItems(relations) self.g2p1 = QLabel("Phone Number") self.g2p1Data = QLineEdit() self.g2p1Data.setObjectName("g2p1") self.g2p1Data.setPlaceholderText("08000000000") self.g2p2 = QLabel("Alt. Phone Number") self.g2p2Data = QLineEdit() self.g2p2Data.setObjectName("g2p2") self.g2p2Data.setPlaceholderText("08000000000") self.g2email = QLabel("Email") self.g2emailData = QLineEdit() self.g2emailData.setObjectName("g2email") self.g2emailData.setPlaceholderText("*****@*****.**") self.g2addr = QLabel("Address") self.g2addrData = QTextEdit() self.g2addrData.setObjectName("g2add") #self.g2addrData.setPlaceholderText("No. 12 Harrrison For Str., Ney York") self.pb = QPushButton() self.pb.setObjectName("Submit") self.pb.setText("Submit") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Cancel") hbo = QHBoxLayout() self.gender = QLabel('Gender') self.r1 = QRadioButton('Male') self.r2 = QRadioButton('Female') hbo.addWidget(self.r1) hbo.addWidget(self.r2) Formlayout1 = QFormLayout() Formlayout1.addRow(self.g1name, self.g1Data) Formlayout1.addRow(self.g1rel, self.g1relData) Formlayout1.addRow(self.g1p1, self.g1p1Data) Formlayout1.addRow(self.g1p2, self.g1p2Data) Formlayout1.addRow(self.g1email, self.g1emailData) Formlayout1.addRow(self.g1addr, self.g1addrData) Formlayout2 = QFormLayout() Formlayout2.addRow(self.g2name, self.g2Data) Formlayout2.addRow(self.g2rel, self.g2relData) Formlayout2.addRow(self.g2p1, self.g2p1Data) Formlayout2.addRow(self.g2p2, self.g2p2Data) Formlayout2.addRow(self.g2email, self.g2emailData) Formlayout2.addRow(self.g2addr, self.g2addrData) grid1 = QGridLayout() grid1.addWidget(self.pb, 0, 0) grid1.addWidget(self.pb1, 0, 1) hbox1 = QHBoxLayout() hbox1.addLayout(Formlayout1) hbox1.addLayout(Formlayout2) groupBox2 = QGroupBox('GUARDIAN') groupBox2.setLayout(hbox1) vbox1 = QVBoxLayout() vbox1.addWidget(groupBox2) vbox1.addStretch() vbox1.addLayout(grid1) #photo self.pic1 = QLabel() image1 = Image.open('img/studentz.png') self.pic1.resize(100, 150) self.pic1.setLabel(image1) self.pic2 = QLabel() image2 = Image.open('img/studentz.png') self.pic2.resize(100, 150) self.pic2.setPixmap(image2) self.pic3 = QLabel() image3 = Image.open('img/studentz.png') self.pic3.resize(100, 150) self.pic3.setPixmap(image3) self.picBtn1 = QPushButton('Select Image') self.picBtn1.clicked.connect(self.getFilez) self.picBtn2 = QPushButton('Select Image') self.picBtn2.clicked.connect(self.getFilez) self.picBtn3 = QPushButton('Select Image') self.picBtn3.clicked.connect(self.getFilez) picGrid = QGridLayout() picGrid.addWidget(self.pic1, 0, 1) picGrid.addWidget(self.pic2, 0, 2) picGrid.addWidget(self.pic3, 0, 3) picGrid.addWidget(self.picBtn1, 1, 1) picGrid.addWidget(self.picBtn2, 2, 2) picGrid.addWidget(self.picBtn3, 3, 3) self.tabz.addTab(self.tab1, 'Bio-Data') self.tabz.addTab(self.tab2, 'Contact Details') self.tabz.addTab(self.tab3, 'Passports') #self.tabz.setTabEnabled(1, False) #self.tabz.setTabEnabled(2, False) self.setWindowTitle("Add Student Data") self.show() def getFile(self, a): fname = QFileDialog.getOpenFileName(self, 'Open', 'c:\\', "Image File (*.jpg *.png)") if a == 1: self.pic1.setPixmap(QPixmap(fname)) elif a == 2: self.pic2.setPixmap(QPixmap(fname)) elif a == 2: self.pic3.setPixmap(QPixmap(fname)) def getFilez(self): fname = QFileDialog.getOpenFileName(self, 'Open', 'c:\\', "Image File (*.jpg *.png)") self.pic1.setPixmap(QPixmap(fname)) def contFill(self, a): sid = a data = self.pullStudents(a) self.resize(430, 530) #self.tabz = QTabWidget(self) self.tabz.clear() self.tab1 = QWidget(self) self.tab2 = QWidget(self) self.tab3 = QWidget(self) self.schno = QLabel("School Number") self.schnoData = QLineEdit() self.schnoData.setObjectName("schno") if (data['schno'] and len(data['schno']) > 1): self.schnoData.setText(data['schno']) else: self.schnoData.setPlaceholderText("00000000") self.surname = QLabel("Surname") self.surnameData = QLineEdit() self.surnameData.setObjectName("surname") if (data['surname'] and len(data['surname']) > 1): tx = data['surname'] self.surnameData.setText(tx.title()) else: self.surnameData.setPlaceholderText("Surname") self.firstname = QLabel("Firstname") self.firstnameData = QLineEdit() self.firstnameData.setObjectName("firstname") if (data['firstname'] and len(data['firstname'])): tx = data['firstname'] self.firstnameData.setText(tx.title()) else: self.firstnameData.setPlaceholderText("Firstname") self.middlename = QLabel("Middlename") self.middlenameData = QLineEdit() self.middlenameData.setObjectName("middlename") if (data['othername'] and len(data['othername']) > 1): tx = data['othername'] self.middlenameData.setText(tx.title()) else: self.middlenameData.setPlaceholderText("othername") self.soo = QLabel("State/Region of Origin") self.sooData = QLineEdit() self.sooData.setObjectName("soo") if (data['soo'] and len(data['soo']) > 1): tx = data['soo'] self.sooData.setText(tx.title()) else: self.sooData.setPlaceholderText("Lagos") self.lga = QLabel("LGA/District") self.lgaData = QLineEdit() self.lgaData.setObjectName("lga") if (data['lga'] and len(data['lga'])): tx = data['lga'] self.lgaData.setText(tx.title()) else: self.lgaData.setPlaceholderText("Ikeja") self.addr = QLabel("House Address") self.addrData = QTextEdit() self.addrData.setObjectName("addr") if (data['addr'] and len(data['addr'])): tx = data['addr'] self.addrData.setText(tx) else: pass self.dob = QLabel("Date of Birth") self.dobData = QDateEdit() self.dobData.setObjectName("dob") tx = QDate.fromString(data['dob'], 'yyyy-MM-dd') self.dobData.setDate(QDate(tx.year(), tx.month(), tx.day())) self.admit = QLabel("Date Admitted") self.admitData = QDateEdit() self.admitData.setObjectName("admit") tx = QDate.fromString(data['admit'], 'yyyy-MM-dd') self.admitData.setDate(QDate(tx.year(), tx.month(), tx.day())) self.pb4 = QPushButton() self.pb4.setObjectName("Submit") self.pb4.setText("Submit") self.pb5 = QPushButton() self.pb5.setObjectName("Cancel") self.pb5.setText("Cancel") hbo = QHBoxLayout() self.gender = QLabel('Gender') self.r1 = QRadioButton('Male') self.r2 = QRadioButton('Female') if (data['gender'] == 'Male'): self.r1.setChecked(True) elif (data['gender'] == 'Female'): self.r2.setChecked(True) hbo.addWidget(self.r1) hbo.addWidget(self.r2) Formlayout = QFormLayout() Formlayout.addRow(self.schno, self.schnoData) Formlayout.addRow(self.surname, self.surnameData) Formlayout.addRow(self.firstname, self.firstnameData) Formlayout.addRow(self.middlename, self.middlenameData) Formlayout.addRow(self.gender, hbo) Formlayout.addRow(self.dob, self.dobData) Formlayout.addRow(self.admit, self.admitData) Formlayout.addRow(self.soo, self.sooData) Formlayout.addRow(self.lga, self.lgaData) Formlayout.addRow(self.addr, self.addrData) grid = QGridLayout() grid.addWidget(self.pb1, 0, 1) grid.addWidget(self.pb, 0, 0) groupBox = QGroupBox('BIODATA') groupBox.setLayout(Formlayout) vbox = QVBoxLayout() vbox.addWidget(groupBox) vbox.addStretch() vbox.addLayout(grid) #self.setLayout(vbox) self.connect(self.pb4, SIGNAL("clicked()"), lambda: self.button1_click(sid)) self.connect(self.pb5, SIGNAL("clicked()"), self.close) self.tab1.setLayout(vbox) relations = [ 'Father', 'Mother', 'Aunt', 'Uncle', 'Grand Parent', 'Guardian', 'Others' ] #first guardian details self.g1name = QLabel("First Guardian") self.g1Data = QLineEdit() self.g1Data.setObjectName("g1name") if (data['g1'] and len(data['g1']) > 1): tx = data['g1'] self.g1Data.setText(tx.title()) else: self.g1Data.setPlaceholderText("Mr. Surname Lastname") self.g1rel = QLabel('Relationship') self.g1relData = QComboBox() self.g1relData.addItems(relations) if data['g1rel'] and len(data['g1rel']) > 0: index1 = self.g1relData.findText(data['g1rel'], Qt.QtMatchFixedString) if index1 >= 0: self.g1relData.setCurrentIndex(index1) self.g1p1 = QLabel("Phone Number") self.g1p1Data = QLineEdit() self.g1p1Data.setObjectName("g1p1") if (data['g1p1'] and len(data['g1p1']) > 1): tx = data['g1p1'] self.g1p1Data.setText(tx.title()) else: self.g1p1Data.setPlaceholderText("08000000000") self.g1p2 = QLabel("Alt. Phone Number") self.g1p2Data = QLineEdit() self.g1p2Data.setObjectName("g1p2") if (data['g1p2'] and len(data['g1p2']) > 1): tx = data['g1p2'] self.g1p2Data.setText(tx.title()) else: self.g1p2Data.setPlaceholderText("08000000000") self.g1email = QLabel("Email") self.g1emailData = QLineEdit() self.g1emailData.setObjectName("g1email") if (data['g1email'] and len(data['g1email']) > 1): tx = data['g1email'] self.g1Data.setText(tx.title()) else: self.g1Data.setPlaceholderText("*****@*****.**") self.g1addr = QLabel("Address") self.g1addrData = QTextEdit() self.g1addrData.setObjectName("g1add") if (data['g1addr'] and len(data['g1addr']) > 1): tx = data['g1addr'] self.g1Data.setText(tx.title()) else: pass #second guardian details self.g2name = QLabel("Second Guardian") self.g2Data = QLineEdit() self.g2Data.setObjectName("g2name") if (data['g2'] and len(data['g2']) > 1): tx = data['g2'] self.g2Data.setText(tx.title()) else: self.g2Data.setPlaceholderText("Title. Surname Lastname") self.g2rel = QLabel('Relationship') self.g2relData = QComboBox() self.g2relData.addItems(relations) if data['g2rel'] and len(data['g2rel']) > 0: index2 = self.g2relData.findText(data['g2rel'], Qt.QtMatchFixedString) if index2 >= 0: self.g2relData.setCurrentIndex(index2) self.g2p1 = QLabel("Phone Number") self.g2p1Data = QLineEdit() self.g2p1Data.setObjectName("g2p1") if (data['g2p1'] and len(data['g2p1']) > 1): tx = data['g2p1'] self.g2p1Data.setText(tx.title()) else: self.g2p1Data.setPlaceholderText("08000000000") self.g2p2 = QLabel("Alt. Phone Number") self.g2p2Data = QLineEdit() self.g2p2Data.setObjectName("g2p2") if (data['g2p2'] and len(data['g2p2']) > 1): tx = data['g2p2'] self.g2p2Data.setText(tx.title()) else: self.g2p2Data.setPlaceholderText("0800000000") self.g2email = QLabel("Email") self.g2emailData = QLineEdit() self.g2emailData.setObjectName("g2email") if (data['g2email'] and len(data['g2email']) > 1): tx = data['g2email'] self.g2emailData.setText(tx.title()) else: self.g2emailData.setPlaceholderText("*****@*****.**") self.g2addr = QLabel("Address") self.g2addrData = QTextEdit() self.g2addrData.setObjectName("g2add") if (data['g2addr'] and len(data['g2addr']) > 1): tx = data['g2addr'] self.g2Data.setText(tx.title()) else: pass self.pb = QPushButton() self.pb.setObjectName("Submit") self.pb.setText("Submit") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Cancel") hbo = QHBoxLayout() self.gender = QLabel('Gender') self.r1 = QRadioButton('Male') self.r2 = QRadioButton('Female') hbo.addWidget(self.r1) hbo.addWidget(self.r2) Formlayout1 = QFormLayout() Formlayout1.addRow(self.g1name, self.g1Data) Formlayout1.addRow(self.g1rel, self.g1relData) Formlayout1.addRow(self.g1p1, self.g1p1Data) Formlayout1.addRow(self.g1p2, self.g1p2Data) Formlayout1.addRow(self.g1email, self.g1emailData) Formlayout1.addRow(self.g1addr, self.g1addrData) Formlayout2 = QFormLayout() Formlayout2.addRow(self.g2name, self.g2Data) Formlayout2.addRow(self.g2rel, self.g2relData) Formlayout2.addRow(self.g2p1, self.g2p1Data) Formlayout2.addRow(self.g2p2, self.g2p2Data) Formlayout2.addRow(self.g2email, self.g2emailData) Formlayout2.addRow(self.g2addr, self.g2addrData) grid1 = QGridLayout() grid1.addWidget(self.pb, 0, 0) grid1.addWidget(self.pb1, 0, 1) hbox1 = QHBoxLayout() hbox1.addLayout(Formlayout1) hbox1.addStretch() hbox1.addLayout(Formlayout2) groupBox2 = QGroupBox('GUARDIAN') groupBox2.setLayout(hbox1) vbox1 = QVBoxLayout() vbox1.addWidget(groupBox2) vbox1.addStretch() vbox1.addLayout(grid1) self.tab2.setLayout(vbox1) #photo picstyle = QSize(120, 180) picstyle1 = Qt.KeepAspectRatio self.pic1Lbl = QLabel('YEAR 1 & 2') self.pic2Lbl = QLabel('YEAR 3 & 4') self.pic3Lbl = QLabel('YEAR 5 & 6') self.pic1 = QLabel() pixmap1 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic1.setPixmap(pixmap1) self.pic2 = QLabel() pixmap2 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic2.setPixmap(pixmap2) self.pic3 = QLabel() pixmap3 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic3.setPixmap(pixmap3) self.picBtn1 = QPushButton('Select Image') self.picBtn1.clicked.connect(self.getFilez) self.picBtn2 = QPushButton('Select Image') self.picBtn2.clicked.connect(self.getFilez) self.picBtn3 = QPushButton('Select Image') self.picBtn3.clicked.connect(self.getFilez) self.pic1Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.pic2Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.pic3Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn1.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn2.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn3.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) h1pic = QVBoxLayout() h2pic = QVBoxLayout() h3pic = QVBoxLayout() vpic = QHBoxLayout() h1pic.addWidget(self.pic1Lbl) h1pic.addStretch(0) h1pic.addWidget(self.pic1) h1pic.addStretch(0) h1pic.addWidget(self.picBtn1) h1pic.setContentsMargins(0, 0, 0, 0) h1pic.setSpacing(0) h1pic.setMargin(0) h2pic.addWidget(self.pic2Lbl) h2pic.addStretch(0) h2pic.addWidget(self.pic2) h2pic.addStretch(0) h2pic.addWidget(self.picBtn2) h2pic.setContentsMargins(0, 0, 0, 0) h2pic.setSpacing(0) h2pic.setMargin(0) h3pic.addWidget(self.pic3Lbl) h3pic.addStretch(0) h3pic.addWidget(self.pic3) h3pic.addStretch(0) h3pic.addWidget(self.picBtn3) h3pic.setContentsMargins(0, 0, 0, 0) h3pic.setSpacing(0) h3pic.setMargin(0) vpic.addLayout(h1pic) vpic.addStretch(0) vpic.addLayout(h2pic) vpic.addStretch(0) vpic.addLayout(h3pic) vpic.setSpacing(0) vpic.setMargin(0) vpic.setContentsMargins(0, 0, 0, 0) self.tab3.setLayout(vpic) self.tab3.resize(100, 100) #self.tab3.setStyleSheet("background-color: red; margin:5px; border:1px solid red;") self.tabz.addTab(self.tab1, 'Bio-Data') self.tabz.addTab(self.tab2, 'Contact Details') self.tabz.addTab(self.tab3, 'Passports') self.setWindowTitle("Add Student Data") self.show() def eContFill(self, a): sid = 23 data = self.pullStudents(a) self.resize(430, 530) #self.tabz = QTabWidget(self) self.tabz.clear() self.tab1 = QWidget(self) self.tab2 = QWidget(self) self.tab3 = QWidget(self) self.schno = QLabel("School Number") self.schnoData = QLineEdit() self.schnoData.setObjectName("schno") if (data['schno'] and len(data['schno']) > 1): self.schnoData.setText(data['schno']) else: self.schnoData.setPlaceholderText("00000000") self.surname = QLabel("Surname") self.surnameData = QLineEdit() self.surnameData.setObjectName("surname") if (data['surname'] and len(data['surname']) > 1): tx = data['surname'] self.surnameData.setText(tx.title()) else: self.surnameData.setPlaceholderText("Surname") self.firstname = QLabel("Firstname") self.firstnameData = QLineEdit() self.firstnameData.setObjectName("firstname") if (data['firstname'] and len(data['firstname'])): tx = data['firstname'] self.firstnameData.setText(tx.title()) else: self.firstnameData.setPlaceholderText("Firstname") self.middlename = QLabel("Middlename") self.middlenameData = QLineEdit() self.middlenameData.setObjectName("middlename") if (data['othername'] and len(data['othername']) > 1): tx = data['othername'] self.middlenameData.setText(tx.title()) else: self.middlenameData.setPlaceholderText("othername") self.soo = QLabel("State/Region of Origin") self.sooData = QLineEdit() self.sooData.setObjectName("soo") if (data['soo'] and len(data['soo']) > 1): tx = data['soo'] self.sooData.setText(tx.title()) else: self.sooData.setPlaceholderText("Lagos") self.lga = QLabel("LGA/District") self.lgaData = QLineEdit() self.lgaData.setObjectName("lga") if (data['lga'] and len(data['lga'])): tx = data['lga'] self.lgaData.setText(tx.title()) else: self.lgaData.setPlaceholderText("Ikeja") self.addr = QLabel("House Address") self.addrData = QTextEdit() self.addrData.setObjectName("addr") if (data['addr'] and len(data['addr'])): tx = data['addr'] self.addrData.setText(tx) else: pass self.dob = QLabel("Date of Birth") self.dobData = QDateEdit() self.dobData.setObjectName("dob") tx = QDate.fromString(data['dob'], 'yyyy-MM-dd') self.dobData.setDate(QDate(tx.year(), tx.month(), tx.day())) self.admit = QLabel("Date Admitted") self.admitData = QDateEdit() self.admitData.setObjectName("admit") tx = QDate.fromString(data['admit'], 'yyyy-MM-dd') self.admitData.setDate(QDate(tx.year(), tx.month(), tx.day())) self.pb4 = QPushButton() self.pb4.setObjectName("Submit") self.pb4.setText("Submit") self.pb5 = QPushButton() self.pb5.setObjectName("Cancel") self.pb5.setText("Cancel") hbo = QHBoxLayout() self.gender = QLabel('Gender') self.r1 = QRadioButton('Male') self.r2 = QRadioButton('Female') if (data['gender'] == 'Male'): self.r1.setChecked(True) elif (data['gender'] == 'Female'): self.r2.setChecked(True) hbo.addWidget(self.r1) hbo.addWidget(self.r2) Formlayout = QFormLayout() Formlayout.addRow(self.schno, self.schnoData) Formlayout.addRow(self.surname, self.surnameData) Formlayout.addRow(self.firstname, self.firstnameData) Formlayout.addRow(self.middlename, self.middlenameData) Formlayout.addRow(self.gender, hbo) Formlayout.addRow(self.dob, self.dobData) Formlayout.addRow(self.admit, self.admitData) Formlayout.addRow(self.soo, self.sooData) Formlayout.addRow(self.lga, self.lgaData) Formlayout.addRow(self.addr, self.addrData) grid = QGridLayout() grid.addWidget(self.pb1, 0, 1) grid.addWidget(self.pb, 0, 0) groupBox = QGroupBox('BIODATA') groupBox.setLayout(Formlayout) vbox = QVBoxLayout() vbox.addWidget(groupBox) vbox.addStretch() vbox.addLayout(grid) #self.setLayout(vbox) self.connect(self.pb4, SIGNAL("clicked()"), lambda: self.button1_click(sid)) self.connect(self.pb5, SIGNAL("clicked()"), self.close) self.tab1.setLayout(vbox) relations = [ 'Father', 'Mother', 'Aunt', 'Uncle', 'Grand Parent', 'Guardian', 'Others' ] #first guardian details self.g1name = QLabel("First Guardian") self.g1Data = QLineEdit() self.g1Data.setObjectName("g1name") if (data['g1'] and len(data['g1']) > 1): tx = data['g1'] self.g1Data.setText(tx.title()) else: self.g1Data.setPlaceholderText("Mr. Surname Lastname") self.g1rel = QLabel('Relationship') self.g1relData = QComboBox() self.g1relData.addItems(relations) if data['g1rel'] and len(data['g1rel']) > 0: index1 = self.g1relData.findText(data['g1rel'], Qt.QtMatchFixedString) if index1 >= 0: self.g1relData.setCurrentIndex(index1) self.g1p1 = QLabel("Phone Number") self.g1p1Data = QLineEdit() self.g1p1Data.setObjectName("g1p1") if (data['g1p1'] and len(data['g1p1']) > 1): tx = data['g1p1'] self.g1p1Data.setText(tx.title()) else: self.g1p1Data.setPlaceholderText("08000000000") self.g1p2 = QLabel("Alt. Phone Number") self.g1p2Data = QLineEdit() self.g1p2Data.setObjectName("g1p2") if (data['g1p2'] and len(data['g1p2']) > 1): tx = data['g1p2'] self.g1p2Data.setText(tx.title()) else: self.g1p2Data.setPlaceholderText("08000000000") self.g1email = QLabel("Email") self.g1emailData = QLineEdit() self.g1emailData.setObjectName("g1email") if (data['g1email'] and len(data['g1email']) > 1): tx = data['g1email'] self.g1Data.setText(tx.title()) else: self.g1Data.setPlaceholderText("*****@*****.**") self.g1addr = QLabel("Address") self.g1addrData = QTextEdit() self.g1addrData.setObjectName("g1add") if (data['g1addr'] and len(data['g1addr']) > 1): tx = data['g1addr'] self.g1Data.setText(tx.title()) else: pass #second guardian details self.g2name = QLabel("Second Guardian") self.g2Data = QLineEdit() self.g2Data.setObjectName("g2name") if (data['g2'] and len(data['g2']) > 1): tx = data['g2'] self.g2Data.setText(tx.title()) else: self.g2Data.setPlaceholderText("Title. Surname Lastname") self.g2rel = QLabel('Relationship') self.g2relData = QComboBox() self.g2relData.addItems(relations) if data['g2rel'] and len(data['g2rel']) > 0: index2 = self.g2relData.findText(data['g2rel'], Qt.QtMatchFixedString) if index2 >= 0: self.g2relData.setCurrentIndex(index2) self.g2p1 = QLabel("Phone Number") self.g2p1Data = QLineEdit() self.g2p1Data.setObjectName("g2p1") if (data['g2p1'] and len(data['g2p1']) > 1): tx = data['g2p1'] self.g2p1Data.setText(tx.title()) else: self.g2p1Data.setPlaceholderText("08000000000") self.g2p2 = QLabel("Alt. Phone Number") self.g2p2Data = QLineEdit() self.g2p2Data.setObjectName("g2p2") if (data['g2p2'] and len(data['g2p2']) > 1): tx = data['g2p2'] self.g2p2Data.setText(tx.title()) else: self.g2p2Data.setPlaceholderText("0800000000") self.g2email = QLabel("Email") self.g2emailData = QLineEdit() self.g2emailData.setObjectName("g2email") if (data['g2email'] and len(data['g2email']) > 1): tx = data['g2email'] self.g2emailData.setText(tx.title()) else: self.g2emailData.setPlaceholderText("*****@*****.**") self.g2addr = QLabel("Address") self.g2addrData = QTextEdit() self.g2addrData.setObjectName("g2add") if (data['g2addr'] and len(data['g2addr']) > 1): tx = data['g2addr'] self.g2Data.setText(tx.title()) else: pass self.pb = QPushButton() self.pb.setObjectName("Submit") self.pb.setText("Submit") self.pb1 = QPushButton() self.pb1.setObjectName("Cancel") self.pb1.setText("Cancel") hbo = QHBoxLayout() self.gender = QLabel('Gender') self.r1 = QRadioButton('Male') self.r2 = QRadioButton('Female') hbo.addWidget(self.r1) hbo.addWidget(self.r2) Formlayout1 = QFormLayout() Formlayout1.addRow(self.g1name, self.g1Data) Formlayout1.addRow(self.g1rel, self.g1relData) Formlayout1.addRow(self.g1p1, self.g1p1Data) Formlayout1.addRow(self.g1p2, self.g1p2Data) Formlayout1.addRow(self.g1email, self.g1emailData) Formlayout1.addRow(self.g1addr, self.g1addrData) Formlayout2 = QFormLayout() Formlayout2.addRow(self.g2name, self.g2Data) Formlayout2.addRow(self.g2rel, self.g2relData) Formlayout2.addRow(self.g2p1, self.g2p1Data) Formlayout2.addRow(self.g2p2, self.g2p2Data) Formlayout2.addRow(self.g2email, self.g2emailData) Formlayout2.addRow(self.g2addr, self.g2addrData) grid1 = QGridLayout() grid1.addWidget(self.pb, 0, 0) grid1.addWidget(self.pb1, 0, 1) hbox1 = QHBoxLayout() hbox1.addLayout(Formlayout1) hbox1.addStretch() hbox1.addLayout(Formlayout2) groupBox2 = QGroupBox('GUARDIAN') groupBox2.setLayout(hbox1) vbox1 = QVBoxLayout() vbox1.addWidget(groupBox2) vbox1.addStretch() vbox1.addLayout(grid1) self.tab2.setLayout(vbox1) #photo picstyle = QSize(120, 180) picstyle1 = Qt.KeepAspectRatio self.pic1Lbl = QLabel('YEAR 1 & 2') self.pic2Lbl = QLabel('YEAR 3 & 4') self.pic3Lbl = QLabel('YEAR 5 & 6') self.pic1 = QLabel() pixmap1 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic1.setPixmap(pixmap1) self.pic2 = QLabel() pixmap2 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic2.setPixmap(pixmap2) self.pic3 = QLabel() pixmap3 = QPixmap('img/studentz.png').scaled(picstyle, picstyle1) self.pic3.setPixmap(pixmap3) self.picBtn1 = QPushButton('Select Image') self.picBtn1.clicked.connect(self.getFilez) self.picBtn2 = QPushButton('Select Image') self.picBtn2.clicked.connect(self.getFilez) self.picBtn3 = QPushButton('Select Image') self.picBtn3.clicked.connect(self.getFilez) self.pic1Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.pic2Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.pic3Lbl.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn1.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn2.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) self.picBtn3.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum) h1pic = QVBoxLayout() h2pic = QVBoxLayout() h3pic = QVBoxLayout() vpic = QHBoxLayout() h1pic.addWidget(self.pic1Lbl) h1pic.addStretch(0) h1pic.addWidget(self.pic1) h1pic.addStretch(0) h1pic.addWidget(self.picBtn1) h1pic.setContentsMargins(0, 0, 0, 0) h1pic.setSpacing(0) h1pic.setMargin(0) h2pic.addWidget(self.pic2Lbl) h2pic.addStretch(0) h2pic.addWidget(self.pic2) h2pic.addStretch(0) h2pic.addWidget(self.picBtn2) h2pic.setContentsMargins(0, 0, 0, 0) h2pic.setSpacing(0) h2pic.setMargin(0) h3pic.addWidget(self.pic3Lbl) h3pic.addStretch(0) h3pic.addWidget(self.pic3) h3pic.addStretch(0) h3pic.addWidget(self.picBtn3) h3pic.setContentsMargins(0, 0, 0, 0) h3pic.setSpacing(0) h3pic.setMargin(0) vpic.addLayout(h1pic) vpic.addStretch(0) vpic.addLayout(h2pic) vpic.addStretch(0) vpic.addLayout(h3pic) vpic.setSpacing(0) vpic.setMargin(0) vpic.setContentsMargins(0, 0, 0, 0) self.tab3.setLayout(vpic) self.tab3.resize(100, 100) self.tab3.setStyleSheet( "background-color: red; margin:5px; border:1px solid red;") self.tabz.addTab(self.tab1, 'Bio-Data') self.tabz.addTab(self.tab2, 'Contact Details') self.tabz.addTab(self.tab3, 'Passports') self.setWindowTitle("Add Student Data") self.show() def button_click(self, a): # shost is a QString object arr = {} arr['schno'] = self.schnoData.text() arr['surname'] = self.surnameData.text() arr['firstname'] = self.firstnameData.text() arr['othername'] = self.middlenameData.text() arr['soo'] = self.sooData.text() arr['lga'] = self.lgaData.text() arr['addr'] = self.addrData.toPlainText() dob = self.dobData.date() arr['dob'] = dob.toPyDate() admit = self.admitData.date() arr['admit'] = admit.toPyDate() arr['active'] = 0 if self.r1.isChecked(): arr['gender'] = 0 else: arr['gender'] = 1 self.a = a g = Db() if ((arr['surname']) and (arr['firstname']) and (arr['schno'])): h = g.insert('students', arr) self.contFill(h) def button1_click(self, a): # shost is a QString object arr = {} arr['schno'] = self.schnoData.text() arr['surname'] = self.surnameData.text() arr['firstname'] = self.firstnameData.text() arr['othername'] = self.middlenameData.text() arr['soo'] = self.sooData.text() arr['lga'] = self.lgaData.text() arr['addr'] = self.addrData.toPlainText() dob = self.dobData.date() arr['dob'] = dob.toPyDate() admit = self.admitData.date() arr['admit'] = admit.toPyDate() arr['active'] = 0 arr['g1'] = self.g1Data.text() arr['g1rel'] = self.g1relData.itemData(self.g1relData.currentIndex()) arr['g1p1'] = self.g1p1Data.text() arr['g1p2'] = self.g1p2Data.text() arr['g1email'] = self.g1emailData.text() arr['g1addr'] = self.g1addData.text() arr['g2'] = self.g2Data.text() arr['g2rel'] = self.g2relData.itemData(self.g2relData.currentIndex()) arr['g2p1'] = self.g2p1Data.text() arr['g2p2'] = self.g2p2Data.text() arr['g2email'] = self.g2emailData.text() arr['g2addr'] = self.g2addData.text() self.a = a print(arr) g = Db() if ((arr['surname']) and (arr['firstname']) and (arr['schno'])): r = g.update('students', arr, {'id': self.a}) print(r) self.close() def button_click1(self, a): # shost is a QString object s1 = self.le.text() s2 = self.le2.text() self.a = a g = Db() if (len(s1) > 0): y = {'name': s1, 'subID': self.a, 'abbrv': s2} j = g.insert('datas', y) return j def pullClass(self, a): self.a = a cn = Db() students = cn.select('datas', '', '', {'subID': self.a}) arr = {} for j in students: arr[j[0]] = j[2] return arr def pullStudents(self, a): self.a = a cn = Db() students = cn.selectn('students', '', 1, {'id': self.a}) return students def lunchUnitForm(self, a): self.a = a self.form = UnitForm(self.a) self.form.show()
def __init__(self, iface, styleManager, max_value, min_value, legend_name, parent=None): super(HeatRenderLegend, self).__init__() self.iface = iface self.styleManager = styleManager # 当前图层的样式管理器 if max_value: self.max_value = max_value else: self.max_value = 0.0 if min_value: self.min_value = min_value else: self.min_value = 0.0 if legend_name: self.legend_name = legend_name else: self.legend_name = u"渲染图例" self.parent = parent delta = self.max_value - self.min_value self.setWindowTitle(self.legend_name) self.setWindowFlags(Qt.WindowStaysOnTopHint) self.setWindowFlags(Qt.WindowMinimizeButtonHint) widget_100 = QWidget() widget_100.setStyleSheet('QWidget {background-color: red}') widget_100.resize(20, 20) label_100 = QLabel("%.4f" % (float(self.max_value))) widget_75 = QWidget() widget_75.setStyleSheet('QWidget {background-color: #ffff00}') widget_75.resize(20, 20) label_75 = QLabel("%.4f" % (float(delta * 0.75) + self.min_value)) widget_50 = QWidget() widget_50.setStyleSheet('QWidget {background-color: #00ff00}') widget_50.resize(20, 20) label_50 = QLabel("%.4f" % (float(delta * 0.50 + self.min_value))) widget_25 = QWidget() widget_25.setStyleSheet('QWidget {background-color: #00ffff}') widget_25.resize(20, 20) label_25 = QLabel("%.4f" % float((delta * 0.25 + self.min_value))) grid = QGridLayout() grid.setSpacing(20) grid.addWidget(widget_100, 0, 0) grid.addWidget(label_100, 0, 1) grid.addWidget(widget_75, 1, 0) grid.addWidget(label_75, 1, 1) grid.addWidget(widget_50, 2, 0) grid.addWidget(label_50, 2, 1) grid.addWidget(widget_25, 3, 0) grid.addWidget(label_25, 3, 1) self.setLayout(grid) self.setGeometry(300, 300, 250, 200)
class SectionsContainerWidget(QWidget): def __init__(self, parent=None, isLinacSection=True, sectionClass=None): QWidget.__init__(self, parent) self.isLinacSection = isLinacSection self.sectionClass = sectionClass self.setParent(parent) self.sectionWidgets = list() self.setMinimumWidth(460) self.setMinimumHeight(600) self.sumSize = 0 self.setupLayout() self.setupScrollArea() self.addSectionButton = QPushButton(self.containerWidget) self.addSectionButton.setText("Add new section") self.layout.addWidget(self.addSectionButton) self.connect(self.addSectionButton, QtCore.SIGNAL("clicked()"), self.addNewSection) def setupLayout(self): self.containerWidget = QWidget(self) self.widgetHeight = 120 self.containerWidget.setGeometry(QRect(0, 0, 460, self.widgetHeight)) self.layout = QVBoxLayout() self.containerWidget.setLayout(self.layout) def setupScrollArea(self): self.scrollArea = QScrollArea(self) self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.scrollArea.setHorizontalScrollBarPolicy( QtCore.Qt.ScrollBarAlwaysOff) self.scrollArea.setMaximumWidth(460) self.scrollArea.setMinimumHeight(600) self.scrollArea.setWidgetResizable(False) self.scrollArea.setWidget(self.containerWidget) def addNewSection(self): newSection = self.sectionClass(self.containerWidget) widgetPosition = len(self.sectionWidgets) self.layout.insertWidget(widgetPosition, newSection) self.sectionWidgets.append(newSection) self.setDefaultValues(newSection) self.widgetHeight += 80 self.containerWidget.resize(460, self.widgetHeight) self.connect(newSection, QtCore.SIGNAL("remove()"), self.removeSection) self.connect(newSection, QtCore.SIGNAL("sizeValueChanged(QWidget*)"), self.updateSumOfSize) def setDefaultValues(self, section): pass # section.colorLabel.setColor(SettingsCloud.getParameter("subsectionColor")) # self.setSectionSize(section) def setSectionSize(self, section): pass # def setSubsectionSize(self, section): # if self.isLinacSection: # defaultSize = SettingsCloud.getParameter("linacSubsectionSize") # else: # defaultSize = SettingsCloud.getParameter("ringSubsectionSize") # section.sizeEdit.setValue(defaultSize) # self.updateSumOfSize(section) def updateSumOfSize(self, sectionWidget): self.sumSize = 0 for section in self.sectionWidgets: self.sumSize += section.getSize() if self.sumSize > 100: diff = self.sumSize - 100.0 actualSize = sectionWidget.getSize() sectionWidget.setSize(actualSize - diff) def removeSection(self): messageBox = QMessageBox(self) userReply = messageBox.question(self, "Are you sure?", "Do you want to remove this section?", QMessageBox.Yes | QMessageBox.No) if userReply == QMessageBox.Yes: sender = self.sender() self.layout.removeWidget(sender) self.sectionWidgets.remove(sender) sender.setVisible(False) self.widgetHeight -= 80 self.containerWidget.resize(460, self.widgetHeight) def getNumberOfSections(self): return len(self.sectionWidgets) def getSections(self): return self.sectionWidgets def getSectionsData(self): subsectionsData = list() for subsection in self.sectionWidgets: subsectionsData.append(subsection.getSectionData()) return subsectionsData
class TestGUI(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.showMaximized() self.initUI() self.vid_fd = None # Must not be initialized until after layout is set self.gstWindowId = None #self.config_engine('gstreamer-testsrc') self.config_engine('gstreamer') self.processor = ImageProcessor() self.processor.n_frames.connect(self.n_frames.setNum) self.processor.processed.connect(self.refresh_image) self.capture_sink.img_cb = self.processor.img_cb self.processor.start() if self.gstWindowId: print "Starting gstreamer pipeline" self.player.set_state(gst.STATE_PLAYING) def config_engine(self, engine_config): if engine_config == 'gstreamer': self.source = gst.element_factory_make("v4l2src", "vsource") self.source.set_property("device", "/dev/video0") self.vid_fd = -1 self.setupGst() elif engine_config == 'gstreamer-testsrc': print 'WARNING: using test source' self.source = gst.element_factory_make("videotestsrc", "video-source") self.setupGst() else: raise Exception('Unknown engine %s' % (engine_config,)) def get_misc_layout(self): layout = QGridLayout() row = 0 layout.addWidget(QLabel('N'), row, 0) self.n_frames = QLabel('0') layout.addWidget(self.n_frames, row, 1) row += 1 return layout def refresh_image(self): self.pic.setPixmap(QPixmap("focus_eval.png")) self.pic.show() def get_left_layout(self): layout = QVBoxLayout() layout.addLayout(self.get_misc_layout()) self.pic = QLabel(self) layout.addWidget(self.pic) return layout def get_video_layout(self): # Overview def low_res_layout(): layout = QVBoxLayout() layout.addWidget(QLabel("Overview")) # Raw X-windows canvas self.video_container = QWidget() # Allows for convenient keyboard control by clicking on the video self.video_container.setFocusPolicy(Qt.ClickFocus) w, h = 3264/4, 2448/4 self.video_container.setMinimumSize(w, h) self.video_container.resize(w, h) policy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.video_container.setSizePolicy(policy) layout.addWidget(self.video_container) return layout layout = QHBoxLayout() layout.addLayout(low_res_layout()) return layout def setupGst(self): print "Setting up gstreamer pipeline" self.gstWindowId = self.video_container.winId() self.player = gst.Pipeline("player") self.tee = gst.element_factory_make("tee") sinkx = gst.element_factory_make("ximagesink", 'sinkx_overview') fcs = gst.element_factory_make('ffmpegcolorspace') caps = gst.caps_from_string('video/x-raw-yuv') self.capture_enc = gst.element_factory_make("jpegenc") self.capture_sink = gst.element_factory_make("capturesink") self.capture_sink_queue = gst.element_factory_make("queue") self.resizer = gst.element_factory_make("videoscale") # Video render stream self.player.add( self.source, self.tee) gst.element_link_many(self.source, self.tee) self.player.add(fcs, self.resizer, sinkx) gst.element_link_many(self.tee, fcs, self.resizer, sinkx) self.player.add( self.capture_sink_queue, self.capture_enc, self.capture_sink) gst.element_link_many(self.tee, self.capture_sink_queue, self.capture_enc, self.capture_sink) bus = self.player.get_bus() bus.add_signal_watch() bus.enable_sync_message_emission() bus.connect("message", self.on_message) bus.connect("sync-message::element", self.on_sync_message) def on_message(self, bus, message): t = message.type if self.vid_fd is not None and self.vid_fd < 0: self.vid_fd = self.source.get_property("device-fd") if self.vid_fd >= 0: print 'Initializing V4L controls' self.v4l_load() if t == gst.MESSAGE_EOS: self.player.set_state(gst.STATE_NULL) print "End of stream" elif t == gst.MESSAGE_ERROR: err, debug = message.parse_error() print "Error: %s" % err, debug self.player.set_state(gst.STATE_NULL) '' def v4l_load(self): return ''' vconfig = uconfig["imager"].get("v4l2", None) if not vconfig: return for configk, configv in vconfig.iteritems(): break #if type(configv) != dict or '"Gain"' not in configv: # raise Exception("Bad v4l default config (old style?)") print 'Selected config %s' % configk for k, v in configv.iteritems(): if k in self.ctrls: self.ctrls[k].setText(str(v)) else: ctrl_set(self.vid_fd, k, v) ''' def on_sync_message(self, bus, message): if message.structure is None: return message_name = message.structure.get_name() if message_name == "prepare-xwindow-id": if message.src.get_name() == 'sinkx_overview': print 'sinkx_overview win_id' win_id = self.gstWindowId else: raise Exception('oh noes') assert win_id imagesink = message.src imagesink.set_xwindow_id(win_id) def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('pyv4l test') # top layout layout = QHBoxLayout() layout.addLayout(self.get_left_layout()) layout.addLayout(self.get_video_layout()) w = QWidget() w.setLayout(layout) self.setCentralWidget(w) self.show()
class MyWindow(QMainWindow): def __init__(self): # Initialize the super-class QMainWindow.__init__(self) # Set the icon self.setWindowIcon(QIcon("logo3.svg")) desktop = QtGui.QDesktopWidget() geom = desktop.availableGeometry() windowWidth = int(geom.width()/1.5) windowHeight = int(geom.height()/1.5) self.wh = QSize(windowWidth, windowHeight) # Restrict the resizing self.setMinimumSize(self.wh * 0.7) self.setSizeIncrement(QSize(30,30)) # Resize and move to the middle of the screen self.resize(self.wh) self.move(int((geom.width()-windowWidth)/2.0), int((geom.height()-windowHeight)/2.0)) self.setWindowTitle('The windowed application!') # Create the main widget of the window self.center = QWidget() self.layout().addWidget(self.center) # Create a grid layout to fit elements into self.center.setLayout(QGridLayout()) # Add a button self.button = QPushButton(self) self.button.setText("This is a magic button!"); self.button.resize(self.button.sizeHint()); self.button.setFixedSize(self.button.sizeHint()); self.center.layout().addWidget(self.button, 0, 1) self.button.clicked.connect(self.reaction) qDebug(str(self.sizeHint())) def sizeHint(self): return self.wh def reaction(self): qDebug("Button was clicked!") def closeEvent(self, event): # Call the method of the parent as well QMainWindow.closeEvent(self, event) def resizeEvent(self, event): # Resize the main widget self.center.resize(event.size()) QMainWindow.resizeEvent(self, event) def moveEvent(self, event): #qDebug("Window moved!") print (event.pos().x(), event.pos().y()) QMainWindow.moveEvent(self, event)
class MainWindow(QMainWindow): def __init__(self, shampoo): super().__init__() self.setWindowTitle("Shampoo") self.resize(800, 400) #self.showMaximized() self.shampoo = shampoo self._create_central_widget() self._create_main_menu() self.case = None self.tree = None def set_case(self, case): self.case = case self.case.rebuild_scene.connect(self.rebuild_scene) self.tree = case.make_tree(self) self.tree.rebuild_scene.connect(self.rebuild_scene) self.treeview.setModel(self.tree) self.treeview.expandAll() self.treeview.selectionModel().currentChanged.connect(self._select_node) self.rebuild_scene() self.focus_on_node(self.tree) self.update_title() def select_node(self, node): layout = self.editwidget.layout() ui.qtutils.clean_layout(layout) node.make_editor(layout) layout.addSpacerItem( QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Expanding)) def focus_on_node(self, node): items = [] node.collect_render_items(items) bounding_box = BoundingBox() for item in items: bounding_box.add_box(item.bounding_box) if bounding_box.is_valid(): self.glwidget.focus_on_bounding_box(bounding_box) def rebuild_scene(self): items = [] self.tree.collect_render_items(items) self.glwidget.render_items = items self.glwidget.update() def update_title(self): if not self.case or not self.case.path: self.setWindowTitle("Shampoo") else: self.setWindowTitle("Shampoo - " + self.case.path) def _select_node(self, current, old): node = current.internalPointer() if node is None: return self.select_node(node) def _create_main_menu(self): menu = self.menuBar().addMenu("&Case") a = menu.addAction("&New") a = menu.addAction("&Open") a.triggered.connect(self.shampoo.open) a = menu.addAction("&Save") a.triggered.connect(self.shampoo.save) a = menu.addAction("Save &as") a.triggered.connect(self.shampoo.save_as) menu.addSeparator() a = menu.addAction("&Quit") a.triggered.connect(self.shampoo.app.quit) menu = self.menuBar().addMenu("&Options") a = menu.addAction("&Configure Shampoo") a.triggered.connect(self.shampoo.configure) def _create_central_widget(self): tabs = QTabWidget() splitter = QSplitter() self.treeview = QTreeView() self.treeview.header().hide() self.treeview.resize(500, 0) splitter.addWidget(self.treeview) self.editwidget = QWidget() self.editwidget.setLayout(QVBoxLayout()) self.editwidget.resize(300, 300) self.editwidget.setMinimumSize(300, 100) splitter.addWidget(self.editwidget) self.glwidget = GLWidget() splitter.addWidget(self.glwidget) splitter.setStretchFactor(0, 2) splitter.setStretchFactor(1, 2) splitter.setStretchFactor(2, 4) tabs.addTab(splitter, "Mesh") tabs.addTab(self._create_run(), "Run") self.setCentralWidget(tabs) def _create_run(self): run = QSplitter() buttons = QWidget() layout = QVBoxLayout() buttons.setLayout(layout) button = QPushButton("Run blockMesh") button.clicked.connect(self.shampoo.run) layout.addWidget(button) button_terminate = QPushButton("Terminate") button_terminate.clicked.connect(self.shampoo.run) button_terminate.setEnabled(False) layout.addWidget(button_terminate) layout.addSpacerItem( QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Expanding)) run.addWidget(buttons) self.console = Console() run.addWidget(self.console) return run
from PyQt4.QtGui import QApplication, QWidget import sys if __name__ == '__main__': print('HOLA') app = QApplication(sys.argv) w = QWidget() w.resize(250, 150) w.move(300, 300) w.setWindowTitle('Simple') w.show() print('HOLA') sys.exit(app.exec_())
if button == QMessageBox.Ok: exit() #防止多开 ERROR_ALREADY_EXISTS = 183 sz_mutex = "test_mutex" hmutex = win32event.CreateMutex(None, pywintypes.FALSE, sz_mutex) if (win32api.GetLastError() == ERROR_ALREADY_EXISTS): win32api.CloseHandle(hmutex) button = QMessageBox.warning(w, "Alert", u'请勿重复开启!', QMessageBox.Ok) if button == QMessageBox.Ok: exit() #创建窗口 try: w.resize(250, 150) w.move(300, 300) w.setWindowTitle(u'By ddd') #窗口是否为置顶窗口 #w.setWindowFlags(Qt.FramelessWindowHint|Qt.WindowStaysOnTopHint) w.setWindowFlags(Qt.FramelessWindowHint) label_k = QLabel(u'您输入的关键词:') label_r = QLabel(u'匹配的最佳结果:') label_fi = QLabel(u'近五年影响因子:') label_i = QLabel(u'最新的影响因子:') l_keywords = QLabel(u'') l_results = QLabel(u'') l_if = QLabel(u'') l_fiveif = QLabel(u'') except:
class CNCGUI(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.showMaximized() self.initUI() self.vid_fd = None # Must not be initialized until after layout is set self.gstWindowId = None engine_config = 'gstreamer' if engine_config == 'gstreamer': self.source = gst.element_factory_make("v4l2src", "vsource") self.source.set_property("device", "/dev/video0") self.vid_fd = -1 self.setupGst() elif engine_config == 'gstreamer-testsrc': self.source = gst.element_factory_make("videotestsrc", "video-source") self.setupGst() else: raise Exception('Unknown engine %s' % (engine_config,)) self.processor = ImageProcessor() self.processor.n_frames.connect(self.n_frames.setNum) self.processor.r_val.connect(self.r_val.setNum) self.processor.g_val.connect(self.g_val.setNum) self.processor.b_val.connect(self.b_val.setNum) self.processor.r_bal.connect(self.r_bal.setNum) self.processor.b_bal.connect(self.b_bal.setNum) self.capture_sink.img_cb = self.processor.img_cb self.processor.start() if self.gstWindowId: print "Starting gstreamer pipeline" self.player.set_state(gst.STATE_PLAYING) def get_video_layout(self): # Overview def low_res_layout(): layout = QVBoxLayout() layout.addWidget(QLabel("Overview")) # Raw X-windows canvas self.video_container = QWidget() # Allows for convenient keyboard control by clicking on the video self.video_container.setFocusPolicy(Qt.ClickFocus) w, h = 3264/4, 2448/4 self.video_container.setMinimumSize(w, h) self.video_container.resize(w, h) policy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.video_container.setSizePolicy(policy) layout.addWidget(self.video_container) return layout layout = QHBoxLayout() layout.addLayout(low_res_layout()) return layout def get_ctrl_layout(self): layout = QGridLayout() row = 0 self.ctrls = {} for name in ("Red Balance", "Gain", "Blue Balance", "Exposure"): def textChanged(name): def f(): if self.vid_fd >= 0: val = int(self.ctrls[name].text()) print '%s changed => %d' % (name, val) ctrl_set(self.vid_fd, name, val) return f layout.addWidget(QLabel(name), row, 0) ctrl = QLineEdit('0') ctrl.textChanged.connect(textChanged(name)) self.ctrls[name] = ctrl layout.addWidget(ctrl, row, 1) row += 1 return layout def get_rgb_layout(self): layout = QGridLayout() row = 0 layout.addWidget(QLabel('N'), row, 0) self.n_frames = QLabel('0') layout.addWidget(self.n_frames, row, 1) row += 1 layout.addWidget(QLabel('R_V'), row, 0) self.r_val = QLabel('0') layout.addWidget(self.r_val, row, 1) row += 1 layout.addWidget(QLabel('G_V'), row, 0) self.g_val = QLabel('0') layout.addWidget(self.g_val, row, 1) row += 1 layout.addWidget(QLabel('B_V'), row, 0) self.b_val = QLabel('0') layout.addWidget(self.b_val, row, 1) row += 1 layout.addWidget(QLabel('R_B'), row, 0) self.r_bal = QLabel('0') layout.addWidget(self.r_bal, row, 1) row += 1 layout.addWidget(QLabel('B_B'), row, 0) self.b_bal = QLabel('0') layout.addWidget(self.b_bal, row, 1) row += 1 return layout def setupGst(self): print "Setting up gstreamer pipeline" self.gstWindowId = self.video_container.winId() self.player = gst.Pipeline("player") self.tee = gst.element_factory_make("tee") sinkx = gst.element_factory_make("ximagesink", 'sinkx_overview') fcs = gst.element_factory_make('ffmpegcolorspace') caps = gst.caps_from_string('video/x-raw-yuv') self.capture_enc = gst.element_factory_make("jpegenc") self.capture_sink = gst.element_factory_make("capturesink") self.capture_sink_queue = gst.element_factory_make("queue") self.resizer = gst.element_factory_make("videoscale") # Video render stream self.player.add( self.source, self.tee) gst.element_link_many(self.source, self.tee) self.player.add(fcs, self.resizer, sinkx) gst.element_link_many(self.tee, fcs, self.resizer, sinkx) self.player.add( self.capture_sink_queue, self.capture_enc, self.capture_sink) gst.element_link_many(self.tee, self.capture_sink_queue, self.capture_enc, self.capture_sink) bus = self.player.get_bus() bus.add_signal_watch() bus.enable_sync_message_emission() bus.connect("message", self.on_message) bus.connect("sync-message::element", self.on_sync_message) def on_message(self, bus, message): t = message.type if self.vid_fd is not None and self.vid_fd < 0: self.vid_fd = self.source.get_property("device-fd") if self.vid_fd >= 0: print 'Initializing V4L controls' for k, v in uconfig["imager"].get("v4l2", {}).iteritems(): if k in self.ctrls: self.ctrls[k].setText(str(v)) else: ctrl_set(self.vid_fd, k, v) if t == gst.MESSAGE_EOS: self.player.set_state(gst.STATE_NULL) print "End of stream" elif t == gst.MESSAGE_ERROR: err, debug = message.parse_error() print "Error: %s" % err, debug self.player.set_state(gst.STATE_NULL) '' def on_sync_message(self, bus, message): if message.structure is None: return message_name = message.structure.get_name() if message_name == "prepare-xwindow-id": if message.src.get_name() == 'sinkx_overview': print 'sinkx_overview win_id' win_id = self.gstWindowId else: raise Exception('oh noes') assert win_id imagesink = message.src imagesink.set_xwindow_id(win_id) def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('pyv4l test') # top layout layout = QHBoxLayout() layout.addLayout(self.get_ctrl_layout()) layout.addLayout(self.get_rgb_layout()) layout.addLayout(self.get_video_layout()) w = QWidget() w.setLayout(layout) self.setCentralWidget(w) self.show()
print ("Hello, World!") def selectMC(): MC = QFileDialog.getOpenFileName() print unicode(MC, "utf-8", errors="ignore") def selectGrades(): handGraded = QFileDialog.getOpenFileName() print unicode(handGraded, "utf-8", errors="ignore") # Instantiate the button gradeButton = Qt.QPushButton("Grade",w) myCursesButton = Qt.QPushButton("Selaa",w) gradedButton = Qt.QPushButton("Selaa",w) # And connect the action "sayHello" to the event "button has been clicked" a.connect(gradeButton, Qt.SIGNAL("clicked()"), grade) myCursesButton.clicked.connect(selectMC) gradedButton.clicked.connect(selectGrades) # The rest is known already... #a.setMainWidget(hellobutton) gradeButton.show() w.resize(320, 240) # The resize() method resizes the widget. w.setWindowTitle("Mekaniikka") # Here we set the title for our window. w.show() # The show() method displays the widget on the screen. sys.exit(a.exec_()) # Finally, we enter the mainloop of the application.
class MainWindow(QWidget): stylesheet = """ QStatusBar { border: 0; } SearchEditor { height: 22px; background-color: white; } MenuButton { height: 22px; } MenuButton::menu-indicator { width: 0; } QLineEdit { height: 22px; } """ def __init__(self): super(MainWindow, self).__init__() self.setObjectName('top') self.setWindowTitle('Bluepass') self.addWidgets() self.resize(300, 400) self.first = True self.setStyleSheet(self.stylesheet) self.vaultmgr = VaultManager(self) self.pairdlg = PairingApprovalDialog(self) def addWidgets(self): layout = QVBoxLayout() self.setLayout(layout) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) hbox = QHBoxLayout() hbox.setSpacing(4) hbox.setContentsMargins(8, 8, 8, 2) searchbox = SearchEditor() hbox.addWidget(searchbox) self.searchbox = searchbox menu = MenuButton(self) hbox.addWidget(menu) layout.addLayout(hbox) pwview = VaultView(self) searchbox.textChanged.connect(pwview.setSearchQuery) pwview.currentVaultChanged.connect(searchbox.currentVaultChanged) pwview.currentVaultItemCountChanged.connect(searchbox.currentVaultItemCountChanged) layout.addWidget(pwview) self.pwview = pwview hbox = QHBoxLayout() addbutton = AddButton() pwview.currentVaultChanged.connect(addbutton.currentVaultChanged) hbox.addWidget(addbutton) frame = QFrame() frame.setFrameStyle(QFrame.VLine|QFrame.Raised) frame.setLineWidth(1) frame.setFixedHeight(26) hbox.addWidget(frame) statusbar = QStatusBar() hbox.addWidget(statusbar) self.statusbar = statusbar self.sink = QWidget() self.sink.setFocusPolicy(Qt.ClickFocus) self.sink.resize(0, 0) hbox.addWidget(self.sink) layout.addLayout(hbox) @Slot() def connectVault(self): vaultmgr = QApplication.instance().mainWindow().vaultManager() vaultmgr.setEnableNavigation(False) vaultmgr.showPage('ConnectVault') @Slot() def loseFocus(self): self.sink.setFocus() def showEvent(self, event): if not self.first: return self.loseFocus() self.pwview.loadVaults() self.first = False def showMessage(self, message): self.statusbar.showMessage(message, 10000) def passwordView(self): return self.pwview def vaultManager(self): return self.vaultmgr def showAbout(self): backend = QApplication.instance().backend() version_info = backend.get_version_info() text = '<p><b>Bluepass password manager, version %s</b></p>' \ '<p>Bluepass is copyright (c) 2012-2013 Geert Jansen. ' \ 'Bluepass is free software available under the GNU General ' \ 'Public License, version 3. For more information, see ' \ '<a href="http://bluepass.org/">http://bluepass.org/</a>.</p>' \ % version_info['version'] QMessageBox.about(self, 'Bluepass', text) def showVaultManager(self, page='ManageVaults'): self.vaultmgr.reset() self.vaultmgr.showPage(page) def showPairingApprovalDialog(self, name, vault, pin, kxid, send_response): self.pairdlg.reset() self.pairdlg.getApproval(name, vault, pin, kxid, send_response)
class SectionsContainerWidget(QWidget): def __init__(self, parent=None, isLinacSection=True, sectionClass=None): QWidget.__init__(self, parent) self.isLinacSection = isLinacSection self.sectionClass = sectionClass self.setParent(parent) self.sectionWidgets = list() self.setMinimumWidth(460) self.setMinimumHeight(600) self.sumSize = 0 self.setupLayout() self.setupScrollArea() self.addSectionButton = QPushButton(self.containerWidget) self.addSectionButton.setText("Add new section") self.layout.addWidget(self.addSectionButton) self.connect(self.addSectionButton, QtCore.SIGNAL("clicked()"), self.addNewSection) def setupLayout(self): self.containerWidget = QWidget(self) self.widgetHeight = 120 self.containerWidget.setGeometry(QRect(0,0,460,self.widgetHeight)) self.layout = QVBoxLayout() self.containerWidget.setLayout(self.layout) def setupScrollArea(self): self.scrollArea = QScrollArea(self) self.scrollArea.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded) self.scrollArea.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.scrollArea.setMaximumWidth(460) self.scrollArea.setMinimumHeight(600) self.scrollArea.setWidgetResizable(False) self.scrollArea.setWidget(self.containerWidget) def addNewSection(self): newSection = self.sectionClass(self.containerWidget) widgetPosition = len(self.sectionWidgets) self.layout.insertWidget(widgetPosition, newSection) self.sectionWidgets.append(newSection) self.setDefaultValues(newSection) self.widgetHeight += 80 self.containerWidget.resize(460,self.widgetHeight) self.connect(newSection, QtCore.SIGNAL("remove()"), self.removeSection) self.connect(newSection, QtCore.SIGNAL("sizeValueChanged(QWidget*)"), self.updateSumOfSize) def setDefaultValues(self, section): pass # section.colorLabel.setColor(SettingsCloud.getParameter("subsectionColor")) # self.setSectionSize(section) def setSectionSize(self, section): pass # def setSubsectionSize(self, section): # if self.isLinacSection: # defaultSize = SettingsCloud.getParameter("linacSubsectionSize") # else: # defaultSize = SettingsCloud.getParameter("ringSubsectionSize") # section.sizeEdit.setValue(defaultSize) # self.updateSumOfSize(section) def updateSumOfSize(self, sectionWidget): self.sumSize = 0 for section in self.sectionWidgets: self.sumSize += section.getSize() if self.sumSize > 100: diff = self.sumSize - 100.0 actualSize = sectionWidget.getSize() sectionWidget.setSize(actualSize - diff) def removeSection(self): messageBox = QMessageBox(self) userReply = messageBox.question(self, "Are you sure?", "Do you want to remove this section?", QMessageBox.Yes|QMessageBox.No) if userReply == QMessageBox.Yes: sender = self.sender() self.layout.removeWidget(sender) self.sectionWidgets.remove(sender) sender.setVisible(False) self.widgetHeight -= 80 self.containerWidget.resize(460,self.widgetHeight) def getNumberOfSections(self): return len(self.sectionWidgets) def getSections(self): return self.sectionWidgets def getSectionsData(self): subsectionsData = list() for subsection in self.sectionWidgets: subsectionsData.append(subsection.getSectionData()) return subsectionsData
class GUI(QMainWindow): def __init__(self, prog): QMainWindow.__init__(self) self.showMaximized() self.prog = prog self.initUI() self.vid_fd = None # Must not be initialized until after layout is set self.gstWindowId = None engine_config = 'gstreamer' #engine_config = 'gstreamer-testsrc' if engine_config == 'gstreamer': self.source = gst.element_factory_make("v4l2src", "vsource") self.source.set_property("device", "/dev/video0") self.vid_fd = -1 self.setupGst() elif engine_config == 'gstreamer-testsrc': print 'WARNING: using test source' self.source = gst.element_factory_make("videotestsrc", "video-source") self.setupGst() else: raise Exception('Unknown engine %s' % (engine_config,)) ext = None if self.capture_enc: ext = { 'jpegenc0': 'jpg', }[self.capture_enc.get_name()] self.processor = ImageProcessor(ext) self.capture_sink.img_cb = self.processor.img_cb self.processor.start() if self.gstWindowId: print "Starting gstreamer pipeline" self.player.set_state(gst.STATE_PLAYING) def get_video_layout(self): # Overview def low_res_layout(): layout = QVBoxLayout() layout.addWidget(QLabel("Overview")) # Raw X-windows canvas self.video_container = QWidget() # Allows for convenient keyboard control by clicking on the video self.video_container.setFocusPolicy(Qt.ClickFocus) w, h = 3264/4, 2448/4 self.video_container.setMinimumSize(w, h) self.video_container.resize(w, h) policy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.video_container.setSizePolicy(policy) layout.addWidget(self.video_container) return layout layout = QHBoxLayout() layout.addLayout(low_res_layout()) return layout def setupGst(self): print "Setting up gstreamer pipeline" self.gstWindowId = self.video_container.winId() self.player = gst.Pipeline("player") self.tee = gst.element_factory_make("tee") sinkx = gst.element_factory_make("ximagesink", 'sinkx_overview') fcs = gst.element_factory_make('ffmpegcolorspace') caps = gst.caps_from_string('video/x-raw-yuv') self.capture_enc = gst.element_factory_make("jpegenc") # not found #self.capture_enc = gst.element_factory_make("openjpegenc") # error destination buffer too small #self.capture_enc = gst.element_factory_make("pngenc") # libv4l2: error converting / decoding frame data: v4l-convert: error destination buffer too small (16777216 < 23970816) #self.capture_enc = gst.element_factory_make("pnmenc") #self.capture_enc = None self.capture_sink = gst.element_factory_make("capturesink") self.capture_sink_queue = gst.element_factory_make("queue") self.resizer = gst.element_factory_make("videoscale") # Video render stream self.player.add( self.source, self.tee) gst.element_link_many(self.source, self.tee) self.player.add(fcs, self.resizer, sinkx) gst.element_link_many(self.tee, fcs, self.resizer, sinkx) if self.capture_enc: self.player.add( self.capture_sink_queue, self.capture_enc, self.capture_sink) gst.element_link_many(self.tee, self.capture_sink_queue, self.capture_enc, self.capture_sink) else: self.player.add( self.capture_sink_queue, self.capture_sink) gst.element_link_many(self.tee, self.capture_sink_queue, self.capture_sink) #self.player.add( self.resizer, self.capture_enc, self.capture_sink) #gst.element_link_many(self.tee, self.resizer, self.capture_enc, self.capture_sink) bus = self.player.get_bus() bus.add_signal_watch() bus.enable_sync_message_emission() bus.connect("message", self.on_message) bus.connect("sync-message::element", self.on_sync_message) def on_message(self, bus, message): t = message.type if self.vid_fd is not None and self.vid_fd < 0: self.vid_fd = self.source.get_property("device-fd") if self.vid_fd >= 0: print 'Initializing V4L controls' self.v4l_load() if t == gst.MESSAGE_EOS: self.player.set_state(gst.STATE_NULL) print "End of stream" elif t == gst.MESSAGE_ERROR: err, debug = message.parse_error() print "Error: %s" % err, debug self.player.set_state(gst.STATE_NULL) '' def v4l_load(self): for k, v in uconfig.iteritems(): print '%s => %s' % (k, v) ctrl_set(self.vid_fd, k, v) def on_sync_message(self, bus, message): if message.structure is None: return message_name = message.structure.get_name() if message_name == "prepare-xwindow-id": if message.src.get_name() == 'sinkx_overview': print 'sinkx_overview win_id' win_id = self.gstWindowId else: raise Exception('oh noes') assert win_id imagesink = message.src imagesink.set_xwindow_id(win_id) def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('pyv4l test') # top layout layout = QHBoxLayout() layout.addLayout(self.get_video_layout()) w = QWidget() w.setLayout(layout) self.setCentralWidget(w) self.show()
def metronome(): import os, sys, time from PyQt4.QtCore import SIGNAL from PyQt4.QtGui import QApplication, QPushButton, QSlider, QWidget from PyQt4.QtGui import QHBoxLayout, QLabel import synths START = False app = QApplication(sys.argv) if START: server = scsynth.server.start(verbose=True, spew=True) else: server = scsynth.server.connect(verbose=True, spew=True) engine = Engine(server, app, spew=True, quit_on_delete=START) server.sendMsg('/dumpOSC', 1) engine.tempoclock.set_tempo(120) SYNTHDEF_PATH = os.path.join(os.path.expanduser('~'), '.pksampler', 'synthdefs') SYNTHDEFS = ('JASStereoSamplePlayer.scsyndef', 'JASSine.scsyndef', ) for fname in SYNTHDEFS: engine.server.sendMsg('/d_load', os.path.join(SYNTHDEF_PATH, fname)) FPATH = '/Users/patrick/.pksampler/clicks/click_1.wav' click = synths.Synth() click.name = 'JASStereoSamplePlayer' click['bufnum'] = engine.loader.load(FPATH) click['rateSCale'] = 1.2 click['loopIt'] = 0 time.sleep(.1) pattern = Pattern(beats=1) pattern.add(Note(0, 64, 69)) pattern.synth = click stream = engine.insert(pattern) stream.loop(True) widget = QWidget() Layout = QHBoxLayout(widget) widget.resize(100, 250) widget.show() label = QLabel(widget) label.setText(str(engine.tempoclock.bpm)) Layout.addWidget(label) def set_tempo(value): engine.tempoclock.set_tempo(value) label.setText(str(value)) slider = QSlider(widget) slider.setRange(100, 180) slider.setValue(140) QObject.connect(slider, SIGNAL('valueChanged(int)'), set_tempo) Layout.addWidget(slider) button = QPushButton('quit', widget) QObject.connect(button, SIGNAL('clicked()'), app.quit) Layout.addWidget(button) engine.start() app.exec_() engine.stop()
#! /usr/bin/env python3 # Character Encoding: UTF-8 # # Here we provide the necessary imports. # The basic GUI widgets are located in QtGui module. import sys from PyQt4.QtGui import QApplication, QWidget # Every PyQt4 application must create an application object. # The application object is located in the QtGui module. app = QApplication(sys.argv) # The QWidget widget is the base class of all user interface objects in PyQt4. # We provide the default constructor for QWidget. The default constructor has no parent. # A widget with no parent is called a window. root = QWidget() root.resize(320, 240) # The resize() method resizes the widget. root.setWindowTitle("Hello, World!") # Here we set the title for our window. root.show() # The show() method displays the widget on the screen. sys.exit(app.exec_()) # Finally, we enter the mainloop of the application.
class SystemTrayIcon(QtGui.QSystemTrayIcon): key1 = 0 def check_state(self): if self.w.windowState() == Qt.WindowMinimized: #print "Window is minimised. Restore it." try: #used try so that if user pressed other than the given key error will not be shown if keyboard.is_pressed('ctrl'): #if key 'q' is pressed #print"ctrl" if keyboard.is_pressed('k') and key==1: #print "key" key1 = 1 #self.w.setWindowState(Qt.WindowNoState) if keyboard.is_pressed('k') and key1 == 1: #print "key" key1 = 0 self.w.setWindowState(Qt.WindowNoState) except Exception as e: print "oops", e def updateIcon(self): self.w.show() #self.setIcon(QtGui.QIcon("Example2.ico")) def __init__(self, icon, parent=None): QtGui.QSystemTrayIcon.__init__(self, icon, parent) menu = QtGui.QMenu(parent) font = QtGui.QFont() font.setPointSize(12) #font.setBold(True) font.setWeight(75) changeicon = menu.addAction("Search") exitAction = menu.addAction("Exit") self.setContextMenu(menu) exitAction.triggered.connect(QtGui.qApp.quit) changeicon.triggered.connect(self.updateIcon) #the po up windows self.w = QWidget() x = 0 y = 0 ## try: ## user32 = ctypes.windll.user32 ## screensize = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1) ## platforms=platform.system() ## if(platforms=="Windows"): ## x=1500 ## y=800 #### x=screensize[0]-300 #### y=screensize[1]-504 ## #print x,y ## else: ## x=1500 ## y=800 ## except Exception as e: ## print "exception",str(e) x = 1250 y = 200 #print x,y self.w.move(x, y) self.w.setWindowTitle('infomind_search_BOT') self.w.resize(650, 730) button = QPushButton('Search', self.w) button.move(560, 630) button.resize(80, 80) button2 = QtGui.QPushButton(self.w) icon2 = QIcon("images/if_08_171506.png") button2.setIcon(icon2) button2.move(520, 630) button2.resize(30, 30) #the borowser box browser = QTextBrowser(self.w) browser.setHtml(""" <!DOCTYPE html> <html> <style> body {g background-color: #ffffff; } </style> <body></body> </html> """) browser.move(20, 20) browser.resize(620, 600) textbox = QTextEdit(self.w) textbox.move(20, 630) ## textbox.wordWrapMode(True) textbox.resize(490, 80) paste_text = clipboard.paste() if (paste_text): paste_text = str(paste_text) #print "paste data",paste_text textbox.setText(paste_text) def rec_paste(): response = "" textString = QtCore.QString("""<style> .cll{background-color: #F4FD59 ;color: #000000;float:right;font-family: Trebuchet; font-size: 12px;margin-left:10px;font-weight: lighter;text-align: right; } .time{font-size: 11px ;vertical-align:bottom;color: #999999;} </style> <table><tr><td></br></br></td></tr></table> <table class="cll"> <tr> <td> Bot: Say something! </td> <td class="time" > <br>""" + time.strftime('%I:%M %p') + """</td> </tr> </table> <table><tr><td></br></br></td></tr></table>""") #print textString browser.append(textString) time.sleep(5) r = sr.Recognizer() with sr.Microphone() as source: r.adjust_for_ambient_noise(source, duration=1) print("Say something!") audio = r.listen(source, phrase_time_limit=5) # recognize speech using Sphinx/Google try: response = r.recognize_google(audio) print(" you said '" + response + "'") textString = QtCore.QString("""<style> .cll{background-color: #F4FD59 ;color: #000000;float:right;font-family: Trebuchet; font-size: 12px;margin-left:10px;font-weight: lighter;text-align: right; } .time{font-size: 11px ;vertical-align:bottom;color: #999999;} </style> <table><tr><td></br></br></td></tr></table> <table class="cll"> <tr> <td> Bot: I think you said """ + response + "'" + """ </td> <td class="time" > <br>""" + time.strftime('%I:%M %p') + """</td> </tr> </table> <table><tr><td></br></br></td></tr></table>""") #print textString browser.append(textString) except sr.UnknownValueError: print("Sorry could not understand audio") except sr.RequestError as e: print("Sorry error; {0}".format(e)) textbox.setText(response) def on_click(): #textbox.setText("Button clicked.") #print (dir(textbox)) text = unicode(textbox.toPlainText()) ## print text ## print len(text) ## print(not text) if (not (not text)): textString = QtCore.QString("""<style> .container {background-color: #ADFB42 ;width: 100%;color: #000000;float: left;margin-right:40px;font-family:Trebuchet;font-size: 15px ; font-weight: lighter;text-align: left; } .time{font-size: 11px ;vertical-align:bottom;color: #999999;} </style> <table class="container" style='overflow-x:scroll;height:100px;display:block;'> <tr> <td> Me : """ + text + """ <td class="time" ></br>""" + time.strftime('%I:%M %p') + """</td> </td> </tr> </table> <table><tr><td><br></td></tr></table>""") browser.append(textString) ## return_Res=answers(text) ## print return_Res ## print dir(return_Res) ## #return_Res="hello how can i help you today" infy = 0.000000 # equalant to - neg infinty ans_id = 0 text1 = text for index, row in df1.iterrows(): #print row['id'], row['Title'] text2 = row['Title'] vector1 = text_to_vector(text1) vector2 = text_to_vector(text2) cosine = get_cosine(vector1, vector2) if (cosine > infy): ans_id = row['id'] infy = cosine print ans_id a = (df1.loc[[ans_id - 1]]) return_Res = (a.iloc[0]['Resolution']) ## print dir(return_Res) return_Res2 = str(return_Res) #</code> return_Res2 = return_Res.replace('</code>', "") return_Res = return_Res2.replace("\n", " ") clipboard.copy(return_Res) if ('\n' in return_Res2): print "found" #print return_Res2 textString = QtCore.QString("""<style> .cll{background-color: #F4FD59 ;color: #000000;float:right;font-family: Trebuchet; font-size: 12px;margin-left:10px;font-weight: lighter;text-align: right; } .time{font-size: 11px ;vertical-align:bottom;color: #999999;} </style> <table style='overflow-x:auto;'><tr><td></br></br></td></tr></table> <table class="cll"> <tr> <td> Bot:""" + return_Res2 + """ </td> <td class="time" > <br>""" + time.strftime('%I:%M %p') + """</td> </tr> </table> <table><tr><td><br></br></td></tr></table>""") #print textString '<pre><code>print("Hello, World!")<br /></code></pre><br /><br />' return_Res2 = (str(return_Res2)) lst = [ "//>", "</pre>", "<code><pre>", "<code>", "<pre>", "</code>", "</>" ] ## return_Res2 = ' '.join(x for x in return_Res2.split(' ') if x not in lst) return_Res2 = return_Res2.replace('<br />', "\n", len(return_Res2)) return_Res2 = return_Res2.replace('</code>', "", len(return_Res2)) return_Res2 = return_Res2.replace('<code>', "", len(return_Res2)) return_Res2 = return_Res2.replace('</pre>', "", len(return_Res2)) return_Res2 = return_Res2.replace('<pre>', "", len(return_Res2)) ## return_Res2=return_Res.replace('</code>',"",len(return_Res2)) ## return_Res2=return_Res.replace('\n'," ",len(return_Res2)) ## return_Res2=return_Res.replace('<br /> '," ",len(return_Res2)) ## return_Res2=return_Res.replace("<br />"," ",len(return_Res2)) ## return_Res2=return_Res.replace('</pre>',"",len(return_Res2)) ## return_Res2=return_Res.replace('<pre>',"",len(return_Res2)) ## return_Res2=return_Res.replace('<code>',"",len(return_Res2)) ## return_Res2=re.sub('<br /> ', '', return_Res2) ## lst=["<br /> ","<br />","<br","//>","<br />","<code>","<pre>","</code>","</>"] ## ## return_Res2=' '.join(x for x in return_Res2.split(' ') if x not in lst) print return_Res2 print "##################################" browser.append(textString) else: textString = QtCore.QString("""<style> .cll{background-color: #F4FD59 ;color: #000000;font-family: Trebuchet; font-size: 15px;margin-left:60px;font-weight: lighter;text-align: right; } .time{font-size: 11px ;vertical-align:bottom;color: #999999;} </style> <table ><tr><td></br></br></td></tr></table> <table class="cll"> <tr> <td> Bot:Please enter search query </td> <td class="time" > """ + time.strftime('%I:%M %p') + """</td> </tr> </table> <table><tr><td><br><br></td></tr></table> <br><br>""") browser.append(textString) #print text button.clicked.connect(on_click) button2.clicked.connect(rec_paste) self.timer = QTimer() self.timer.setInterval(100) self.timer.timeout.connect(self.check_state) self.timer.start()
class BillboardDisplay(QMainWindow): def __init__(self, parent=None, workdir=None, fontsize=42): super(BillboardDisplay, self).__init__(parent) self.workdir = workdir self.logger = logging.getLogger('display') self.logger.info('Working directory: {}'.format(self.workdir)) self.current_display = os.path.join(self.workdir, 'current.jpg') desktop = QDesktopWidget() self.display = QWidget(self) size = desktop.availableGeometry(desktop.primaryScreen()); self.display.resize(size.width(), size.height()) self.display.setWindowTitle("Billboard") self.image_label = QLabel(self.display) self.image_label.resize(size.width(), size.height()) self.text_label = QLabel(self.display) self.text_label.resize(size.width(), size.height()) self.text_label.setMargin(100) self.text_label.setStyleSheet(''' QLabel {{ font-size: {}pt; font-weight: bold; color: #eeeeee; text-align: center; }} '''.format(fontsize)) self.text_label.setWordWrap(True) self.text_label.setAlignment(Qt.AlignCenter) dse = QGraphicsDropShadowEffect() dse.setBlurRadius(0) dse.setXOffset(5) dse.setYOffset(5) dse.setColor(QColor(0, 0, 0, 255)) self.text_label.setGraphicsEffect(dse) QObject.connect(self, SIGNAL("updateimage"), self.display_image) QObject.connect(self, SIGNAL("updatecurrent"), self.take_screenshot) def update_image(self, imagepath): self.emit(SIGNAL("updateimage"), imagepath) def update_current(self): self.emit(SIGNAL("updatecurrent"), self.current_display) def display(self, imagepath, text): self.display_text(text) self.display_image(imagepath) self.showFullScreen() def display_image(self, imagepath): pix = QPixmap(imagepath) self.image_label.setPixmap(pix.scaled(self.display.size(), Qt.KeepAspectRatioByExpanding)) def display_text(self, text): self.text_label.setText('"{}"'.format(text)) def take_screenshot(self, path): pixmap = QPixmap(QPixmap.grabWidget(self.display)) pixmap.save(path) self.logger.debug('Saving {}'.format(path))
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA """ import sys from PyQt4.QtGui import QApplication, QPushButton, QWidget if __name__ == "__main__": app = QApplication(sys.argv) window = QWidget() window.resize(480, 360) window.show() button = QPushButton("Press me", window) button.move(200, 200) button.show() sys.exit(app.exec_())
groupby = latest.groupby(["task"]) top = groupby.aggregate({'timestamp': [np.min, np.max]}) top.columns = top.columns.droplevel(0) # put the headers back top_sorted = top.sort_values(by="amax", ascending=False).head(n=15) return top_sorted # create our window app = QApplication(sys.argv) app.setWindowIcon(QIcon(app_path + 'task_tracker.png')) w = QWidget() w.setWindowTitle('Task Tracker') # Set window size. w.resize(280, 230) # Create textbox textbox = QLineEdit(w) textbox.move(20, 20) textbox.resize(240, 30) # Create a button in the window button = QPushButton('Add', w) button.move(20, 60) # Create a button in the window button_dir = QPushButton('data', w) button_dir.move(170, 60) # Create a button in the window
def Adjust(widget: QtGui.QWidget) -> int: h = widget.minimumHeight() + addHeight assert h > 0 widget.setMinimumHeight(h) widget.setMaximumHeight(h) widget.resize(widget.width(), h)
class parcial(QWidget): def __init__(self): self.ingresar = QApplication(sys.argv) super(parcial, self).__init__(None) self.contador = 0 self.ingreso = QWidget() self.ingreso.resize(440, 320) self.ingreso.setWindowTitle('Autenticacion de Ingreso') self.sistema = QWidget() self.sistema.resize(480, 320) self.sistema.setWindowTitle('Identificador de Numeros Telefonicos') def inicio(self, u = 0, c = 0): self.imaje = QLabel(self.ingreso) self.imaje.setGeometry(10,10,225,225) self.imaje.setPixmap(QPixmap("logo.png")) self.u = QLabel('Nombre de Usuario:',self.ingreso) self.u.move(288,162) self.c = QLabel('Clave:',self.ingreso) self.c.move(333,202) self.m = QLabel('Usuario y(o) Clave Incorrecta', self.ingreso) self.m.move(250,303) self.m.hide() self.User = QLineEdit(self.ingreso) self.User.setGeometry(280, 180, 140, 20) self.Pass = QLineEdit(self.ingreso) self.Pass.setGeometry(280, 220, 140, 20) key = self.Pass key.setEchoMode(self.Pass.Password) self.entra = QPushButton('Entrar', self.ingreso) self.entra.setGeometry(320, 260, 60, 30) self.ingreso.connect(self.entra, SIGNAL('clicked()'), lambda: self.revisar(self.User, self.Pass)) self.ingreso.show() sys.exit(self.ingresar.exec_()) def revisar(self, user, passw, flag = 0): u = user.text() c = passw.text() ce = base64.b64encode(str(c)) login = open('usuarios.txt', 'rU') for i in login: n = i.split(',') if (n[1] == u and n[4] == ce): flag = 1 self.m.hide() m = menu() m.exec_() break elif (n[1] == u and n[4] != ce): self.contador += 1 flag = 0 self.m.show() if self.contador == 3: bloqueado = open('bloqueados.txt', 'a') bloqueado.write(i) bloqueado.close() if flag == 0: self.m.show() d = strftime('%d/%m/%y') h = strftime('%H:%M:%S') conn = psycopg2.connect(database='test',user='******',password='******', host='localhost') cur = conn.cursor() cur.execute("INSERT INTO accesos (nombre, usuario, fecha, hora) VALUES ('"+n[0]+"','"+n[1]+"','"+d+"','"+h+"')") conn.commit() conn.close() login.close() entrada = open('ingreso.txt', 'a') entrada.write('Ha Ingresado '+n[1]+' Hoy '+d+' a las '+h+'\n') entrada.close()
def initGui(self): """ Initialize the GUI. """ self.resize(self._init_window_width, self._init_window_height) grid = QGridLayout(self) grid.setSpacing(10) ### Functions. group_func = QGroupBox(self) font = group_func.font() font.setPointSize(self._font_size_groupbox_title) group_func.setFont(font) group_func.resize(400, 100) grid_func = QGridLayout(group_func) grid_func.setSpacing(10) # Some buttons. self._is_bp = self.kwargs.get("bp", True) if self._is_bp: self.bp = QPushButton(group_func) self.bp.setText("Start plotting") self.bp.clicked.connect(self.pushButton) # Some options. label_logscale = QLabel(group_func) label_logscale.setText("Log") self.checkbox_logscale = QCheckBox(group_func) # Construct. if self._is_bp: grid_func.addWidget(self.bp, 0, 0, 1, 1) grid_func.addWidget(label_logscale, 0, 1) grid_func.addWidget(self.checkbox_logscale, 0, 2) ### Coordinate and Value of the mouse pointer. widget_coor_value = QWidget(self) widget_coor_value.resize(self._init_window_width, 30) grid_coor_value = QGridLayout(widget_coor_value) grid_coor_value.setSpacing(10) label_coor_value = QLabel(self) label_coor_value.setText("Coor, Value:") label_coor_value.setAlignment(Qt.AlignRight) # label_coor_value.setFixedWidth(120) font = label_coor_value.font() font.setPointSize(self._font_size_groupbox_title) font.setBold(True) label_coor_value.setFont(font) self.label_coor_value = QLabel(self) # self.label_coor_value.setFixedSize(200, 30) self.label_coor_value.setText("") font = self.label_coor_value.font() font.setPointSize(self._font_size_groupbox_title) font.setBold(True) self.label_coor_value.setFont(font) # Construct. grid_coor_value.addWidget(label_coor_value, 0, 0) grid_coor_value.addWidget(self.label_coor_value, 0, 1, 1, 3) ### Plotting area. self.initPlotArea() ### Construct the layout. grid.addWidget(group_func, 0, 0) grid.addWidget(self.glw, 1, 0) grid.addWidget(widget_coor_value, 1, 0)
class MainWindow(QWidget): stylesheet = """ QStatusBar { border: 0; } SearchEditor { height: 22px; background-color: white; } MenuButton { height: 22px; } MenuButton::menu-indicator { width: 0; } QLineEdit { height: 22px; } """ def __init__(self): super(MainWindow, self).__init__() self.setObjectName('top') self.setWindowTitle('Bluepass') self.addWidgets() self.resize(300, 400) self.first = True self.setStyleSheet(self.stylesheet) self.vaultmgr = VaultManager(self) self.pairdlg = PairingApprovalDialog(self) def addWidgets(self): layout = QVBoxLayout() self.setLayout(layout) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) hbox = QHBoxLayout() hbox.setSpacing(4) hbox.setContentsMargins(8, 8, 8, 2) searchbox = SearchEditor() hbox.addWidget(searchbox) self.searchbox = searchbox menu = MenuButton(self) hbox.addWidget(menu) layout.addLayout(hbox) pwview = VaultView(self) searchbox.textChanged.connect(pwview.setSearchQuery) pwview.currentVaultChanged.connect(searchbox.currentVaultChanged) pwview.currentVaultItemCountChanged.connect( searchbox.currentVaultItemCountChanged) layout.addWidget(pwview) self.pwview = pwview hbox = QHBoxLayout() addbutton = AddButton() pwview.currentVaultChanged.connect(addbutton.currentVaultChanged) hbox.addWidget(addbutton) frame = QFrame() frame.setFrameStyle(QFrame.VLine | QFrame.Raised) frame.setLineWidth(1) frame.setFixedHeight(26) hbox.addWidget(frame) statusbar = QStatusBar() hbox.addWidget(statusbar) self.statusbar = statusbar self.sink = QWidget() self.sink.setFocusPolicy(Qt.ClickFocus) self.sink.resize(0, 0) hbox.addWidget(self.sink) layout.addLayout(hbox) @Slot() def connectVault(self): vaultmgr = QApplication.instance().mainWindow().vaultManager() vaultmgr.setEnableNavigation(False) vaultmgr.showPage('ConnectVault') @Slot() def loseFocus(self): self.sink.setFocus() def showEvent(self, event): if not self.first: return self.loseFocus() self.pwview.loadVaults() self.first = False def showMessage(self, message): self.statusbar.showMessage(message, 10000) def passwordView(self): return self.pwview def vaultManager(self): return self.vaultmgr def showAbout(self): backend = QApplication.instance().backend() version_info = backend.get_version_info() text = '<p><b>Bluepass password manager, version %s</b></p>' \ '<p>Bluepass is copyright (c) 2012-2013 Geert Jansen. ' \ 'Bluepass is free software available under the GNU General ' \ 'Public License, version 3. For more information, see ' \ '<a href="http://bluepass.org/">http://bluepass.org/</a>.</p>' \ % version_info['version'] QMessageBox.about(self, 'Bluepass', text) def showVaultManager(self, page='ManageVaults'): self.vaultmgr.reset() self.vaultmgr.showPage(page) def showPairingApprovalDialog(self, name, vault, pin, kxid, send_response): self.pairdlg.reset() self.pairdlg.getApproval(name, vault, pin, kxid, send_response)
# coding=utf-8 # A simple demonstration of how to load a QGIS project and then # show it in a widget. # This code is public domain, use if for any purpose you see fit. # Tim Sutton 2015 import os from qgis.core import QgsProject from qgis.gui import QgsMapCanvas, QgsLayerTreeMapCanvasBridge from qgis.core.contextmanagers import qgisapp from PyQt4.QtCore import QFileInfo, QSize from PyQt4.QtGui import QWidget, QVBoxLayout with qgisapp(): #project_path = os.path.dirname(__file__) + os.path.sep + 'i:/loadqgisprojectPY/test.qgs' project_path = 'i:/loadqgisprojectPY/test.qgs' print(project_path) widget = QWidget() canvas = QgsMapCanvas(None) # will reparent it to widget via layout widget.resize(QSize(400, 400)) layout = QVBoxLayout(widget) layout.addWidget(canvas) # Load our project bridge = QgsLayerTreeMapCanvasBridge(QgsProject.instance().layerTreeRoot(), canvas) QgsProject.instance().read(QFileInfo(project_path)) widget.show()
class parcial(QWidget): def __init__(self): self.ingresar = QApplication(sys.argv) super(parcial, self).__init__(None) self.ingreso = QWidget() self.ingreso.resize(440, 320) self.ingreso.setWindowTitle('Autenticacion de Ingreso') self.sistema = QWidget() self.sistema.resize(480, 320) self.sistema.setWindowTitle('Identificador de Numeros Telefonicos') def inicio(self, u=0, c=0): self.imaje = QLabel(self.ingreso) self.imaje.setGeometry(10, 10, 225, 225) self.imaje.setPixmap(QPixmap(getcwd() + "/logo.gif")) self.u = QLabel('Nombre de Usuario:', self.ingreso) self.u.move(288, 162) self.c = QLabel('Clave:', self.ingreso) self.c.move(333, 202) self.m = QLabel('Usuario y(o) Clave Incorrecta', self.ingreso) self.m.move(250, 303) self.m.hide() self.User = QLineEdit(self.ingreso) self.User.setGeometry(280, 180, 140, 20) self.Pass = QLineEdit(self.ingreso) self.Pass.setGeometry(280, 220, 140, 20) self.entra = QPushButton('Entrar', self.ingreso) self.entra.setGeometry(320, 260, 60, 30) self.ingreso.connect(self.entra, SIGNAL('clicked()'), lambda: self.revisar(self.User, self.Pass)) self.ingreso.show() sys.exit(self.ingresar.exec_()) def revisar(self, user, passw, flag=0): u = user.text() c = passw.text() #print u+''+c login = open('login.txt', 'rU') for i in login: if i == u + ',' + c + '\n': flag = 1 self.m.hide() m = menu() m.exec_() if flag == 0: self.m.show() self.ingreso.update() login.close()
class previewDlg(QMainWindow): ''' classdocs ''' def __init__(self, parent, comp, basePMCheck, model): ''' Constructor ''' QMainWindow.__init__(self, parent) self.basePMCheck = basePMCheck # self.ui = Ui_Previewself.grbPageProperty() # self.ui.setupUi(self) self.resize(1000, 700) self.setWindowTitle("Preview Dialog") self.view = QgsComposerView(self) viewLayout = QGridLayout() viewLayout.setSpacing(0) viewLayout.setMargin(0) mHorizontalRuler = QgsComposerRuler(QgsComposerRuler.Horizontal) mVerticalRuler = QgsComposerRuler(QgsComposerRuler.Vertical) mRulerLayoutFix = QWidget() mRulerLayoutFix.setAttribute(Qt.WA_NoMousePropagation) mRulerLayoutFix.setBackgroundRole(QPalette.Window) mRulerLayoutFix.setFixedSize(mVerticalRuler.rulerSize(), mHorizontalRuler.rulerSize()) viewLayout.addWidget(mRulerLayoutFix, 0, 0) viewLayout.addWidget(mHorizontalRuler, 0, 1) viewLayout.addWidget(mVerticalRuler, 1, 0) self.view.setContentsMargins(0, 0, 0, 0) self.view.setHorizontalRuler(mHorizontalRuler) self.view.setVerticalRuler(mVerticalRuler) viewLayout.addWidget(self.view, 1, 1) # self.scene = comp self.view.setZoomLevel(1.0) self.view.setComposition(comp) self.scene = self.view.composition() layout = QVBoxLayout() hLayout = QHBoxLayout() hLayout.addLayout(viewLayout) self.mapItem = self.scene.getComposerMapById(0) self.view.scale(2.8, 2.8) self.view.setPreviewModeEnabled(True) self.toolBarAction = self.addToolBar("composer action") self.actionMapRefresh = QAction(self) self.actionMapRefresh.setObjectName("actionMapRefresh") icon3 = QIcon("Resource/Refresh.png") self.actionMapRefresh.setIcon(icon3) self.actionMapRefresh.setToolTip("Refresh") # self.textItemAction.setCheckable(True) self.connect(self.actionMapRefresh, SIGNAL("triggered()"), self.actionMapRefresh_triggered) self.toolBarAction.addAction(self.actionMapRefresh) # # self.templeteCreateAction = QAction(self) # # self.templeteCreateAction.setObjectName("createTempleteAction") # # icon4 = QIcon("Resource\\templetepointer.png") # # self.templeteCreateAction.setIcon(icon4) # # self.templeteCreateAction.setToolTip("Create Templete") # # self.templeteCreateAction.setCheckable(True) # # self.connect(self.templeteCreateAction, SIGNAL("triggered()"), self.createTempleteAction) # # self.toolBar.addAction(self.templeteCreateAction) # layout.insertWidget(0, self.toolBar) # self.scene.selectedItemChanged.connect(self.selectedItemDisplay) self.view.selectedItemChanged.connect(self.selectedItemDisplay) self.view.cursorPosChanged.connect(self.cursorPosChangedEvent) # self.connect(self.view, SIGNAL("selectedItemChanged(QgsComposerItem)"),self, SLOT("selectedItemDisplay(QgsComposerItem)")) # self.scene.composerLabelAdded.connect(self.composerLabelAddedEvent) self.view.itemRemoved.connect(self.deleteItem) # self.connect( self.view, SIGNAL( "actionFinished()" ), self.setSelectionTool) #listen out for position updates from the QgsComposerView self.propertyWidget = QWidget(self) hLayout.addWidget(self.propertyWidget) self.propertyWidget.setObjectName("propertyWidget") self.propertyWidget.resize(222, 302) self.vLayout_3 = QVBoxLayout(self.propertyWidget) self.vLayout_3.setObjectName("vLayout_3") self.groupBox = QGroupBox(self.propertyWidget) self.groupBox.setObjectName("groupBox") self.horizontalLayout_2 = QHBoxLayout(self.groupBox) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.frame = QFrame(self.groupBox) self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.frame.setObjectName("frame") self.verticalLayout = QVBoxLayout(self.frame) self.verticalLayout.setObjectName("verticalLayout") self.label = QLabel(self.frame) self.label.setObjectName("label") self.verticalLayout.addWidget(self.label) self.labelText = QPlainTextEdit(self.frame) self.labelText.setObjectName("labelText") self.verticalLayout.addWidget(self.labelText) self.btnLabelFont = QPushButton(self.frame) self.btnLabelFont.setObjectName("btnLabelFont") self.verticalLayout.addWidget(self.btnLabelFont) self.btnLabelColor = QPushButton(self.frame) self.btnLabelColor.setObjectName("btnLabelColor") self.verticalLayout.addWidget(self.btnLabelColor) self.frame_2 = QFrame(self.frame) self.frame_2.setFrameShape(QFrame.StyledPanel) self.frame_2.setFrameShadow(QFrame.Raised) self.frame_2.setObjectName("frame_2") self.horizontalLayout = QHBoxLayout(self.frame_2) self.horizontalLayout.setObjectName("horizontalLayout") self.label_2 = QLabel(self.frame_2) self.label_2.setObjectName("label_2") self.horizontalLayout.addWidget(self.label_2) self.spinLabelRotation = QSpinBox(self.frame_2) self.spinLabelRotation.setObjectName("spinLabelRotation") self.spinLabelRotation.setMinimum(-360) self.spinLabelRotation.setMaximum(360) self.horizontalLayout.addWidget(self.spinLabelRotation) self.verticalLayout.addWidget(self.frame_2) self.chbBackgroundEnable = QCheckBox(self.frame) self.chbBackgroundEnable.setChecked(True) self.chbBackgroundEnable.setObjectName("chbBackgroundEnable") self.verticalLayout.addWidget(self.chbBackgroundEnable) self.horizontalLayout_2.addWidget(self.frame) self.vLayout_3.addWidget(self.groupBox) self.resolutionFrame = QFrame(self.frame) self.resolutionFrame.setFrameShape(QFrame.StyledPanel) self.resolutionFrame.setFrameShadow(QFrame.Raised) self.resolutionFrame.setObjectName("resolutionFrame") self.horizontalLayout4 = QHBoxLayout(self.resolutionFrame) self.horizontalLayout4.setObjectName("horizontalLayout4") self.label_resolution = QLabel(self.resolutionFrame) self.label_resolution.setObjectName("label_resolution") self.label_resolution.setText("Print Resolution (dpi):") self.horizontalLayout4.addWidget(self.label_resolution) self.spinResolution = QSpinBox(self.resolutionFrame) self.spinResolution.setObjectName("spinResolution") self.spinResolution.setMinimum(0) self.spinResolution.setMaximum(1000) self.spinResolution.setValue(300) self.horizontalLayout4.addWidget(self.spinResolution) # self.verticalLayout.addWidget(self.frame_2) self.vLayout_3.addWidget(self.resolutionFrame) self.gbTable = GroupBox(self.propertyWidget) self.gbTable.Caption = "Table" self.vLayout_3.addWidget(self.gbTable) self.mTableView = QTableView(self.gbTable) self.gbTable.Add = self.mTableView hHeder = self.mTableView.horizontalHeader() hHeder.setVisible(False) vHeder = self.mTableView.verticalHeader() vHeder.setVisible(False) # self.mTableView.setFixedHeight(70) # self.mTableView.setFixedWidth(comp.paperWidth() - 40) # self.stdItemModel = QStandardItemModel() # self. self.spaceItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.vLayout_3.addItem(self.spaceItem) self.groupBox.setTitle("Label Property") self.label.setText("Label Text:") self.btnLabelFont.setText("Label Font") self.btnLabelColor.setText("Label Color") self.label_2.setText("Label Rotation:") self.chbBackgroundEnable.setText("Background Enable") self.groupBox.setEnabled(False) self.connect(self.btnLabelFont, SIGNAL("clicked()"), self.btnLabelFontClick) self.connect(self.btnLabelColor, SIGNAL("clicked()"), self.btnLabelColorClick) self.connect(self.chbBackgroundEnable, SIGNAL("clicked()"), self.chbBackgroundEnableClick) self.labelText.textChanged.connect(self.labelTextChanged) self.spinLabelRotation.valueChanged.connect( self.spinLabelRotationValueChanged) layout.addLayout(hLayout) # self.btnBack = QPushButton() self.btnBack.setText("back") footerLayout = QHBoxLayout() footerLayout.addWidget(self.btnBack) self.buttonBox = QDialogButtonBox(self) self.buttonBox.setOrientation(Qt.Horizontal) self.buttonBox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) self.buttonBox.setObjectName("buttonBox") footerLayout.addWidget(self.buttonBox) layout.addLayout(footerLayout) self.setLayout(layout) deleteItemKey = QShortcut(QKeySequence(Qt.Key_Delete), self) deleteItemKey.activated.connect(self.deleteItem) # self.btnBack.clicked.connect(self.back) self.connect(self.buttonBox, SIGNAL("accepted()"), self.acceptMethod) self.connect(self.buttonBox, SIGNAL("rejected()"), self.reject) self.btnCancel = self.buttonBox.button(QDialogButtonBox.Cancel) self.view.setCurrentTool(QgsComposerView.Select) self.btnLabelColor.setVisible(False) # self.btnBack.setVisible(False) self.chbBackgroundEnable.setVisible(False) # self.view.emit(SIGNAL("actionFinished")) # if self.scene.plotStyle() != QgsComposition.Preview: # self.scene.setPlotStyle(QgsComposition.Preview) # self.mapItem.setPreviewMode(QgsComposerMap.Render) # self.mapItem.updateCachedImage() # self.mapItem.setSelected(True) self.mComposition = comp self.composerMapItem = self.mComposition.composerMapItems()[0] self.composerMapItem.setUpdatesEnabled(True) self.mStdModel = model self.mTableView.setModel(self.mStdModel) self.mTableView.setSpan(0, 0, 1, 6) self.mTableView.setSpan(1, 0, 1, 2) self.mTableView.setSpan(2, 0, 2, 1) self.mTableView.setSpan(4, 0, 1, 2) self.mTableView.setSpan(5, 0, 1, 2) self.mTableView.setSpan(6, 0, 1, 2) self.mTableView.setSpan(0, 6, 1, 8) self.mTableView.setSpan(1, 7, 1, 4) self.mTableView.setSpan(1, 11, 1, 3) self.mTableView.setSpan(2, 7, 1, 4) self.mTableView.setSpan(2, 11, 1, 3) def acceptMethod(self): # self.mStdModel.setItem(0, QStandardItem("nnnnnnnn")) filePath = QFileDialog.getSaveFileName( self, "Save PDF File", QCoreApplication.applicationDirPath(), "pdf files(*.pdf )") if filePath == "": return self.mComposition.clearSelection() self.mComposition.setPrintResolution(self.spinResolution.value()) resultPdf = self.mComposition.exportAsPDF(filePath) if resultPdf: message = QMessageBox.information(self, "Result", "Successful export PDF") else: message = QMessageBox.information(self, "Result", "Don't export PDF") def rePresent(self, comp, model): self.mComposition = comp self.mStdModel = model self.view.setComposition(comp) self.scene = self.view.composition() def back(self): self.done(2) def spinLabelRotationValueChanged(self, rotationValue): self.selectedLabelItem.setItemRotation(rotationValue) def cursorPosChangedEvent(self, scenePointF): self.scenePoint = scenePointF # i = 100 def labelTextChanged(self): self.selectedLabelItem.beginCommand( "Label text changed", QgsComposerMergeCommand.ComposerLabelSetText) self.selectedLabelItem.blockSignals(True) self.selectedLabelItem.setText(self.labelText.toPlainText()) self.selectedLabelItem.update() self.selectedLabelItem.blockSignals(False) self.selectedLabelItem.endCommand() def chbBackgroundEnableClick(self): if self.chbBackgroundEnable.isChecked(): self.selectedLabelItem.setBackgroundEnabled(True) self.mapItem.updateCachedImage() else: self.selectedLabelItem.setBackgroundEnabled(False) self.mapItem.updateCachedImage() def btnLabelFontClick(self): dlgFont = QFontDialog(self) dlgFont.setCurrentFont(self.selectedLabelItem.font()) result = dlgFont.exec_() if result == 1: self.labelFont = dlgFont.selectedFont() else: self.labelFont = QFont() self.selectedLabelItem.setFont(self.labelFont) def btnLabelColorClick(self): dlgColor = QColorDialog(self) dlgColor.setCurrentColor(self.selectedLabelItem.fontColor()) result = dlgColor.exec_() if result == 1: self.labelColor = dlgColor.selectedColor() self.selectedLabelItem.setFontColor(self.labelColor) def createTempleteAction(self): if self.templeteCreateAction.isChecked() and self.basePMCheck: font = QFont("Arial", 13) font.setItalic(True) self.compLabel1 = QgsComposerLabel(self.scene) self.compLabel1.setFont(font) self.compLabel1.setText("South China Sea") self.compLabel1.setBackgroundEnabled(False) self.compLabel1.setItemPosition(156, 100) self.compLabel1.adjustSizeToText() self.compLabel1.setItemRotation(60) # mapitem = self.scene.composerMapItems() # mapitem[0].addItem(self.compLabel1) self.scene.addItem(self.compLabel1) self.compLabel2 = QgsComposerLabel(self.scene) self.compLabel2.setFont(font) self.compLabel2.setText("Straits Of Malacca") self.compLabel2.setBackgroundEnabled(False) self.compLabel2.setItemPosition(35, 100) self.compLabel2.adjustSizeToText() self.compLabel2.setItemRotation(60) self.scene.addItem(self.compLabel2) font.setItalic(False) self.compLabel3 = QgsComposerLabel(self.scene) self.compLabel3.setFont(font) self.compLabel3.setBackgroundEnabled(False) self.compLabel3.setText("THAILAND") self.compLabel3.setItemPosition(68, 60) self.compLabel3.adjustSizeToText() # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel3) # self.templeteCreateAction.setChecked(False) self.compLabel4 = QgsComposerLabel(self.scene) self.compLabel4.setFont(font) self.compLabel4.setBackgroundEnabled(False) self.compLabel4.setText("SINGAPORE") self.compLabel4.setItemPosition(141, 218) self.compLabel4.adjustSizeToText() # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel4) self.templeteCreateAction.setChecked(False) self.compLabel4.setSelected(True) elif self.templeteCreateAction.isChecked( ) and self.basePMCheck == False: font = QFont("Arial", 14) font.setItalic(True) self.compLabel5 = QgsComposerLabel(self.scene) self.compLabel5.setFont(font) self.compLabel5.setText("South China Sea") self.compLabel5.setBackgroundEnabled(False) self.compLabel5.setItemPosition(108, 86) self.compLabel5.adjustSizeToText() self.compLabel5.setItemRotation(-45) # mapitem = self.scene.composerMapItems() # mapitem[0].addItem(self.compLabel1) self.scene.addItem(self.compLabel5) self.compLabel6 = QgsComposerLabel(self.scene) self.compLabel6.setFont(font) self.compLabel6.setText("Sulu Sea") self.compLabel6.setBackgroundEnabled(False) self.compLabel6.setItemPosition(236, 38) self.compLabel6.adjustSizeToText() self.compLabel6.setItemRotation(45) self.scene.addItem(self.compLabel6) font.setItalic(False) self.compLabel7 = QgsComposerLabel(self.scene) self.compLabel7.setFont(font) self.compLabel7.setBackgroundEnabled(False) self.compLabel7.setText("Celebes Sea") self.compLabel7.setItemPosition(242, 112) self.compLabel7.adjustSizeToText() self.compLabel7.setItemRotation(-45) # self.compLabel3.setItemRotation(0.5) self.scene.addItem(self.compLabel7) # self.templeteCreateAction.setChecked(False) self.compLabel8 = QgsComposerLabel(self.scene) self.compLabel8.setFont(font) self.compLabel8.setBackgroundEnabled(False) self.compLabel8.setText("INDONESIA\n(Kalimantan)") self.compLabel8.setItemPosition(172, 148, 32, 16) # self.compLabel8.setHAlign(Qt.AlignHCenter) # self.compLabel8.setVAlign(Qt.AlignVCenter) # self.compLabel8.setFrameEnabled(False) # self.compLabel8.setItemPosition() # self.compLabel8.adjustSizeToText() # self.compLabl3.setItemRotation(0.5) self.scene.addItem(self.compLabel8) self.compLabel9 = QgsComposerLabel(self.scene) self.compLabel9.setFont(font) self.compLabel9.setBackgroundEnabled(False) self.compLabel9.setText("BRUNEI") self.compLabel9.setItemPosition(136, 83) self.compLabel9.adjustSizeToText() # self.compLabl3.setItemRotation(0.5) self.scene.addItem(self.compLabel9) self.templeteCreateAction.setChecked(False) pass def actionMapRefresh_triggered(self): self.view.setCurrentTool(QgsComposerView.AddRectangle) def setSelectionTool(self): self.view.deleteSelectedItems() font = QFont("Arial", 14) newLabelItem = QgsComposerLabel(self.scene) newLabelItem.setText("QGIS") newLabelItem.setFont(font) newLabelItem.setItemPosition(self.scenePoint.x(), self.scenePoint.y()) newLabelItem.adjustSizeToText() self.scene.addItem(newLabelItem) # selectItemPoint = self.scene.composerItemAt(self.scenePoint) newLabelItem.setSelected(True) self.groupBox.setEnabled(True) self.selectedLabelItem = newLabelItem # txt = self.selectedLabelItem.text() # textDoc = QTextDocument(txt) self.labelText.setPlainText(self.selectedLabelItem.text()) # self.scene.setSelectedItem(self.newLabelItem) self.view.setCurrentTool(QgsComposerView.Select) # self.selectedLabelItem = self.view.currentTool() self.textItemAction.setChecked(False) def selectedItemDisplay(self, item): if self.scene.plotStyle() != QgsComposition.Preview: self.scene.setPlotStyle(QgsComposition.Preview) self.mapItem.setPreviewMode(QgsComposerMap.Render) self.mapItem.updateCachedImage() item._class_ = QgsComposerLabel # selectedItems = self.scene.selectedComposerItems(True) # if isinstance(item, QgsComposerItem): # self.selectedLabelItem = item # if isinstance(item, QGraphicsRectItem): # self.selectedLabelItem = item if isinstance(item, QgsComposerLabel): self.selectedLabelItem = item self.groupBox.setEnabled(True) self.labelText.setPlainText(self.selectedLabelItem.text()) self.spinLabelRotation.setValue(self.selectedLabelItem.rotation()) else: self.groupBox.setEnabled(False) # print "debug" itemName = self.view.currentTool() if itemName == 5: item.setText("label") pass def deleteItem(self): self.view.deleteSelectedItems()
class QPlayer(QWidget, Ui_QPlayer): def __init__(self, handModel, gameDialog, gameType, controllable, playerName, parent=None): QWidget.__init__(self, parent) self.setupUi(self) self.controllable = controllable self.name = playerName if gameType is utilities.kGameTypeYuGiOh: self.btnDeck.pixmap = QPixmap("images/yugiohBack.jpg") self.piPlayerInfo.setLife(8000) self.piPlayerInfo.hidePoison() else: self.btnDeck.pixmap = QPixmap("images/back.jpg") self.btnDeck.displaysTopCard = False self.btnDeck.enlargeFunction = gameDialog.enlargeCard self.btnGraveyard.pixmap = QPixmap("images/empty.jpg") self.btnGraveyard.enlargeFunction = gameDialog.enlargeCard self.btnGraveyard.controllable = controllable self.gameType = gameType if gameType is utilities.kGameTypeTwoHeadedGiant: self.piPlayerInfo.setLife(30) # Setup models self.creaturesModel = QCardModel(self, self.controllable, 140) self.creaturesModel.enlargeFunction = gameDialog.enlargeCard self.landsModel = QCardModel(self, self.controllable, 140) self.landsModel.enlargeFunction = gameDialog.enlargeCard self.graveyardModel = QCardModel(self, self.controllable) self.graveyardModel.enlargeFunction = gameDialog.enlargeCard self.handModel = handModel self.handModel.enlargeFunction = gameDialog.enlargeCard self.exileModel = QCardModel(self, self.controllable) self.exileModel.enlargeFunction = gameDialog.enlargeCard if self.gameType is not utilities.kGameTypeYuGiOh: self.deck = QDeck(self, controllable, game="Magic") else: self.deck = QDeck(self, controllable, game="Yu-Gi-Oh") self.deck.enlargeFunction = gameDialog.enlargeCard # Handle commander format if gameType is utilities.kGameTypeCommander: self.lblCommander.show() else: self.lblCommander.hide() # Connect Views and Models self.lvCreatures.setModel(self.creaturesModel) self.lvLands.setModel(self.landsModel) self.btnGraveyard.setModel(self.graveyardModel) self.gameDialog = gameDialog # Connect signals and slots if self.controllable: self.connect(self.btnDeck, SIGNAL("clicked()"), self.drawCard) self.connect(self.lvCreatures, SIGNAL('doubleClicked(QModelIndex)'), self.creaturesModel.toggleCardAtIndexTapped) self.connect(self.lvCreatures, SIGNAL('customContextMenuRequested(QPoint)'), self.creaturesModel.contextMenuFunction(self.lvCreatures, self, gameDialog, self)) self.connect(self.lvLands, SIGNAL('doubleClicked(QModelIndex)'), self.landsModel.toggleCardAtIndexTapped) self.connect(self.lvLands, SIGNAL('customContextMenuRequested(QPoint)'), self.landsModel.contextMenuFunction(self.lvLands, self, gameDialog, self)) self.connect(self.btnDeck, SIGNAL('customContextMenuRequested(QPoint)'), self.displayDeckMenu) self.connect(self.lvCreatures, SIGNAL("clicked(QModelIndex)"), self.enlargeCreature) self.connect(self.lvLands, SIGNAL("clicked(QModelIndex)"), self.enlargeLand) self.connect(self.btnGraveyard, SIGNAL('customContextMenuRequested(QPoint)'), self.displayGraveyardMenu) self.btnDeck.setContextMenuCallback(self.displayDeckDragAndDropMenu) self.piPlayerInfo.hide() def setGameType(self, gameType): self.gameType = gameType def hideDeck(self): for i in range(0, self.vlDeck.count()): self.vlDeck.itemAt(i).widget().hide() self.piPlayerInfo.show() def flip(self): return flippedWidgets = [] for row in range(0,self.layout().rowCount()): rowWidgets = [] for column in range(0,self.layout().columnCount()): item = self.layout().itemAtPosition(row,column) rowWidgets.append(item) self.layout().removeItem(item) flippedWidgets.insert(0, rowWidgets) for y,row in enumerate(flippedWidgets): for x,widget in enumerate(row): self.layout().addItem(widget, y, x) def drawCard(self): abbreviation, index = self.deck.drawCard() self.handModel.addItem(QCard(abbreviation, index)) def setDeckFromFile(self,filename): print "Loading deck %s..." % filename import os; print os.getcwd() self.deck.loadFromFile(filename) self.setupDeck() def setRandomDeckFromColors(self, colors): self.deck.randomFromColors(colors) self.setupDeck() def setupDeck(self): self.updateDeckSize() self.btnDeck.setModel(self.deck) self.connect(self.deck, SIGNAL('rowsInserted(QModelIndex,int,int)'), self.updateDeckSize) self.connect(self.deck, SIGNAL('rowsRemoved(QModelIndex,int,int)'), self.updateDeckSize) if self.gameType is utilities.kGameTypeCommander: commanderCard = self.deck.removeCommanderFromDeck() if commanderCard is not None: self.lblCommander.setPixmap(commanderCard.pixmap()) def updateDeckSize(self, ignored1=None,ignored2=None,ignored3=None): self.lblDeckSize.setText("%d Cards in Deck" % (len(self.deck.list))) def enlargeLand(self, index): self.gameDialog.enlargeCard(self.landsModel.list[index.row()]) def enlargeCreature(self, index): self.gameDialog.enlargeCard(self.creaturesModel.list[index.row()]) def untapAll(self): self.creaturesModel.untapAll() self.landsModel.untapAll() def displayDeckMenu(self, pt): menu = QMenu() menu.addAction("Shuffle", self.deck.shuffle) menu.addAction("View Library", self.btnDeck.viewContents) menu.addAction("Reveal top card") # TODO: Implement def millFunction(number): def millCards(): for i in range(number): card = self.deck.list[-1] self.deck.removeItem(card) self.graveyardModel.addItem(card,0) return millCards millSubmenu = menu.addMenu("Mill") millSubmenu.addAction("Mill 1", millFunction(1)) millSubmenu.addAction("Mill 2", millFunction(2)) millSubmenu.addAction("Mill 3", millFunction(3)) millSubmenu.addAction("Mill 5", millFunction(5)) menu.exec_(self.btnDeck.mapToGlobal(pt)) def displayGraveyardMenu(self, pt): menu = QMenu() menu.addAction("View Graveyard", self.btnGraveyard.viewContents) if self.controllable: menu.addAction("Exile All") #TODO: Implement menu.exec_(self.btnGraveyard.mapToGlobal(pt)) def displayDeckDragAndDropMenu(self): print "Displaying menu" menu = QMenu() menu.addAction("Send to top") menu.addAction("Send to botton") result = menu.exec_(QCursor.pos()) if result.text() == "Send to top": return len(self.deck.list) else: return 0 # Send to bottom def askToAddToken(self): picker = QItemPicker(self, self.addToken, QTokenListModel(self), "Token") picker.show() def addToken(self, filename): card = QCard('tokens',filename) self.creaturesModel.addItem(card) def displayExile(self): from PyQt4.QtGui import QListView, QAbstractItemView, QPushButton, QVBoxLayout, QLabel from PyQt4.QtCore import QSize from util import utilities windowSize = self.window().frameSize() self.viewer = QWidget(self.window()) self.viewer.move(10,10) self.viewer.resize(QSize(windowSize.width()-(25+utilities.bigCardSize[0]),275)) lvViewer = QListView(self.viewer) lvViewer.setModel(self.model) lvViewer.setDragEnabled(True) lvViewer.setHorizontalScrollMode(QAbstractItemView.ScrollPerPixel) lvViewer.setFlow(QListView.LeftToRight) lvViewer.setFocus() self.connect(lvViewer, SIGNAL('clicked(QModelIndex)'), self.enlarge) button = QPushButton("Close", self.viewer) self.connect(button,SIGNAL('clicked()'),self.hideViewer) layout = QVBoxLayout(self) layout.addWidget(QLabel("I'm sorry this is so ugly.",self.viewer)) layout.addWidget(lvViewer) layout.addWidget(button) self.viewer.setLayout(layout) self.viewer.show() ################################## #### Networking Methods ########## #### Called by QPTG ########## ################################## def addCardTo(self, pickledCard, zone, position): # card = pickle.loads(pickledCard) card = QCard.unserializeCard(pickledCard) if int(zone) is Networking.QGameClient.HAND: self.piPlayerInfo.setHandSize(self.piPlayerInfo.handSize()+1) if int(zone) is Networking.QGameClient.DECK: self.piPlayerInfo.setDeckSize(self.piPlayerInfo.deckSize()+1) if int(zone) is Networking.QGameClient.EXILE: self.exileModel.addItem(card, int(position)) if int(zone) is Networking.QGameClient.GRAVEYARD: self.graveyardModel.addItem(card, int(position)) if int(zone) is Networking.QGameClient.CREATURES: self.creaturesModel.addItem(card, int(position)) if int(zone) is Networking.QGameClient.LANDS: self.landsModel.addItem(card, int(position)) def removeCardFrom(self, zone, position): if int(zone) is Networking.QGameClient.HAND: self.piPlayerInfo.setHandSize(self.piPlayerInfo.handSize()-1) if int(zone) is Networking.QGameClient.DECK: self.piPlayerInfo.setDeckSize(self.piPlayerInfo.deckSize()-1) if int(zone) is Networking.QGameClient.EXILE: self.exileModel.removeItem(self.exileModel.list[int(position)]) if int(zone) is Networking.QGameClient.GRAVEYARD: self.graveyardModel.removeItem(self.graveyardModel.list[int(position)]) if int(zone) is Networking.QGameClient.CREATURES: self.creaturesModel.removeItem(self.creaturesModel.list[int(position)]) if int(zone) is Networking.QGameClient.LANDS: self.landsModel.removeItem(self.landsModel.list[int(position)]) def setCardTo(self, pickledCard, zone, position): card = QCard.unserializeCard(pickledCard) if int(zone) is Networking.QGameClient.EXILE: self.exileModel.setItem(card, int(position)) if int(zone) is Networking.QGameClient.GRAVEYARD: self.graveyardModel.setItem(card, int(position)) if int(zone) is Networking.QGameClient.CREATURES: self.creaturesModel.setItem(card, int(position)) if int(zone) is Networking.QGameClient.LANDS: self.landsModel.setItem(card, int(position))