中文字幕 日本 在线 高清,久久精品国产99精品国,超碰人人香蕉,一区二区三区无码高清视频

【精華】使用Qt實現(xiàn)組態(tài)軟件中的控件拖拽功能

要在Qt中實現(xiàn)組態(tài)軟件中的控件拖拽功能,你可以使用Qt的圖形視圖框架(Graphics View Framework)。以下是一個簡單的示例代碼,演示如何創(chuàng)建可拖拽的控件:

#include <QApplication>#include <QGraphicsView>#include <QGraphicsScene>#include <QGraphicsRectItem>#include <QDragEnterEvent>#include <QDragMoveEvent>#include <QDropEvent>#include <QMimeData>class DraggableItem : public QGraphicsRectItem{public: DraggableItem(const QRectF& rect, QGraphicsItem* parent = nullptr) : QGraphicsRectItem(rect, parent) { setFlag(QGraphicsItem::ItemIsMovable); }protected: void mousePressEvent(QGraphicsSceneMouseEvent* event) override { if (event->button() == Qt::LeftButton) { QMimeData* mimeData = new QMimeData; QDrag* drag = new QDrag(event->widget()); drag->setMimeData(mimeData); drag->exec(); } QGraphicsRectItem::mousePressEvent(event); }};class DroppableScene : public QGraphicsScene{public: void dragEnterEvent(QGraphicsSceneDragDropEvent* event) override { if (event->mimeData()->hasFormat("application/x-draggable-item")) { event->acceptProposedAction(); } } void dragMoveEvent(QGraphicsSceneDragDropEvent* event) override { if (event->mimeData()->hasFormat("application/x-draggable-item")) { event->acceptProposedAction(); } } void dropEvent(QGraphicsSceneDragDropEvent* event) override { if (event->mimeData()->hasFormat("application/x-draggable-item")) { QByteArray itemData = event->mimeData()->data("application/x-draggable-item"); QDataStream dataStream(&itemData, QIODevice::ReadOnly); QRectF rect; dataStream >> rect; DraggableItem* item = new DraggableItem(rect); addItem(item); event->acceptProposedAction(); } }};int main(int argc, char *argv[]){ QApplication app(argc, argv); QGraphicsView view; DroppableScene scene; view.setScene(&scene); view.setAcceptDrops(true); view.show(); return app.exec();}

在示例代碼中,我們創(chuàng)建了兩個自定義類:DraggableItem和DroppableScene。

DraggableItem類是可拖拽的控件,繼承自QGraphicsRectItem。在mousePressEvent函數(shù)中,我們創(chuàng)建了一個QMimeData對象,并使用QDrag來進行拖拽操作。

DroppableScene類是可接受拖拽的場景,繼承自QGraphicsScene。在dragEnterEvent、dragMoveEvent和dropEvent函數(shù)中,我們判斷拖拽操作是否包含我們自定義的MIME數(shù)據(jù)格式,并根據(jù)需要執(zhí)行相應(yīng)的操作。

main函數(shù)中,我們創(chuàng)建了一個QGraphicsView和一個DroppableScene對象,并將場景設(shè)置給視圖。我們還通過調(diào)用setAcceptDrops(true)來啟用拖拽功能。

你可以根據(jù)實際需求修改和擴展示例代碼,例如添加更多的自定義控件類、設(shè)置控件樣式、實現(xiàn)控件之間的聯(lián)動等。

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2024年5月1日 下午2:42
下一篇 2024年5月1日 下午2:54

相關(guān)推薦

  • 投教專題丨讀懂上市公司報告·利潤表(一)(上市公司利潤表初步分析)

    國聯(lián)安投教基地 讀懂上市公司 定期報告 什么是利潤表? 利潤表是反映上市公司報告期生產(chǎn)經(jīng)營成果的會計報表。利潤表把報告期的營業(yè)收益與其同一會計期間的營業(yè)費用進行配比,以計算出公司一…

    科研百科 2022年8月26日
    489
  • 高級項目管理師報名時間

    高級項目管理師報名時間 隨著項目管理領(lǐng)域的不斷發(fā)展和進步,高級項目管理師作為一種非常重要的職業(yè)身份,其報名時間也在不斷變化和更新。本文將介紹高級項目管理師報名時間的相關(guān)信息,希望能…

    科研百科 2024年8月22日
    1
  • 信息系統(tǒng)項目管理師資料

    信息系統(tǒng)項目管理師資料 信息系統(tǒng)項目管理師是一種負責(zé)管理和維護信息技術(shù)項目的職業(yè)。隨著信息技術(shù)的快速發(fā)展,信息系統(tǒng)項目管理師的需求也越來越高。本文將介紹信息系統(tǒng)項目管理師的基本概念…

    科研百科 2024年12月10日
    5
  • 協(xié)同辦公 采購

    協(xié)同辦公和采購是企業(yè)日常運營中不可或缺的兩個環(huán)節(jié),它們之間的關(guān)系直接影響到企業(yè)的效率和競爭力。在今天的社會中,企業(yè)面臨著越來越復(fù)雜的市場環(huán)境和競爭壓力,因此,協(xié)同辦公和采購的重要性…

    科研百科 2025年1月5日
    1
  • 科研資金未使用完怎么處理

    科研資金未使用完怎么處理 隨著科學(xué)技術(shù)的不斷發(fā)展,科研經(jīng)費的使用已經(jīng)成為許多科學(xué)家和研究機構(gòu)的重要任務(wù)之一。然而,在一些情況下,科研經(jīng)費的使用可能會存在一些問題,比如未使用完的情況…

    科研百科 2024年10月12日
    9
  • 科研項目捐贈患者補助

    科研項目捐贈患者補助 隨著科技的不斷發(fā)展,科研項目在醫(yī)學(xué)領(lǐng)域中的應(yīng)用也越來越廣泛。其中,患者補助是一項非常重要的項目,它可以幫助患者獲得更好的醫(yī)療照顧和治療。今天,我們很高興地宣布…

    科研百科 2025年3月14日
    1
  • 科研項目立項有用嗎

    科研項目立項有用嗎? 科研項目立項是推動科技進步的重要步驟。立項前,科學(xué)家需要對研究問題進行深入的分析,并確定研究目標和方法。這些過程都需要進行大量的研究和實驗,以確保研究的可靠性…

  • 信息系統(tǒng)項目管理師知識點總結(jié)(一)?。ㄏ到y(tǒng)集成項目管理工程師知識點總結(jié))

    計算機題 1、財務(wù)凈現(xiàn)值: NPV 指今后某年的Y 元相當(dāng)于今年的X 元。 2、投資收益率ROI :建成投產(chǎn)后,在運營正常年獲得的凈收益與項目總投資之比。 3、投資回收期( Pay…

    2022年8月20日
    584
  • 大型軟件項目管理方案

    大型軟件項目管理方案 隨著信息技術(shù)的不斷發(fā)展,大型軟件項目已經(jīng)成為軟件開發(fā)領(lǐng)域的重要趨勢。大型軟件項目通常涉及多個團隊和多個階段,需要進行高效的管理和規(guī)劃,以確保項目的成功交付。本…

    科研百科 2024年9月20日
    3
  • 美國最大數(shù)值模擬工程軟件公司排名榜

    美國最大數(shù)值模擬工程軟件公司排名榜 數(shù)值模擬工程軟件是一種重要的計算機軟件,用于解決各種工程問題,包括流體力學(xué),材料力學(xué),化學(xué)反應(yīng)動力學(xué)和電磁學(xué)等。在過去的幾十年中,這些軟件公司一…

    科研百科 2024年10月26日
    2