Is there any way to create a copy of a Screen object?

Asked by Zebara

I want to do something like this:
t=copy.deepcopy(s)

Since my code looks like this:

def gScr():
    #Post: get the screen to run on
    numScr = getNumberScreens()
    if(numScr > 1):
        sValid=0
        while(sValid!=1):
            if(sValid==-1):
                popup("Invalid screen number.")
            stemp=input("Please enter the screen number to run this script on (0 = primary screen, 1 = next screen, etc.): ")
            sValid = -1
            if(RepresentsInt(stemp)):
                try:
                    sI= int(stemp)
                    if(sI>= numScr or sI<0):
                        popup("No screen " + sI + " detected.")
                    else:
                        return Screen(sI)
                        sValid = 1
                except Exception, e:
                    print e.__doc__
                    print e.message
    else:
        return Screen(0)

s= essential.gScr()

 #Region area specified
    xReg = find(starImg).getX() - 400
    yReg = find(starImg).getY() - 60
    widthReg = 1200
    heightReg = 600
    t=copy.deepcopy(s)
    t.setRect(xReg, yReg, widthReg, heightReg)

Question information

Language:
English Edit question
Status:
Solved
For:
SikuliX Edit question
Assignee:
No assignee Edit question
Solved by:
RaiMan
Solved:
Last query:
Last reply:
Revision history for this message
RaiMan (raimund-hocke) said :
#1

not clear what your intention is.

Revision history for this message
Best RaiMan (raimund-hocke) said :
#2

it does not make sense, to make a copy of a screen object.
A screen object does not remember anything, that needs a deep copy.

but if you need it for whatever reason, just use
s1 = Screen(n)

where n is a valid screen number (giving an invalid number will silently return Screen(0)).
This will give y a new object.

If you do not know the number and want to replicate an existing screen object:
s1 = Screen(s.getScreen().getID())

Revision history for this message
Zebara (kbrennan56) said :
#3

Thanks RaiMan, that solved my question.

Revision history for this message
Zebara (kbrennan56) said :
#4

I will use s1 = Screen(s.getScreen().getID()). Thanks