Pyslvs 編譯進度:

  • 拖放檔案開啟功能

  • 反轉 Y 軸初始位置功能

Pyslvs 編譯進度

拖放檔案開啟功能

參考資料:

http://doc.qt.io/qt-5/dnd.html

可以透過 Qt 的拉入事件「dragEnterEvent」和拖放事件「dropEvent」達成。

這次只有讓外部資訊拖入,若要讓內部資訊脫出需要其他設置,不過這個功能或許會應用到其他部份,所以先作筆記。

當 QWidget 設定允許拖放動作 setAcceptDrops(true) 後,就能使用滑鼠攜帶資訊,滑鼠游標會變成拖放樣式而非禁止符號。

透過拉入事件「dragEnterEvent」可以允許「哪些資訊」可以被拖入,如字串、圖片、網址和檔案位址。

拖放事件「dropEvent」可以設定拖入後要執行的動作。

def dragEnterEvent(self, event):
    mimeData = event.mimeData()
    if mimeData.hasUrls():
        for url in mimeData.urls():
            FilePath = url.toLocalFile()
            if QFileInfo(FilePath).suffix()=="csv": event.acceptProposedAction()

def dropEvent(self, event):
    FilePath = event.mimeData().urls()[-1].toLocalFile()
    self.checkChange(FilePath, [], "Loaded drag-in file:\n"+FilePath)
    event.acceptProposedAction()

上面的 dragEnterEvent 先判斷 QEvent 的攜帶資訊 mimeData 是否為副檔名「csv」的 URL,接著才會通過檢查(acceptProposedAction())。

後面的 dropEvent 則是取出想要的檔案位址並開啟,若是一次選取多個檔案則只開啟最後一個。

反轉 Y 軸初始位置功能

在選定的連桿上按下滑鼠右鍵可以根據固定軸反轉 Y 軸座標的初始位置,若是沒有固定軸,就反轉終點的。

以下是反轉之後重繪的路徑圖。

透過這個功能能夠手動修正初始位置,不過若是能夠自動檢查並修正會比較好。

過幾天應該能開始寫開發手冊。


Comments

comments powered by Disqus