class ComboBox : public QComboBox
{
Q_OBJECT
public:
ComboBox(QWidget *parent = 0);
~ComboBox();
public:
void hidePopup();
void showPopup();
void increaseItem(QString text);//添加下拉项
void removeItem(QString account);//删除下拉项,返回该项的位置
int getListWidgetCount();//获取下拉项的个数
bool findItem(QString account);
signals:
void SignalShowAccount(QString account);
void SignalRemoveItem(int i);
private slots :
void SlotShowAccount(QString);
void SlotRemoveAccount(QString);
private:
QListWidget *m_pListWidget;
};
ComboBox::ComboBox(QWidget *parent)
: QComboBox(parent)
{
m_pListWidget = new QListWidget(this);
this->setModel(m_pListWidget->model());
this->setView(m_pListWidget);
}
ComboBox::~ComboBox()
{
}
// 解决垂直滚动条出现,多次popup时item错乱的问题 (重要)
void ComboBox::hidePopup()
{
m_pListWidget->scrollToTop();
QComboBox::hidePopup();
}
void ComboBox::showPopup()
{
QComboBox::showPopup();
m_pListWidget->scrollToTop
自定义ComboBox下拉框(带关闭按钮)
最新推荐文章于 2024-07-22 20:19:47 发布
本文介绍了如何自定义一个ComboBox控件,该控件在下拉框中包含一个关闭按钮。通过继承QComboBox并添加QListWidget,实现了添加、删除下拉项的功能,并在每个下拉项中添加了一个删除按钮。点击删除按钮时,会弹出确认对话框询问用户是否删除。此外,还解决了垂直滚动条导致的显示问题。
摘要由CSDN通过智能技术生成