예제 #1
0
    def test_30(self):

        # dialog construction, cleanup, object dependency ...

        mw = None

        dialog = pya.QDialog(mw)
        label = pya.QLabel(dialog)
        layout = pya.QHBoxLayout(dialog)
        layout.addWidget(label)

        dialog = pya.QDialog(mw)
        label = pya.QLabel(dialog)
        layout = pya.QHBoxLayout(dialog)
        layout.addWidget(label)
        label.destroy()

        dialog = pya.QDialog(mw)
        label = pya.QLabel(dialog)
        layout = pya.QHBoxLayout(dialog)
        layout.addWidget(label)
        layout.destroy()

        dialog = pya.QDialog(mw)
        label = pya.QLabel(dialog)
        layout = pya.QHBoxLayout(dialog)
        layout.addWidget(label)
        dialog.destroy()

        dialog = pya.QDialog(mw)
        label = pya.QLabel(dialog)
        layout = pya.QHBoxLayout(dialog)
        layout.addWidget(label)

        dialog = None
        label = None
        layout = None
예제 #2
0
    def settings(self, parent=None):
        if parent is None:
            parent = self
        settingw = pya.QWidget(self)
        vbox = pya.QVBoxLayout(settingw)
        settingw.setLayout(vbox)
        self.settingspath = kgit.settings_path
        self.settings = {}

        scrollarea = pya.QScrollArea(self)
        optionswidget = pya.QWidget(self)
        scrollarea.setWidget(optionswidget)
        scrollarea.setWidgetResizable(True)

        optionvbox = pya.QVBoxLayout(optionswidget)
        categorydict = vars(kgit.settings)

        hbSplitter = pya.QHBoxLayout()
        vboxbuttons = pya.QVBoxLayout()
        vbox.addLayout(hbSplitter)
        hbSplitter.addWidget(scrollarea)
        hbSplitter.addLayout(vboxbuttons)

        resetButton = pya.QPushButton('Restore Defaults', self)
        resetButton.clicked(self.restoreDefaults)
        vboxbuttons.addWidget(resetButton)

        vboxbuttons.addStretch()

        # Repository Settings

        cat = 'Repository'
        groupbox = pya.QGroupBox(cat, self)
        optionvbox.addWidget(groupbox)
        vb = pya.QVBoxLayout(groupbox)
        self.settings['repository'] = {}
        repdic = self.settings['repository']
        repdic['url'] = [
            kgit.settings.repository.url(), kgit.settings.repository.url
        ]
        l = pya.QHBoxLayout()
        le = pya.QLineEdit(repdic['url'][0], self)

        def assignurl(text):
            repdic['url'][0] = text

        le.textChanged = assignurl
        la = pya.QLabel(kgit.settings.repository.url.description, self)
        l.addWidget(le)
        l.addWidget(la)
        vb.addLayout(l)
        l = pya.QHBoxLayout()
        repdic['autoupdate'] = [
            kgit.settings.repository.autoupdate(),
            kgit.settings.repository.autoupdate
        ]
        b = pya.QCheckBox(kgit.settings.repository.autoupdate.description,
                          groupbox)
        if repdic['autoupdate'][0]:
            b.setChecked(True)
        else:
            b.setChecked(False)

        def updateclicked(checked):
            repdic['autoupdate'][0] = checked

        b.toggled = updateclicked
        l.addWidget(b)
        vb.addLayout(l)

        # Log settings

        cat = "Logs"
        groupbox = pya.QGroupBox(cat, self)
        optionvbox.addWidget(groupbox)
        vb = pya.QVBoxLayout(groupbox)
        self.settings['logging'] = {}
        logdic = self.settings['logging']
        logdic['filelvl'] = [
            kgit.settings.logging.logfilelevel.value.index,
            kgit.settings.logging.logfilelevel
        ]
        logdic['streamlvl'] = [
            kgit.settings.logging.logstreamlevel.value.index,
            kgit.settings.logging.logstreamlevel
        ]
        ## File Logging
        v = pya.QComboBox(self)
        l = pya.QHBoxLayout()
        for i in kgit.settings.logging.levels():
            v.addItem(i)
        v.currentIndex = logdic['filelvl'][0]
        vb.addLayout(l)
        l.addWidget(v)
        d = pya.QLabel(kgit.settings.logging.logfilelevel.description, self)

        def logfileindexchanged(index):
            logdic['filelvl'][0] = index

        v.currentIndexChanged = logfileindexchanged
        l.addWidget(d)
        l.addStretch()
        ## Stream Logging
        v = pya.QComboBox(self)
        l = pya.QHBoxLayout()
        for i in kgit.settings.logging.levels():
            v.addItem(i)
        v.currentIndex = logdic['streamlvl'][0]
        vb.addLayout(l)
        l.addWidget(v)
        d = pya.QLabel(kgit.settings.logging.logfilelevel.description, self)

        def logfileindexchanged(index):
            logdic['streamlvl'][0] = index

        v.logfileindexchanged = logfileindexchanged
        l.addWidget(d)
        l.addStretch()
        vbox.addStretch()

        save = pya.QPushButton("Save", self)
        save.clicked = self.save
        abort = pya.QPushButton("Cancel", self)
        abort.clicked = self.abort
        hbox = pya.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addWidget(abort)
        hbox.addStretch()
        hbox.addWidget(save)

        optionvbox.addStretch()

        return settingw
    def __init__(self, parent=None):
        self.settingspath = kppc.settings_path
        self.vbox = pya.QVBoxLayout()
        self.setLayout(self.vbox)
        self.settings = {}
        self.setWindowTitle("KLayoutPhotonicPCells Settings")
        self.setMinimumWidth(300)
        vsize = len(vars(kppc.settings))

        self.scrollarea = pya.QScrollArea(self)
        self.optionswidget = pya.QWidget(self)
        self.scrollarea.setWidget(self.optionswidget)
        self.scrollarea.setWidgetResizable(True)

        #self.vbox.addWidget(self.scrollarea)
        self.optionvbox = pya.QVBoxLayout(self.optionswidget)
        categorydict = vars(kppc.settings)

        hbSplitter = pya.QHBoxLayout()
        vboxbuttons = pya.QVBoxLayout()
        self.vbox.addLayout(hbSplitter)
        hbSplitter.addWidget(self.scrollarea)
        hbSplitter.addLayout(vboxbuttons)

        recompileButton = pya.QPushButton('Recompile', self)
        recompileButton.clicked(self.recompile)
        vboxbuttons.addWidget(recompileButton)

        resetButton = pya.QPushButton('Restore Defaults', self)
        resetButton.clicked(self.restoreDefaults)
        vboxbuttons.addWidget(resetButton)

        vboxbuttons.addStretch()

        for i, cat in enumerate(categorydict.keys()):
            groupbox = pya.QGroupBox(cat, self)
            self.optionvbox.addWidget(groupbox)
            vb = pya.QVBoxLayout(groupbox)
            self.settings[cat] = {}

            settingdict = vars(categorydict[cat])
            for j, setting in enumerate(settingdict):

                if setting[0] == '_':
                    continue

                opt = settingdict[setting]
                desc_str = f"_{setting}_DESC"
                if desc_str in settingdict:
                    desc = settingdict[desc_str]
                else:
                    desc = setting

                if isinstance(opt, bool):
                    v = pya.QCheckBox(desc, self)
                    vb.addWidget(v)
                    v.toggeled = v.setChecked(opt)
                    self.settings[cat][setting] = (
                        v, lambda x: bool(x.checkState.to_i()))
                elif isinstance(opt, int):
                    l = pya.QHBoxLayout()
                    vb.addLayout(l)
                    t = pya.QLabel(desc, self)
                    v = pya.QSpinBox(self)
                    l.addWidget(v)
                    l.addWidget(t)
                    l.addStretch()
                    v.value = opt
                    minset = f"_{setting}_MIN"
                    maxset = f"_{setting}_MAX"
                    if minset in settingdict:
                        v.minimum = settingdict[minset]
                    if maxset in settingdict:
                        v.maximum = settingdict[maxset]
                    self.settings[cat][setting] = (v, lambda x: x.value)
                elif isinstance(opt, list):
                    v = pya.QComboBox(self)
                    l = pya.QHBoxLayout()
                    index = int(opt[0])
                    strs = opt[1:]
                    for i in strs:
                        v.addItem(i)
                    v.currentIndex = index
                    vb.addLayout(l)
                    l.addWidget(v)
                    d = pya.QLabel(desc, self)
                    l.addWidget(d)
                    l.addStretch()
                    self.settings[cat][setting] = (
                        v, lambda x, l=strs: [x.currentIndex] + l)
                else:
                    continue
        self.vbox.addStretch()

        save = pya.QPushButton("Save", self)
        save.clicked = self.save
        abort = pya.QPushButton("Cancel", self)
        abort.clicked = self.abort
        self.hbox = pya.QHBoxLayout()
        self.vbox.addLayout(self.hbox)
        self.hbox.addWidget(abort)
        self.hbox.addStretch()
        self.hbox.addWidget(save)
예제 #4
0
    def __init__(self, parent=None):
        super(ImageToLayout, self).__init__()
        self.setWindowTitle("Image to Layout")

        self.window_width = 800
        self.window_height = 600

        self.resize(self.window_width, self.window_height)

        self.layout = pya.QGridLayout(self)

        self.input_text = pya.QLineEdit(self)
        self.input_text.setAcceptDrops(True)
        self.input_text.setFont(pya.QFont('Times', 15))

        self.input_text.setText("select image:")

        self.file_dialog = pya.QFileDialog(self)
        self.file_dialog.setFont(pya.QFont('Times', 10))

        self.select_file_button = pya.QPushButton("select image", self)
        self.select_file_button.setFont(pya.QFont('Times', 15, pya.QFont.Bold))
        self.select_file_button.clicked(self.select_file_button_clicked)

        self.convert_button = pya.QPushButton("convert to OASIS file", self)
        self.convert_button.setFont(pya.QFont('Times', 15, pya.QFont.Bold))
        self.convert_button.clicked(self.covert_buttion_clicked)

        self.raw_image_label = pya.QLabel()

        self.raw_image_info_label = pya.QLabel("image size:")
        self.raw_image_info_label.setVisible(False)

        self.threshold_text = pya.QLineEdit(self)
        self.threshold_text.setAcceptDrops(True)
        self.threshold_text.setFont(pya.QFont('Times', 15))
        self.threshold_text.setText("set threshold: 0 - 255")

        self.dbu_text = pya.QLineEdit(self)
        self.dbu_text.setAcceptDrops(True)
        self.dbu_text.setFont(pya.QFont('Times', 15))
        self.dbu_text.setText("set DBU: ")

        self.inverse_checkbox = pya.QCheckBox("inverse", self)
        self.inverse_checkbox.setFont(pya.QFont('Times', 15))

        self.progress_bar = pya.QProgressBar(self)

        self.layout.addWidget(self.input_text, 0, 0)
        self.layout.addWidget(self.select_file_button, 0, 1)
        self.layout.addWidget(self.raw_image_label, 1, 0, 3, 1)

        self.layout.addWidget(self.threshold_text, 1, 1)
        self.layout.addWidget(self.inverse_checkbox, 2, 1)
        self.layout.addWidget(self.dbu_text, 3, 1)

        self.layout.addWidget(self.raw_image_info_label, 4, 0)

        self.layout.addWidget(self.progress_bar, 5, 0)
        self.layout.addWidget(self.convert_button, 5, 1)

        self.setLayout(self.layout)
예제 #5
0
파일: menu.py 프로젝트: joamatab/kgit
    def settings(self, parent=None):
        if parent is None:
            parent = self
        settingw = pya.QWidget(self)
        vbox = pya.QVBoxLayout(settingw)
        settingw.setLayout(vbox)
        self.settingspath = kgit.settings_path
        self.settings = {}

        scrollarea = pya.QScrollArea(self)
        optionswidget = pya.QWidget(self)
        scrollarea.setWidget(optionswidget)
        scrollarea.setWidgetResizable(True)

        optionvbox = pya.QVBoxLayout(optionswidget)
        categorydict = vars(kgit.settings)

        hbSplitter = pya.QHBoxLayout()
        vboxbuttons = pya.QVBoxLayout()
        vbox.addLayout(hbSplitter)
        hbSplitter.addWidget(scrollarea)
        hbSplitter.addLayout(vboxbuttons)

        resetButton = pya.QPushButton('Restore Defaults', self)
        resetButton.clicked(self.restoreDefaults)
        vboxbuttons.addWidget(resetButton)

        vboxbuttons.addStretch()

        # General Settings

        cat = 'Repository'
        groupbox = pya.QGroupBox(cat, self)
        optionvbox.addWidget(groupbox)
        vb = pya.QVBoxLayout(groupbox)
        self.settings['repository'] = {}
        repdic = self.settings['repository']
        repdic['url'] = (kgit.settings.repository.url(),
                         kgit.settings.repository.url)
        l = pya.QHBoxLayout()
        le = pya.QLineEdit(repdic['url'][0], self)
        la = pya.QLabel(kgit.settings.repository.url.description, self)
        l.addWidget(le)
        l.addWidget(la)
        vb.addLayout(l)

        # Log settings

        cat = "Logs"
        groupbox = pya.QGroupBox(cat, self)
        optionvbox.addWidget(groupbox)
        vb = pya.QVBoxLayout(groupbox)
        self.settings['logging'] = {}
        logdic = self.settings['logging']
        logdic['filelvl'] = (kgit.settings.logging.logfilelevel.value.index,
                             kgit.settings.logging.logfilelevel)
        logdic['streamlvl'] = (
            kgit.settings.logging.logstreamlevel.value.index,
            kgit.settings.logging.logstreamlevel)
        ## File Logging
        v = pya.QComboBox(self)
        l = pya.QHBoxLayout()
        for i in kgit.settings.logging.levels():
            v.addItem(i)
        v.currentIndex = logdic['filelvl'][0]
        vb.addLayout(l)
        l.addWidget(v)
        d = pya.QLabel(kgit.settings.logging.logfilelevel.description, self)
        l.addWidget(d)
        l.addStretch()
        ## Stream Logging
        v = pya.QComboBox(self)
        l = pya.QHBoxLayout()
        for i in kgit.settings.logging.levels():
            v.addItem(i)
        v.currentIndex = logdic['streamlvl'][0]
        vb.addLayout(l)
        l.addWidget(v)
        d = pya.QLabel(kgit.settings.logging.logfilelevel.description, self)
        l.addWidget(d)
        l.addStretch()
        vbox.addStretch()

        save = pya.QPushButton("Save", self)
        save.clicked = self.save
        abort = pya.QPushButton("Cancel", self)
        abort.clicked = self.abort
        hbox = pya.QHBoxLayout()
        vbox.addLayout(hbox)
        hbox.addWidget(abort)
        hbox.addStretch()
        hbox.addWidget(save)

        optionvbox.addStretch()

        return settingw