本文整理汇总了Python中PyQt5.Qt.QDrag.mimeData方法的典型用法代码示例。如果您正苦于以下问题:Python QDrag.mimeData方法的具体用法?Python QDrag.mimeData怎么用?Python QDrag.mimeData使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt5.Qt.QDrag
的用法示例。
在下文中一共展示了QDrag.mimeData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: WebView
# 需要导入模块: from PyQt5.Qt import QDrag [as 别名]
# 或者: from PyQt5.Qt.QDrag import mimeData [as 别名]
#.........这里部分代码省略.........
initClass('Menu');
initClass('MenuItem');
initClass('TrayIcon');
initClass('Downloader');
initClass('Process');
initClass('SocketServer');
initClass('SocketClient');
function initClass(name){
HAE[name] = function(){
return initEventBinder(HAE['create' + name].apply(window, arguments));
};
}
function initModule(name){
var key = 'HAE_' + name;
HAE[name] = initEventBinder(window[key]);
delete window[key];
}
function initEventBinder(object){
object.addEvent = function(event, handler){
if(typeof event == 'string'){
var eventName = event;
event = ('on' + event).toLowerCase();
if(event in this && this[event].connect){
this[event].connect(handler);
}else{
console.warn('Warning: This object dose not have "' + eventName + '" event');
}
}else if(typeof event == 'object'){
for(var key in event){
this.addEvent(key, event[key]);
}
}
};
object.removeEvent = function(event, handler){
event = 'on' + event;
console.log(this[event]);
if(event in this && this[event].connect){
this[event].disconnect(handler);
}
};
return object;
}
})();
''')
def mousePressEvent(self, event):
self.parentWidget().mousePressEvent(event)
if not self.parentWidget().isDraging():
super(WebView, self).mousePressEvent(event)
if event.buttons() == Qt.LeftButton:
mimeData = QMimeData()
hitTestResult = self.mainFrame.hitTestContent(event.pos())
# print(hitTestResult.linkUrl())
# dragging the scrollbar
if hitTestResult.isNull():
self.draging = True
if hitTestResult.isContentSelected():
mimeData.setText(self.selectedText())
mimeData.setHtml(self.selectedHtml())
elif not hitTestResult.linkUrl().isEmpty():
mimeData.setUrls([hitTestResult.linkUrl()])
mimeData.setHtml(hitTestResult.element().toOuterXml())
elif not hitTestResult.pixmap().isNull():
mimeData.setImageData(hitTestResult.pixmap())
mimeData.setUrls([hitTestResult.imageUrl()])
mimeData.setHtml(hitTestResult.element().toOuterXml())
# mimeData.setData('application/x-qt-windows-mime;value="FileContents"', QVariant(hitTestResult.pixmap()).toByteArray())
# elif not hitTestResult.mediaUrl().isEmpty():
# mimeData.setUrls([hitTestResult.mediaUrl()])
# mimeData.setHtml(hitTestResult.element().toOuterXml())
else:
return
# pixmap = hitTestResult.pixmap()
# pixmap.setMask(QBitmap.fromImage(pixmap.toImage()))
self.drag.setMimeData(mimeData)
# self.drag.setPixmap(pixmap)
# self.drag.setHotSpot(QPoint(self.drag.pixmap().width() / 2, self.drag.pixmap().height() / 2))
def mouseMoveEvent(self, event):
if not self.parentWidget().isDraging():
super(WebView, self).mouseMoveEvent(event)
if self.drag.mimeData():
self.drag.exec()
self.drag.setMimeData(None)
if not self.draging:
event.ignore()
def mouseReleaseEvent(self, event):
self.draging = False
super(WebView, self).mouseReleaseEvent(event)
self.drag.setMimeData(None)
event.ignore()
def close(self):
self.stop()
self.load()
self.page().close()
self.eval('HAE = null')
self.drag.setMimeData(None)
super(WebView, self).close()