Beispiel #1
0
 def layout(self):
     """
 @return  QGridLayout not None
 """
     if not self._layout:
         self._layout = QtWidgets.QGridLayout()
     return self._layout
Beispiel #2
0
    def _createUi(self, q, readonly):

        layout = QtWidgets.QVBoxLayout()

        # Header
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.searchEdit)
        row.addWidget(self.searchLabel)
        row.addWidget(self.searchButton)
        row.addWidget(self.pasteButton)
        layout.addLayout(row)

        # Site
        grid = QtWidgets.QGridLayout()
        r = c = 0
        grid.addWidget(self.trailersButton, r, c)
        c += 1
        grid.addWidget(self.scapeButton, r, c)
        c += 1
        grid.addWidget(self.holysealButton, r, c)
        c += 1
        grid.addWidget(self.freemButton, r, c)

        r += 1
        c = 0
        grid.addWidget(self.getchuButton, r, c)
        c += 1
        grid.addWidget(self.melonButton, r, c)
        c += 1
        grid.addWidget(self.gyuttoButton, r, c)
        c += 1
        grid.addWidget(self.digiketButton, r, c)
        c += 1
        grid.addWidget(self.dmmButton, r, c)
        c += 1
        grid.addWidget(self.dlsiteButton, r, c)

        r += 1
        c = 0
        grid.addWidget(self.amazonButton, r, c)
        c += 1
        grid.addWidget(self.steamButton, r, c)

        layout.addLayout(grid)

        # Body
        layout.addWidget(self.modelView)

        # Footer
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.filterEdit)
        row.addWidget(self.filterLabel)
        row.addWidget(self.browseButton)
        if not readonly:
            row.addWidget(self.saveButton)
        layout.addLayout(row)

        q.setLayout(layout)
Beispiel #3
0
  def _createUi(self, q):
    grid = QtWidgets.QGridLayout()
    grid.setHorizontalSpacing(0)
    grid.setVerticalSpacing(0)

    # These keys must be consistent with pyhk

    KEYBOARD  = (
      ('Esc',  'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12'), #'Escape'
      ('`',    '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 'Back'),
      ('Cap',  'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '[', ']', '\\'),
      (None,   'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', "'"), # 'Enter',
      (None,   'Z', 'X', 'C', 'V', 'B', 'N', 'M', ',', '.', '/'),
      #('Up', 'Down', 'Left', 'Right'),
    )

    r = 0
    for keys in KEYBOARD:
      for col,key in enumerate(keys):
        if key:
          btn = self.createKeyButton(key)
          grid.addWidget(btn, r, col)
      r += 1

    WIDE_COL = 2

    KEYBOARD2  = (
      ('Shift', 'Ctrl', 'Alt'), # 'Space'
      ('Insert', 'Delete', 'Home', 'End', 'PageUp', 'PageDown'),
      #('mouse left', 'mouse middle', 'mouse right'),
    )
    for keys in KEYBOARD2:
      for i,key in enumerate(keys):
        col = i * WIDE_COL
        if key:
          btn = self.createKeyButton(key)
          grid.addWidget(btn, r, col, 1, WIDE_COL)
      r += 1

    layout = QtWidgets.QVBoxLayout()
    layout.addLayout(grid)

    row = QtWidgets.QHBoxLayout()
    row.addStretch()
    row.addWidget(self.delButton)
    row.addWidget(self.cancelButton)
    row.addWidget(self.saveButton)
    layout.addLayout(row)

    #buttonBox = QtWidgets.QDialogButtonBox()
    #buttonBox.addButton(self.delButton, buttonBox.ResetRole)
    #buttonBox.addButton(self.cancelButton, buttonBox.RejectRole)
    #buttonBox.addButton(self.saveButton, buttonBox.AcceptRole)
    #layout.addWidget(buttonBox)

    q.setLayout(layout)

    shortcut('ctrl+s', self.save, parent=q)
Beispiel #4
0
  def __init__(self, q):
    self.tokenId = 0 # long

    self.rows = [] # [{'name':unicode, 'yomi':unicode, 'info':unicode, 'nameButton':QPushButton, 'yomiButton':QPushButton, 'nameTtsButton':QPushButton, 'nameEdit':QLabel, 'yomiEdit':QLabel, 'infoEdit':QLabel}]
    self.visibleRowCount = 0 # int

    self.grid = QtWidgets.QGridLayout()

    self._createLayout(q)
Beispiel #5
0
  def __init__(self, wiz):
    super(SelectWindowPage, self).__init__(wiz)
    self.setTitle(my.tr("Select game window"))

    introLabel = QtWidgets.QLabel(my.tr(
      "Press START and  CLICK the game window, or press the STOP button to cancel."
    ))
    introLabel.setWordWrap(True)

    self._picker = winpicker.WindowPicker(self)
    self._picker.windowClicked.connect(self._onWindowClicked)
    wiz.visibleChanged.connect(self._onVisibleChanged)

    self._windowEdit = QtWidgets.QLineEdit()
    self._windowEdit.setReadOnly(True)
    self._windowEdit.setPlaceholderText(my.tr("Not found, or not a game window"))
    self._windowEdit.setToolTip(my.tr("Game window"))
    windowLabel = QtWidgets.QLabel(my.tr("Game window") + ":")
    windowLabel.setBuddy(self._windowEdit)

    self._nameEdit = QtWidgets.QLineEdit()
    self._nameEdit.setReadOnly(True)
    self._nameEdit.setPlaceholderText(tr_("Not found"))
    self._nameEdit.setToolTip(tr_("Window title"))
    nameLabel = QtWidgets.QLabel("=> " + tr_("Window title") + ":")
    nameLabel.setBuddy(self._nameEdit)

    self._startButton = QtWidgets.QPushButton("\n\n" + tr_("START") + "\n\n")
    self._startButton.clicked.connect(self._start)
    skqss.class_(self._startButton, 'btn btn-primary')

    self._stopButton = QtWidgets.QPushButton("\n\n" + tr_("STOP") + "\n\n")
    self._stopButton.clicked.connect(self._stop)
    skqss.class_(self._stopButton, 'btn btn-danger')

    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(introLabel)
    buttons = QtWidgets.QHBoxLayout()
    buttons.addWidget(self._startButton)
    buttons.addWidget(self._stopButton)
    buttons.setContentsMargins(10,10,10,10)
    layout.addLayout(buttons)

    grid = QtWidgets.QGridLayout()
    # 0
    grid.addWidget(windowLabel, 0, 0)
    grid.addWidget(self._windowEdit, 0, 1)
    # 1
    grid.addWidget(nameLabel)
    grid.addWidget(self._nameEdit)

    layout.addLayout(grid)
    self.setLayout(layout)
Beispiel #6
0
    def _createUi(self, q):
        #url = "http://en.wikipedia.org/wiki/Regular_expression"
        url = "http://www.regular-expressions.info/lookaround.html"
        self.textEdit.appendHtml(
            """You can use this tester to play with the regular expression
(<a href="%s">%s</a>) used in the Shared Dictionary.
<br/><br/>

For example, "regular(?= exp)" will match all "regular" before " exp".
""" % (url, url))

        self.patternEdit.setText("regular(?= exp)")
        self.replaceEdit.setText("HELLO WORLD")

        for sig in (
                self.textEdit.textChanged,
                self.patternEdit.textChanged,
                self.replaceEdit.textChanged,
                self.regexCheckBox.toggled,
                self.icaseCheckBox.toggled,
        ):
            sig.connect(self._refresh)

        layout = QtWidgets.QVBoxLayout()

        grid = QtWidgets.QGridLayout()

        # 0
        grid.addWidget(create_label(tr_("Pattern")), 0, 0)
        grid.addWidget(self.patternEdit, 0, 1)

        # 1
        grid.addWidget(create_label(tr_("Translation")))
        grid.addWidget(self.replaceEdit)

        # 2
        grid.addWidget(create_label(tr_("Status")))
        grid.addWidget(self.messageEdit)

        layout.addLayout(grid)

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.regexCheckBox)
        row.addWidget(self.icaseCheckBox)
        layout.addLayout(row)

        splitter = QtWidgets.QSplitter(Qt.Vertical)
        splitter.addWidget(self.textEdit)
        splitter.addWidget(self.textView)
        layout.addWidget(splitter)
        q.setLayout(layout)
Beispiel #7
0
  def _createUi(self, q):
    self.edit = QtWidgets.QLineEdit()
    skqss.class_(self.edit, 'normal')

    grid = QtWidgets.QGridLayout()
    r = 0
    self.updateCommentButton = QtWidgets.QRadioButton(mytr_("Update reason"))
    self.updateCommentButton.setChecked(True)
    self.commentButton = QtWidgets.QRadioButton(tr_("Comment"))
    g = QtWidgets.QButtonGroup(q)
    g.addButton(self.updateCommentButton)
    g.addButton(self.commentButton)
    grid.addWidget(create_label(tr_("Property")), r, 0)
    for i,b in enumerate(g.buttons()):
      grid.addWidget(b, r, i+1)

    r += 1
    self.appendButton = QtWidgets.QRadioButton(tr_("Append"))
    self.appendButton.setChecked(True)
    self.overwriteButton = QtWidgets.QRadioButton(tr_("Overwrite"))
    g = QtWidgets.QButtonGroup(q)
    g.addButton(self.appendButton)
    g.addButton(self.overwriteButton)
    grid.addWidget(create_label(tr_("Method")), r, 0)
    for i,b in enumerate(g.buttons()):
      grid.addWidget(b, r, i+1)

    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(self.edit)

    optionGroup = QtWidgets.QGroupBox(tr_("Option"))
    optionGroup.setLayout(grid)
    layout.addWidget(optionGroup)

    buttonBox = QtWidgets.QDialogButtonBox(
        QtWidgets.QDialogButtonBox.Ok|
        QtWidgets.QDialogButtonBox.Cancel)
    layout.addWidget(buttonBox)
    buttonBox.accepted.connect(q.accept)
    buttonBox.rejected.connect(q.reject)

    okButton = buttonBox.button(buttonBox.Ok)
    okButton.setDefault(True)
    skqss.class_(okButton, 'btn btn-primary')
    #cancelButton = buttonBox.button(buttonBox.Cancel)

    q.setLayout(layout)
Beispiel #8
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()

        # Options
        grid = QtWidgets.QGridLayout()
        r = 0

        grid.addWidget(create_label("From"), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.sourceLanguageEdit)
        row.addWidget(
            self._createInfoLabel(
                my.tr("should always be Japanese for a Japanese game")))
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label("To"), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.targetLanguageEdit)
        row.addWidget(
            self._createInfoLabel(my.tr("target language to translate to")))
        grid.addLayout(row, r, 1)
        r += 1
        r += 1

        grid.addWidget(create_label(tr_("Type")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.typeEdit)
        row.addWidget(self.typeLabel)
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Context")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.contextEdit)
        row.addWidget(
            self._createInfoLabel(my.tr("only enable under selected context")))
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Translator")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.hostEdit)
        row.addWidget(
            self._createInfoLabel(
                my.tr("only enable for selected translator")))
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Options")), r, 0)
        grid.addWidget(self.specialButton, r, 1)
        r += 1

        grid.addWidget(self.regexButton, r, 1)
        r += 1

        grid.addWidget(self.phraseButton, r, 1)
        r += 1

        grid.addWidget(self.icaseButton, r, 1)
        r += 1

        #grid.addWidget(self.syntaxButton, r, 1)
        #r += 1

        grid.addWidget(self.privateButton, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Pattern")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.patternEdit)
        row.addWidget(self.patternTtsButton)
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Kanji")), r, 0)
        grid.addWidget(self.kanjiEdit, r, 1)  # span for two rows
        r += 1

        grid.addWidget(create_label(tr_("Priority")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.priorityEdit)
        row.addWidget(self.priorityLabel)
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Translation")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.textEdit)
        row.addWidget(self.textTtsButton)
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(mytr_("Yomigana")), r, 0)
        grid.addWidget(self.yomiEdit, r, 1)  # span for two rows
        r += 1

        grid.addWidget(create_label(mytr_("Ruby")), r, 0)
        grid.addWidget(self.rubyEdit, r, 1)  # span for two rows
        r += 1

        grid.addWidget(create_label(tr_("Role")), r, 0)
        grid.addWidget(self.roleEdit, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Comment")), r, 0)
        grid.addWidget(self.commentEdit, r, 1)
        r += 1

        layout.addLayout(grid)

        # Footer
        layout.addWidget(self.statusLabel)

        row = QtWidgets.QHBoxLayout()
        row.addStretch()
        row.addWidget(self.helpButton)
        row.addWidget(self.cancelButton)
        row.addWidget(self.saveButton)
        layout.addLayout(row)

        q.setLayout(layout)
Beispiel #9
0
  def threadLayout(self): return QtWidgets.QGridLayout()

  @memoizedproperty
Beispiel #10
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.translateButton)
        row.addWidget(self.pasteButton)
        row.addWidget(self.speakButton)
        row.addWidget(self.translatorEdit)
        row.addWidget(self.fromLanguageEdit)
        row.addWidget(QtWidgets.QLabel(_RIGHTARROW))
        row.addWidget(self.toLanguageEdit)

        row.addWidget(QtWidgets.QLabel("("))
        row.addWidget(self.translatorLabel)
        #row.addWidget(QtWidgets.QLabel(":"))
        row.addWidget(self.fromLanguageLabel)
        row.addWidget(QtWidgets.QLabel(_RIGHTARROW))
        row.addWidget(self.toLanguageLabel)
        row.addWidget(QtWidgets.QLabel(")"))
        #row.addWidget(QtWidgets.QLabel(my.tr("Current game") + ":"))
        #row.addWidget(QtWidgets.QLabel("#"))
        row.addWidget(self.gameLabel)
        row.addStretch()
        row.addWidget(self.markButton)
        layout.addLayout(row)

        # First row
        grid = QtWidgets.QGridLayout()
        r = 0
        c = 0
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.textLabel)
        cell.addWidget(self.textEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.gameTextButton)
        row.addWidget(self.gameTextLabel)
        row.addStretch()
        cell.addLayout(row)
        cell.addWidget(self.gameTextEdit)
        grid.addLayout(cell, r, c)

        c += 2  # skip two columns

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.normalizedTextButton)
        row.addWidget(self.normalizedTextLabel)
        row.addStretch()
        cell.addLayout(row)
        cell.addWidget(self.normalizedTextEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.inputTextLabel)
        cell.addWidget(self.inputTextEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.encodedTextLabel)
        cell.addWidget(self.encodedTextEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.delegateTextLabel)
        cell.addWidget(self.delegateTextEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.splitTextLabel)
        cell.addWidget(self.splitTextEdit)
        grid.addLayout(cell, r, c)

        # Second row

        r += 1
        c = 0
        label = QtWidgets.QLabel(_DOWNARROW)
        label.setAlignment(Qt.AlignCenter)
        grid.addWidget(label, r, c)

        c = 6 * 2 - 2  # totally six columns
        label = QtWidgets.QLabel(_DOWNARROW)
        label.setAlignment(Qt.AlignCenter)
        grid.addWidget(label, r, c)

        # Third row
        r += 1
        c = 0
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.directTranslationLabel)
        cell.addWidget(self.directTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(self.equalLabel, r, c)

        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.finalTranslationLabel)
        cell.addWidget(self.finalTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.outputTranslationLabel)
        cell.addWidget(self.outputTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.decodedTranslationLabel)
        cell.addWidget(self.decodedTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.outputSyntacticTranslationLabel)
        cell.addWidget(self.outputSyntacticTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.delegateTranslationLabel)
        cell.addWidget(self.delegateTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.jointTranslationLabel)
        cell.addWidget(self.jointTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.splitTranslationLabel)
        cell.addWidget(self.splitTranslationEdit)
        grid.addLayout(cell, r, c)

        layout.addLayout(grid)
        # Footer
        layout.addWidget(
            QtWidgets.QLabel(
                "%s: %s" %
                (tr_("Note"),
                 my.
                 tr("Procedures marked as {0} would utilize Shared Dictionary."
                    ).format(_TERM_STAR))))
        #my.tr("Procedures marked as {0} behave differently for different user languages.").format(_LANGUAGE_STAR))))))

        q.setLayout(layout)
Beispiel #11
0
 def threadLayout(self):
     return QtWidgets.QGridLayout()
Beispiel #12
0
  def __init__(self, wiz):
    super(ConfirmGamePage, self).__init__(wiz)
    self.setTitle(my.tr("Confirm the game information"))

    wiz.profile().processUpdated.connect(self._refresh)

    introLabel = QtWidgets.QLabel(my.tr("Is this the visual novel you would like to play?"))
    introLabel.setWordWrap(True)

    self._windowEdit = QtWidgets.QLineEdit()
    self._windowEdit.setReadOnly(True)
    self._windowEdit.setPlaceholderText(tr_("Not found"))
    self._windowEdit.setToolTip(my.tr("Process window"))
    windowLabel = QtWidgets.QLabel(my.tr("Active window") + ":")
    windowLabel.setBuddy(self._windowEdit)

    self._processEdit = QtWidgets.QLineEdit()
    self._processEdit.setReadOnly(True)
    self._processEdit.setPlaceholderText(tr_("Not found"))
    self._processEdit.setToolTip(my.tr("Running process"))
    processLabel = QtWidgets.QLabel(my.tr("Running process") + ":")
    processLabel.setBuddy(self._processEdit)

    self._pnameEdit = QtWidgets.QLineEdit()
    self._pnameEdit.setReadOnly(True)
    self._pnameEdit.setPlaceholderText(tr_("Not found"))
    self._pnameEdit.setToolTip(my.tr("Program name"))
    pnameLabel = QtWidgets.QLabel("=> " + my.tr("Process name") + ":")
    pnameLabel.setBuddy(self._pnameEdit)

    self._wnameEdit = QtWidgets.QLineEdit()
    self._wnameEdit.setReadOnly(True)
    self._wnameEdit.setPlaceholderText(tr_("Not found"))
    self._wnameEdit.setToolTip(tr_("Window title"))
    wnameLabel = QtWidgets.QLabel("=> " + tr_("Window title") + ":")
    wnameLabel.setBuddy(self._wnameEdit)

    self._pathEdit = QtWidgets.QLineEdit()
    self._pathEdit.setReadOnly(True)
    self._pathEdit.setPlaceholderText(tr_("Not found"))
    self._pathEdit.setToolTip(my.tr("Executable location") + ":")
    pathLabel = QtWidgets.QLabel(tr_("Location"))
    pathLabel.setBuddy(self._pathEdit)

    self._iconButton = QtWidgets.QPushButton()
    self._iconButton.setToolTip(tr_("Icon"))
    skqss.class_(self._iconButton, 'transp')

    refreshButton = QtWidgets.QPushButton(tr_("Refresh"))
    refreshButton.clicked.connect(self._updateProcess)
    skqss.class_(refreshButton, 'btn btn-success')

    clearProcessButton = QtWidgets.QPushButton(tr_("Clear"))
    clearProcessButton.clicked.connect(self._clearProcess)
    skqss.class_(clearProcessButton, 'btn btn-danger')

    clearWindowButton = QtWidgets.QPushButton(tr_("Clear"))
    clearWindowButton.clicked.connect(self._clearWindow)
    skqss.class_(clearWindowButton, 'btn btn-danger')

    grid = QtWidgets.QGridLayout()
    r=0; grid.addWidget(introLabel, r, 0, 1, 2)
    r+=1; grid.addWidget(pathLabel, r, 0)
    grid.addWidget(self._pathEdit, r, 1)
    grid.addWidget(self._iconButton, r, 2)

    r+=1; grid.addWidget(processLabel, r, 0)
    grid.addWidget(self._processEdit, r, 1)
    grid.addWidget(clearProcessButton, r, 2)

    r+=1; grid.addWidget(pnameLabel, r, 0)
    grid.addWidget(self._pnameEdit, r, 1)

    r+=1; grid.addWidget(windowLabel, r, 0)
    grid.addWidget(self._windowEdit, r, 1)

    r+=1; grid.addWidget(wnameLabel, r, 0)
    grid.addWidget(self._wnameEdit, r, 1)
    grid.addWidget(clearWindowButton, r, 2)

    r+=1; grid.addWidget(refreshButton, r, 2)
    self.setLayout(grid)