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()