zoukankan      html  css  js  c++  java
  • pyqt5_控件拖放

    from PyQt5.QtCore import *
    from PyQt5.QtWidgets import *
    from PyQt5.QtGui import *
    import sys
    
    
    class LineEditEx(QLineEdit):
        def __init__(self, parent=None):
            super().__init__(None, parent)
            self.setGeometry(50, 50, 100, 20)
            self.setAcceptDrops(True)
            self.setDragEnabled(True)  # 开启可拖放事件
    
        def dragEnterEvent(self, QDragEnterEvent):
            e = QDragEnterEvent  # type:QDragEnterEvent
            print('type:', e.type())  # 事件的类型
            print('pos:', e.pos())  # 拖放位置
            print(e.mimeData().urls())  # 文件所有的路径
            print(e.mimeData().text())  # 文件路径
            print(e.mimeData().formats())  # 支持的所有格式
            print(e.mimeData().data('text/plain'))  # 根据mime类型取路径 值为字节数组
            print(e.mimeData().hasText())  # 是否支持文本文件格式
            if e.mimeData().hasText():
                e.accept()
            else:
                e.ignore()
    
        def dropEvent(self, e):
            self.setText(e.mimeData().text()) #如果之前设置ignore 为False 这里将不会生效
    
    class Example(QMainWindow):
        def __init__(self):
            super().__init__()
            self.setUi()
    
        def setUi(self):
            self.setGeometry(100, 100, 300, 300)
            self.setWindowTitle('demo_ui_2')
            self.textEdit = LineEditEx(self)
    
            self.show()
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = Example()
        sys.exit(app.exec_())
  • 相关阅读:
    Socket基础一
    MyBatisPlus【目录】
    MyBatis(十一)扩展:自定义类型处理器
    MyBatis(十一)扩展:批量操作
    MyBatis(十一)扩展:存储过程
    MyBatis(十一)扩展:分页插件PageHelper
    MyBatis(十)插件 4
    09月07日总结
    09月06日总结
    09月03日总结
  • 原文地址:https://www.cnblogs.com/alplf123/p/8360881.html
Copyright © 2011-2022 走看看