#ifndef KBDPOINTDLG_H #define KBDPOINTDLG_H #include #include class QComboBox; class QLineEdit; class MyPointListWidget; class MyDevListWidget; class KbdPointDlg : public QDialog { Q_OBJECT public: explicit KbdPointDlg(QWidget *parent = nullptr); QStringList getSelectPoint();//格式 表名;测点TAG;测点描述 QStringList getSelectDev();//格式 表名;设备TAG;设备描述 friend class MyPointListWidget; friend class MyDevListWidget; private: void initLayout(); void initData(); private slots: void onLocationAndSubsystemChange(); void onDevGroupChanged(); void onTextChanged(const QString &text); void onPointTypeChanged(); private: QComboBox *m_cbSubSystem; QComboBox * m_cbLocation; QComboBox *m_cbDevGroup; QLineEdit *m_leSearch; MyDevListWidget *m_listDev; QComboBox *m_cbPointType; MyPointListWidget *m_listPoint; }; class MyPointListWidget :public QListWidget { Q_OBJECT public: explicit MyPointListWidget(KbdPointDlg *dlg,QWidget *parent = Q_NULLPTR):QListWidget(parent){ m_dlg = dlg; } QMimeData *mimeData(const QList items) const; virtual bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action); virtual QStringList mimeTypes() const; virtual Qt::DropActions supportedDropActions() const; private: KbdPointDlg *m_dlg; }; class MyDevListWidget :public QListWidget { Q_OBJECT public: explicit MyDevListWidget(KbdPointDlg *dlg,QWidget *parent = Q_NULLPTR):QListWidget(parent){ m_dlg = dlg; } QMimeData *mimeData(const QList items) const; virtual bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action); virtual QStringList mimeTypes() const; virtual Qt::DropActions supportedDropActions() const; private: KbdPointDlg *m_dlg; }; #endif // KBDPOINTDLG_H