本篇在講什么 用pyqt5制作一個簡單的程序,拖動文件或腳本可以讀取文件信息 本篇適合什么 適合初學PyQt5的小白 本篇需要什么 對Python語法有簡單認知 對Qt有簡單認知 依賴Pycharm編輯器 本篇的特色 具有全流程的圖文教學 重實踐,輕理論,快速上手 提供全流程的源碼內容 |
![]() ★提高閱讀體驗★ ?? ? 一級標題 ???? ? 二級標題 ???? ? 三級標題 ???? ? 四級標題 ?? |
? 演示
以下效果是制作完成后的整體演示效果
? 制作頁面
頁面很簡單,只有一個QTextEdit
組件用來顯示文件信息
? 重寫拖動事件
因為ui文件直接生成的py文件內并沒有重寫拖動相關的方法,所以我們需要重寫一下,寫在生成的py文件里每次重新生成都會被覆蓋
? 引用相關的腳本
from PyQt5.QtWidgets import QApplication, QMainWindow
from main_win.mainUI import Ui_MainWindow
mainUI
文件就是我們剛制作的ui轉換的py文件,不知道怎么吧ui文件轉py的同學可以看博主之前的文章,Ui_MainWindow
是mainUI.py里的類名
? 重寫
class DragChangeWin(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(DragChangeWin, self).__init__(parent)
self.setupUi(self)
# 調用Drops方法
self.setAcceptDrops(True)
# 鼠標進入
def dragEnterEvent(self, evn):
print("鼠標進入")
evn.accept()
# 鼠標放開
def dropEvent(self, evn):
print("鼠標放開")
# 鼠標拖動
def dragMoveEvent(self, evn):
print("鼠標拖動")
要點1:
新類繼承QMainWindow
和Ui_MainWindow
要點2:
拖動的進入事件dragEnterEvent
要點3:
拖動的結束事件dropEvent
要點4:
拖動的移動事件dragMoveEvent
? 獲取文件并讀取
在dropEvent方法內我們通過evn參數可以獲取到拖動文件的路徑
# 鼠標放開
def dropEvent(self, evn):
filePath = evn.mimeData().text().split("http:///")[1]
file = open(filePath, 'r', encoding="UTF-8")
content = file.read()
file.close()
print(content)
要點1:
通過evn.mimeData().text()
方法可以獲取到拖動文件的路徑,路徑格式如下所示
file:///C:/Users/Administrator/Desktop/1.txt
要點2:
通過分割字符串可以獲取到可用的路徑信息文章來源:http://www.zghlxwxcb.cn/news/detail-791796.html
? 完整代碼
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from main_win.mainUI import Ui_MainWindow
class DragChangeWin(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(DragChangeWin, self).__init__(parent)
self.setupUi(self)
# 調用Drops方法
self.setAcceptDrops(True)
# 鼠標進入
def dragEnterEvent(self, evn):
# 鼠標放開函數事件
evn.accept()
# 鼠標放開
def dropEvent(self, evn):
filePath = evn.mimeData().text().split("http:///")[1]
file = open(filePath, 'r', encoding="UTF-8")
content = file.read()
file.close()
self.textEdit.setText(content)
# 鼠標拖動
def dragMoveEvent(self, evn):
print("3333333333333333333")
if __name__ == '__main__':
# app初始化
app = QApplication(sys.argv)
dragWin = DragChangeWin()
dragWin.show()
dragWin.setFixedSize(dragWin.width(), dragWin.height())
sys.exit(app.exec_())
? 推送
- Github
https://github.com/KingSun5
? 結語
若是覺得博主的文章寫的不錯,不妨關注一下博主,點贊一下博文,另博主能力有限,若文中有出現什么錯誤的地方,歡迎各位評論指摘。文章來源地址http://www.zghlxwxcb.cn/news/detail-791796.html
到了這里,關于PyQt5利用Qt Designer制作一個可以拖動獲取文件信息的頁面的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!