Note that there are some explanatory texts on larger screens.

plurals
  1. POAttributeError: 'QTextEdit' object has no attribute 'text'
    primarykey
    data
    text
    <p>Sometimes I need to make multiple copies of code with incrementing numbers. In a form I'm coding, I need to make upwards of 12 checkboxes, each of which requires the following code:</p> <pre><code> self.checkBox1 = QtGui.QCheckBox() self.checkBox1.setGeometry(QtCore.QRect(20, 20, 70, 17)) self.checkBox1.setObjectName(_fromUtf8("checkBox1")) </code></pre> <p>The script below enables me to avoid the boring task of manually changing the numbers for each checkbox. I just copy the 3 lines above into the windows clipboard, and then... I insert "checkBox" into the first field in the form, "1" into the second field, and 12 into the third field. When I hit the "ok" button, the 12 sequentially numbered copies of the 3 lines appear in the 4th field in the form. I hope this provides some help to other people. Marc</p> <p>Here's my code:</p> <pre><code> # -*- coding: latin-1 -*- """ duplicate_text_with_incrementing_nos_for_programming_and_paste_to_clipboard.py Harvest text from clipboard and run functions below, and then paste back to clipboard """ import sys from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4.QtCore import (Qt, SIGNAL) from PyQt4.QtGui import (QApplication, QDialog, QHBoxLayout, QLabel, QPushButton) class Form(QDialog): def __init__(self, parent=None): super(Form, self).__init__(parent) self.initUI() def initUI(self): okButton01 = QtGui.QPushButton("OK") cancelButton01 = QtGui.QPushButton("Cancel") okButton01.clicked.connect(self.fn_okButton01_clicked) cancelButton01.clicked.connect(QtCore.QCoreApplication.instance().quit) self.cancelButton01 = cancelButton01 prefix_label = QtGui.QLabel('Prefix') digit_label = QtGui.QLabel('Digit') iterations_label = QtGui.QLabel('Iterations') clip_label = QtGui.QLabel('Clip') prefixEdit = QtGui.QLineEdit() digitEdit = QtGui.QLineEdit() iterationsEdit = QtGui.QLineEdit() reviewEdit = QtGui.QTextEdit() self.prefix_label = prefix_label self.digit_label = digit_label self.iterations_label = iterations_label self.clip_label = clip_label self.prefixEdit = prefixEdit self.digitEdit = digitEdit self.iterationsEdit = iterationsEdit self.reviewEdit = reviewEdit hbox01 = QtGui.QHBoxLayout() hbox01.addWidget(prefix_label) hbox01.addWidget(prefixEdit) hbox01.addWidget(digit_label) hbox01.addWidget(digitEdit) hbox01.addWidget(iterations_label) hbox01.addWidget(iterationsEdit) hbox03 = QtGui.QHBoxLayout() hbox03.addWidget(clip_label) hbox03.addWidget(reviewEdit) self.reviewEdit.setText(fn_getText()) hbox00 = QtGui.QHBoxLayout() hbox00.addStretch(1) hbox00.addWidget(okButton01) hbox00.addWidget(cancelButton01) vbox0 = QtGui.QVBoxLayout() vbox0.addLayout(hbox01) vbox0.addStretch(1) vbox0.addLayout(hbox03) vbox0.addStretch(1) vbox0.addLayout(hbox00) self.setLayout(vbox0) self.setGeometry(300, 300, 600, 300) #class PySide.QtCore.QRectF(left, top, width, height) http://srinikom.github.com/pyside-docs/PySide/QtCore/QRectF.html#PySide.QtCore.QRectF self.setWindowTitle('Duplicate Code Strings W/Increasing Numbers') self.show() def fn_okButton01_clicked(self): prefixEditText = str(self.prefixEdit.text()) digitEditText = str(self.digitEdit.text()) iterationsEditText = str(self.iterationsEdit.text()) nutext = prefixEditText + ' ' + digitEditText + ' ' + iterationsEditText print 'Line 89: nutext = ' + str(nutext) original_clip = self.reviewEdit.toPlainText() # PySide.QtGui.QLineEdit.text(), http://srinikom.github.com/pyside-docs/PySide/QtGui/QLineEdit.html txt2paste2clipbd = fn_duplicate_code_with_increments(texte=str(original_clip), no_of_copies=str(iterationsEditText), string_b4_digits=str(prefixEditText), digits=str(digitEditText)) self.reviewEdit.setPlainText(txt2paste2clipbd) setWinClipText(txt2paste2clipbd) #self.deleteLater() #event.accept() #http://www.qtcentre.org/threads/20895-PyQt4-Want-to-connect-a-window-s-close-button #self.destroy() def formm(): app = QApplication(sys.argv) form = Form() form.show() app.exec_() def fn_getText(): # get text from clipboard win32clipboard.OpenClipboard() text = win32clipboard.GetClipboardData(win32clipboard.CF_TEXT) win32clipboard.CloseClipboard() return text def setWinClipText(aString): # Send text to clipboard import win32clipboard win32clipboard.OpenClipboard() win32clipboard.EmptyClipboard() win32clipboard.SetClipboardText(aString) win32clipboard.CloseClipboard() def fn_duplicate_code_with_increments(texte, no_of_copies, string_b4_digits, digits): """ to do: combine args 2 and 3, and use re module to determine with chars are the digits to increment """ import re import string i = 0 tempclipDup = texte[:] temp_instance = '' accumulator = '' while i &lt;= int(no_of_copies) - 1: i +=1 orig_str = string_b4_digits + str(digits) replact_st = string_b4_digits + str(i) temp_instance = tempclipDup.replace(orig_str, replact_st) if len(accumulator) &gt; 2: accumulator = accumulator + '\n' + temp_instance else: accumulator = temp_instance return accumulator if 1 == 1: import os import sys import subprocess import win32clipboard import win32con fn_operation_log = '' arg_sent_2this_script = '' alternative = 1 if alternative == 1: formm() elif alternative == 2: txt2paste2clipbd = fn_duplicate_code_with_increments(texte=fn_getText(), no_of_copies=3, string_b4_digits='hbox', digits=1) setWinClipText(txt2paste2clipbd) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload