在這節(jié)教程中,我們將探討PyQt5中的拖放操作。
創(chuàng)新互聯(lián)建站是專業(yè)的石泉網(wǎng)站建設(shè)公司,石泉接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行石泉網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!在計(jì)算機(jī)圖形用戶界面(GUI)中,拖放是在某個(gè)虛擬對(duì)象上點(diǎn)擊并拖動(dòng)到另一個(gè)位置或虛擬對(duì)象上的操作。它通常用于調(diào)用多個(gè)動(dòng)作,或?yàn)閮蓚€(gè)抽象對(duì)象創(chuàng)建某些聯(lián)系。
拖放是圖形用戶界面的一部分。拖放可以使用戶直觀地完成某些復(fù)雜的操作。
通常我們可以對(duì)兩種事物進(jìn)行拖放操作:數(shù)據(jù)或某些圖形對(duì)象。如果我們將某個(gè)應(yīng)用中的圖片拖放到另一個(gè)應(yīng)用,我們拖放的是二進(jìn)制數(shù)據(jù)。如果將Firefox的某個(gè)標(biāo)簽頁拖放到其他地方,我們拖放的是一個(gè)圖形組件。
簡(jiǎn)單的拖放
在第一個(gè)示例中我們要?jiǎng)?chuàng)建一個(gè)QLineEdit和一個(gè)QPushButton,并通過將LineEdit中的文本拖放到按鈕上來改變按鈕的標(biāo)簽。
import sys from PyQt5.QtWidgets import (QPushButton, QWidget, QLineEdit, QApplication) class Button(QPushButton): def __init__(self, title, parent): super().__init__(title, parent) self.setAcceptDrops(True) def dragEnterEvent(self, e): if e.mimeData().hasFormat("text/plain"): e.accept() else: e.ignore() def dropEvent(self, e): self.setText(e.mimeData().text()) class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): edit = QLineEdit("", self) edit.setDragEnabled(True) edit.move(30, 65) button = Button("Button", self) button.move(190, 65) self.setWindowTitle("Simple drag & drop") self.setGeometry(300, 300, 300, 150) self.show() if __name__ == "__main__": app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())