combobox点击之后弹出的是一个自定义的窗口 每一行 有两个按钮
时间: 2024-09-24 22:03:30 浏览: 31
如果你想让QComboBox点击后弹出一个自定义窗口,这个窗口由你设计并且每行都有两个按钮,你可以采用以下步骤:
1. 创建一个自定义窗口:首先,你可以创建一个QDialog或者QWidget作为组合框的弹出视图。在窗口布局管理器(例如 QVBoxLayout、QGridLayout 或 QHBoxLayout)中,添加多个QWidgets代表每一行,每个Widget内放两个QPushButton。
```cpp
QDialog *customWindow = new QDialog();
QVBoxLayout *layout = new QVBoxLayout(customWindow);
for (int i = 0; i < numRows; ++i) {
QWidget *rowWidget = new QWidget();
QHBoxLayout *rowLayout = new QHBoxLayout(rowWidget);
QPushButton *button1 = new QPushButton("按钮1", rowWidget);
QPushButton *button2 = new QPushButton("按钮2", rowWidget);
rowLayout->addWidget(button1);
rowLayout->addWidget(button2);
layout->addWidget(rowWidget);
}
customWindow->setLayout(layout);
```
这里假设`numRows`是你想要的行数。
2. 连接QComboBox到自定义窗口:在QComboBox的`activated()`信号连接一个槽函数,该函数负责展示你的自定义窗口:
```cpp
connect(combobox, &QComboBox::activated, [this] {
customWindow->show();
});
```
当用户从QComboBox选择一个项时,窗口会弹出。
3. 关闭窗口:同样,为了保持一致性,你可以在自定义窗口的适当位置添加关于隐藏的信号处理器,比如`QCloseEvent`,以便在用户关闭窗口时,隐藏QComboBox。
```cpp
connect(customWindow, &QDialog::close, this, [this] {
comboBox.hide();
});
```