c++编写为一个qpushbutton添加点击出现QAbstractItemView
时间: 2023-07-16 15:14:27 浏览: 107
你可以在QPushButton的clicked信号中,创建一个QAbstractItemView的子类实例,并使用QDialog::exec()方法显示它。以下是一个简单的示例代码:
```cpp
#include <QPushButton>
#include <QDialog>
#include <QVBoxLayout>
#include <QListView>
class MyDialog : public QDialog {
public:
MyDialog(QWidget* parent = nullptr) : QDialog(parent) {
setWindowTitle("List Dialog");
QVBoxLayout* layout = new QVBoxLayout(this);
QListView* listView = new QListView(this);
QStringList items;
items << "Item 1" << "Item 2" << "Item 3";
listView->setModel(new QStringListModel(items, this));
layout->addWidget(listView);
}
};
void onButtonClicked() {
MyDialog dialog;
dialog.exec();
}
int main(int argc, char** argv) {
QApplication app(argc, argv);
QWidget* window = new QWidget();
QVBoxLayout* layout = new QVBoxLayout(window);
QPushButton* button = new QPushButton("Show List", window);
layout->addWidget(button);
QObject::connect(button, &QPushButton::clicked, onButtonClicked);
window->show();
return app.exec();
}
```
在这个示例中,我们创建了一个MyDialog类,它是QDialog的子类,它包含一个QListView,用于显示一个字符串列表。在QPushButton的clicked信号中,我们创建一个MyDialog实例,并使用exec()方法显示它。
阅读全文