You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
# pragma once
# include "nmSubWxs_global.h"
# include <QComboBox>
# include <QList>
class QCheckBox ;
class QVariant ;
class QListWidget ;
class QTextEdit ;
class nmWxSelectWellItemWidget : public QWidget
{
Q_OBJECT
public :
nmWxSelectWellItemWidget ( ) ;
nmWxSelectWellItemWidget ( QWidget * parent , QString name , QVariant value ) ;
void setSelected ( bool selected ) ;
bool getSelected ( ) ;
void toggleSelected ( ) ;
private :
void initUI ( ) ;
protected :
void mousePressEvent ( QMouseEvent * event ) override ;
signals :
void sigItemClicked ( ) ;
private slots :
void onStateChanged ( int ) ;
private :
QCheckBox * m_pCBox ;
QString m_sName ;
QVariant m_iValue ;
} ;
class NM_SUB_WXS_EXPORT nmWxSelectWellsWidget : public QWidget
{
Q_OBJECT
public :
nmWxSelectWellsWidget ( QWidget * aParent = NULL ) ;
public :
// 添加多项
void addItems ( QStringList items , QList < QVariant > values ) ;
// 添加单项
void addItem ( QString name , QVariant value ) ;
// 获取选中的items
QStringList getItems ( ) ;
// 设置被选中的items
void setSelectedItems ( QStringList selectItems ) ;
private :
QListWidget * m_pListWidget ;
QTextEdit * m_pLineEdit ;
QStringList m_items ;
QList < QVariant > m_values ;
// 已经被选中的items
QStringList m_selectItems ;
// 上次点击的井下标, 用于Shift+点击范围选择
int m_nLastClickedIndex ;
// 获取指定井项在列表中的下标
int indexOfItemWidget ( nmWxSelectWellItemWidget * itemWidget ) const ;
// 批量设置所有井的选中状态
void setAllItemsSelected ( bool selected ) ;
// 批量设置指定范围内井的选中状态
void setRangeItemsSelected ( int fromIndex , int toIndex , bool selected ) ;
private slots :
// 刷新右侧已选择井文本
void onUpdateSelections ( ) ;
// 全选所有井
void onSelectAllItems ( ) ;
// 清空所有已选择井
void onClearSelectedItems ( ) ;
} ;