Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何移动pyautogui.prompt()?_Python_Pyautogui - Fatal编程技术网

Python 如何移动pyautogui.prompt()?

Python 如何移动pyautogui.prompt()?,python,pyautogui,Python,Pyautogui,调用pyautogui.prompt()时,它会显示一个消息框,并且始终位于同一位置。那个盒子里有我需要看的图片,所以我可以写正确的号码。我需要移动盒子或使其不可见,或使其最小化或使其失去焦点 问题是,在显示消息框时或之后,您无法执行代码。pyautogui.prompt的编码如下:pyautogui.prompt(text='',title='',default='',root=None,timeout=None)。我知道每个论点的作用,除了根。根参数不接受布尔值、整数、列表、字符串、点或元组

调用
pyautogui.prompt()
时,它会显示一个消息框,并且始终位于同一位置。那个盒子里有我需要看的图片,所以我可以写正确的号码。我需要移动盒子或使其不可见,或使其最小化或使其失去焦点

问题是,在显示消息框时或之后,您无法执行代码。pyautogui.prompt的编码如下:
pyautogui.prompt(text='',title='',default='',root=None,timeout=None)
。我知道每个论点的作用,除了根。根参数不接受布尔值、整数、列表、字符串、点或元组。它显示一条错误消息:
AttributeError:“tuple”对象没有属性“draw”
,如果您将布尔值、整数、列表、字符串、点或tuple放入其中

root用户只接受
pyautogui.moveTo
pyautogui.dragTo
和其他鼠标命令。它们不是很有用,因为它们在框出现之前执行。这是我的密码:

import pyautogui

selected_picture = int(pyautogui.prompt('Please write which picture to click on.',
                                        'Select picture'))

if selected_picture == 1:
   pyautogui.click(500,270)
if selected_picture == 2:
    pyautogui.click(700,270)
if selected_picture == 3:
    pyautogui.click(900,270)

是的,我需要使用
pyautogui.prompt
或其他一些消息框来完成。原始文档甚至没有提到root或timeout属性,我在任何地方都找不到这些信息。我试着用tkinter做些什么,但我不知道它能做什么。

我找不到移动提示符的方法,所以我做了一些更简单的事情。我只是用空闲时间

import pyautogui

pyautogui.hotkey('alt','shift')
selected_picture = input()
pyautogui.hotkey('alt','shift')

if selected_picture == 1:
   pyautogui.click(500,270)
if selected_picture == 2:
    pyautogui.click(700,270)
if selected_picture == 3:
    pyautogui.click(900,270)

我不知道您是想更改窗口的显示位置,还是想在它出现后移动它。如果您只想更改默认窗口位置,可以通过导入
pymsgbox
并更改其
rootWindowPosition
值(默认值为
“+300+200”
)来完成,然后您在其后放置的每个消息框都将显示在新位置

import pyautogui as pag
import pymsgbox

pag.prompt(text="300,200")  # appears at (300, 200)
pymsgbox.rootWindowPosition = "+500+500"
pag.prompt(text="500,500")  # appears at (500, 500)

您可以将
root
参数设置为一个实例(并调用其
.geometry()
方法将其定位在您想要的位置,然后再将其传递给
pyautogui.prompt()
)。@martineau我试图将
tkinter.Tk().geometry()传递给
root
。它显示了两个窗口。一个窗口来自
prompt
,另一个窗口来自
tkinter
。这不是我建议的,一般来说,在
tkinter
应用程序中,您不应该多次调用
Tk()
pyautogui
可能会自动执行)。