代码:
#ifndef TABLECOMBOBOX_H
#define TABLECOMBOBOX_H#include
#include class comboBoxTableView : public QTableView
{
public:comboBoxTableView(QComboBox *parent);
};class tableComboBox : public QComboBox
{
public:tableComboBox(QWidget * parent = nullptr);
};#endif // TABLECOMBOBOX_H
#include "tablecombobox.h"
#include
#include
#include
#include
#include
#include comboBoxTableView::comboBoxTableView(QComboBox *parent):QTableView (parent)
{this->horizontalHeader()->hide();this->verticalHeader()->hide();this->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);auto model &#61; new QStandardItemModel(this);model->setColumnCount(3);model->setRowCount(3);this->setModel(model);QList list;QButtonGroup * btnGroup &#61; new QButtonGroup(this);for (int i &#61; 1;i <10;&#43;&#43;i){QPushButton * btn &#61; new QPushButton(this);btn->setCheckable(true);btn->setStyleSheet(QString("QPushButton{color:#ffffff;padding:6px 10px 6px 10px;background-color:#00beac;font-size:24px;border-radius:6px;}""QPushButton:hover{background-color:#20c9b3;}""QPushButton:pressed{background-color:#01968c;}""QPushButton:checked{background-color:red;}"));btn->setText(QString("%1").arg(i));list <addButton(btn);connect(btn,&QPushButton::toggled,[&#61;]{parent->setCurrentText(btn->text());});}btnGroup->setExclusive(true);for (int i &#61; 0;i <3;&#43;&#43;i){for (int j &#61; 0;j <3;&#43;&#43;j){model->setItem(i, j, new QStandardItem());this->setIndexWidget(model->index(i,j),list[i * 3 &#43; j]);}}
}tableComboBox::tableComboBox(QWidget *parent):QComboBox (parent)
{auto view &#61; new comboBoxTableView(this);this->setModel(view->model());this->setView(view);setEditable(true);lineEdit()->setReadOnly(true);setStyleSheet("QComboBox{border-radius: 6px;border: 1px solid #00bcd4;padding:6px 10px 6px 10px;font-size:28px;color: #000000;selection-background-color: #00beac;}");
}
效果&#xff1a;