A. 【python】拖拽文件的实现
为了方便,我们可以将文件直接拖到QLineEdit或者其他控件中来获取文件路径,这样就不需要实现Button,还要一步步打开文件路径,效率比较低。
实现拖拽文件的步骤如下:
首先我们需要先将控件设置成下图的属性(一般不需要设置,默认是打开的)。
然后新建"MyWidget.py"文件,重写相应控件的类。
最后,在QT Designer中新建"Promote"。
输入类名和头文件名,这里的类名和头文件要和之前新建的.py文件名和重写的类名一致。
重新点击控件,右键选择下图的选项,如果其他同类的控件也需要这个功能,也可设置。
完成以上步骤后,重新加载UI即可。
B. Python怎么像VS一样拖拽控件写GUI程序
搜索一下Visual Tkinter。
这是一个VB6的插件,你用VB6写出界面以后,它可以帮你生成对应Python Tkinter的界面代码。
然后你在这个基础上再加上逻辑代码就行了。
C. 如何运用Python建立手势库
用什么语言不重要。不过python相对其它语言来说,开发速度是一流的。
手势库的格式与内容这个先确定下来。 是用于浏览器的手势 ,还是手机上的手势,或者是你可能做视频的识别的手势, 先明确下来。
然后就可以建立测试用例, 模拟测试算法,显示测试结果。这些算法训练都可以用python来实现。
不过大部分情况下,特别是手机上的手势,都是程序员在脑子里做一下空间想象就做出来的。不用这么复杂。
D. 石头剪刀布的python题怎么写
python3代码如下:
# coding:utf-8
import random
guess_list = ["石头", "剪刀", "布"]
win_combination = [["布", "石头"], ["石头", "剪刀"], ["剪刀", "布"]]
while True:
computer = random.choice(guess_list)
user = input('请输入:石头、剪刀、布 ').strip() #删除首尾的空格
if user not in guess_list:
continue
elif computer == user:
print("平局,再来")
elif [computer, user] in win_combination:
print("你输了,哈哈")
else:
print("你赢了,恭喜")
break
运行结果如下:
平局或输都会继续游戏,直到赢才会结束
E. python拖拽如何显示释放位置
有俩种。1、将鼠标拖拽到任何标签上。
2将dom元素拖拽到指定的坐标处。python实现鼠标拖拽控制功能除了要用到webdriver模块之外,还需要用ActionChains方法才可以。
F. Python怎么使用拖拽文件相关的Windows API
为了满足更多免费用户的便捷使用与操作,超级表格为大家提供了文件夹功能,帮助用户更好的整理和编辑数据。1、新建文件夹的两个方法
①在网站左上角有一个“新建”按钮,点击后,可以新建文件夹。
②也可以直接点击“面包屑”旁边的“+”号按钮新建文件夹。
2、文件以及文件夹的拖拽功能
超级表格实现了类似于windows系统的文件夹拖拽功能,让表格的移动操作变得更加简单流程。
新建文件夹后,将表格拖拽放入文件夹红,例如:将表格【地点表】拖拽放入文件夹【市场部】:
当然,也可以将文件夹拖拽放入文件夹中,例如:将文件夹【市场部】拖拽放入文件夹【公司】:
G. python中touch类和action类的区别
python中touch类和action类的区别是touch的辅助类,主要针对手势操作,比如滑动、长按、拖动等。Action只是针对PC端程序鼠标模拟的一系列操作对H5页面操作时无效的。
H. python selenium drag_and_drop()和drag_and_drop_with_offset()怎么使用
用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains
selenium.webdriver.common.action_chains.ActionChains(driver)
这个类基本能够满足我们所有对鼠标操作的需求。
1.ActionChains基本用法
首先需要了解ActionChains的执行原理,当你调用ActionChains的方法时,不会立即执行,而是会将所有的操作按顺序存放在一个队列里,当你调用perform()方法时,队列中的时间会依次执行。
这种情况下我们可以有两种调用方法:
链式写法
menu = driver.find_element_by_css_selector(".nav")1
2
3
4
分步写法
menu = driver.find_element_by_css_selector(".nav")1
2
3
4
5
6
7
两种写法本质是一样的,ActionChains都会按照顺序执行所有的操作。
2.ActionChains方法列表
click(on_element=None) ——单击鼠标左键
click_and_hold(on_element=None) ——点击鼠标左键,不松开
context_click(on_element=None) ——点击鼠标右键
double_click(on_element=None) ——双击鼠标左键
drag_and_drop(source, target) ——拖拽到某个元素然后松开
drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开
key_down(value, element=None) ——按下某个键盘上的键
key_up(value, element=None) ——松开某个键
move_by_offset(xoffset, yoffset) ——鼠标从当前位置移动到某个坐标
move_to_element(to_element) ——鼠标移动到某个元素
move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置
perform() ——执行链中的所有动作
release(on_element=None) ——在某个元素位置松开鼠标左键
send_keys(*keys_to_send) ——发送某个键到当前焦点的元素
send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素
接下来用示例来详细说明和演示每一个方法的用法:
3.代码示例
1. 点击操作
代码:
结果:
2.鼠标移动
示例代码:
结果
一般很少用位置关系来移动鼠标,如果需要,可参考下面的链接来测量元素位置
3.拖拽
代码:
结果:
一般用坐标定位很少,用上例中的方法1足够了,如果看源码,会发现方法2其实就是方法1中的drag_and_drop()的实现。注意:拖拽使用时注意加等待时间,有时会因为速度太快而失败。
4.按键
模拟按键有多种方法,能用win32api来实现,能用SendKeys来实现,也可以用selenium的WebElement对象的send_keys()方法来实现,这里ActionChains类也提供了几个模拟按键的方法。
代码1:
结果:
示例2:
代码:
结果:
复制粘贴用WebElement< input >.send_keys()也能实现,大家可以试一下,也可以用更底层的方法,同时也是os弹框的处理办法之一的win32api,有兴趣也可以试试SendKeys、keybd_event
I. python canvas 拖拽和移动\事件
"""
draw elastic shapes on a canvas on drag, move on right click;
see canvasDraw_tags*.py for extensions with tags and animation
"""
from tkinter import *
trace = False
class CanvasEventsDemo:
def init (self, parent=None):
canvas = Canvas(width=300, height=300, bg='beige')
canvas.pack()
canvas.bind('<ButtonPress-1>', self.onStart) # click
canvas.bind('<B1-Motion>', self.onGrow) # and drag
canvas.bind('<Double-1>', self.onClear) # delete all
canvas.bind('<ButtonPress-3>', self.onMove) # move latest
self.canvas = canvas
self.drawn = None
self.kinds = [canvas.create_oval, canvas.create_rectangle]
if name == ' main ':
CanvasEventsDemo()
mainloop()
from tkinter import *
def onCanvasClick(event):
print('Got canvas click', event.x, event.y, event.widget)
def onObjectClick(event):
print('Got object click', event.x, event.y, event.widget, end=' ')
print(event.widget.find_closest(event.x, event.y)) # find text object's ID
root = Tk()
canv = Canvas(root, width=100, height=100)
obj1 = canv.create_text(50, 30, text='Click me one')
obj2 = canv.create_text(50, 70, text='Click me two')
canv.bind('<Double-1>', onCanvasClick) # bind to whole canvas
canv.tag_bind(obj1, '<Double-1>', onObjectClick) # bind to drawn item
canv.tag_bind(obj2, '<Double-1>', onObjectClick) # a tag works here too
canv.pack()
root.mainloop()