QComboBox实现复选功能

QComboBox实现复选功能
非常好用

参考 教你如何实现带复选框的ComboBox(自定义QComboBox)
Qt实现复选下拉框 C++

 //相机位置 
    QStringList Types;
    Types << QString(QStringLiteral("正视")) << QString(QStringLiteral("侧视"));
    m_camPosCListWidget = new QListWidget(this);
    QLineEdit*  camPosCLineEdit = new QLineEdit(this);
    camPosCLineEdit->setReadOnly(true);
    for (auto& it : Types)
    {
        QListWidgetItem* pItem = new QListWidgetItem(m_camPosCListWidget);
        m_camPosCListWidget->addItem(pItem);
        QCheckBox* pCheckBox = new QCheckBox(this);
        pCheckBox->setText(it);
        m_camPosCListWidget->addItem(pItem);
        m_camPosCListWidget->setItemWidget(pItem, pCheckBox);
        connect(pCheckBox, SIGNAL(stateChanged(int)), this, SLOT(slotCamPosCBoxstateChanged(int)));
    }
    ui.camPosCBox->setModel(m_camPosCListWidget->model());
    ui.camPosCBox->setView(m_camPosCListWidget);
    ui.camPosCBox->setLineEdit( camPosCLineEdit);
void AddDatasetDialog::slotCamPosCBoxstateChanged(int index)
{
    ui.camPosCBox->lineEdit()->clear();
    QString text;
    for (int row = 0, rows = m_camPosCListWidget->count(); row < rows; ++row)
    {
        QListWidgetItem* item = m_camPosCListWidget->item(row);
        QWidget* pWidget = m_camPosCListWidget->itemWidget(item);
        QCheckBox* pCheckBox = (QCheckBox*)pWidget;
        if (pCheckBox-> isChecked())
            text.append(pCheckBox->text() + ";");
    }
    ui.camPosCBox->lineEdit()->setText(text);
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt5中没有内置的复选下拉框组件,但你可以通过结合QComboBox和QListView来实现类似的功能。 下面是一个示例代码,演示如何创建一个复选下拉框: ```python import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QMainWindow, QComboBox, QListView, QStandardItemModel, QStandardItem class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("复选下拉框示例") # 创建QComboBox self.comboBox = QComboBox(self) self.comboBox.setView(QListView()) # 设置下拉列表的视图为QListView # 创建QStandardItemModel self.model = QStandardItemModel(self.comboBox) # 添加复选框选项 options = ["选项1", "选项2", "选项3"] for option in options: item = QStandardItem(option) item.setCheckable(True) # 设置为可复选 item.setCheckState(Qt.Unchecked) # 设置初始状态为未选中 self.model.appendRow(item) self.comboBox.setModel(self.model) if __name__ == "__main__": app = QApplication(sys.argv) mainWindow = MainWindow() mainWindow.show() sys.exit(app.exec_()) ``` 在这个示例中,我们创建了一个MainWindow类作为主窗口,并在主窗口中创建了一个QComboBox作为复选下拉框。 我们使用QStandardItemModel来存储复选框选项,并将其设置为QComboBox的模型。然后,我们使用QStandardItem来创建复选框选项,并将其添加到模型中。 通过调用`setCheckable(True)`来设置每个复选框选项为可复选,调用`setCheckState(Qt.Unchecked)`来设置初始状态为未选中。你可以根据需要修改复选框选项的内容和初始状态。 希望这能帮助到你!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值