QComboBox的能够在setEditable模式下,只能增加而不能删除,注定了用户体研极差的,而且在输入有误时也没有任何办法,所以自定义comboBox
参考:Qt之QComboBox(基本应用、代理设置)_一去二三里_新浪博客
参考:QComboBox下拉框给选项增加删除按钮_龚建波-CSDN博客
直接上代码
头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QLabel>
#include <QComboBox>
#include <QListWidget>
#include <QPushButton>
#include <QMainWindow>
#include <QMouseEvent>
#include <QHBoxLayout>
#include <QKeyEvent>
#include <QListWidgetItem>
namespace Ui {
class MainWindow;
}
class MyComboBox;
class ComboBoxItem : public QWidget
{
Q_OBJECT
public:
explicit ComboBoxItem(QWidget *parent = nullptr);
void setLabelText(QString text);
QString getLabelText();
signals:
void SignalDeleteClicked(const QString &text);
void SignalDeleteProperty(const QString &text);
void SignalShowClicked(const QString &text);
protected:
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
bool mouse_press;
QPushButton *btn;
QLabel *label;
};
class MyComboBox : public QComboBox
{
Q_OBJECT
public:
explicit MyComboBox(QWidget *p