QT点击按钮弹出对话框,对话框中有一个下拉选择,一个输入框还有确定取消按钮
时间: 2024-05-16 14:16:21 浏览: 113
点击按钮弹出对话框...........
3星 · 编辑精心推荐
可以使用Qt中的QDialog类来创建对话框,然后在对话框中添加需要的控件。
以下是一个简单的例子:
```cpp
#include <QDialog>
#include <QVBoxLayout>
#include <QComboBox>
#include <QLineEdit>
#include <QPushButton>
class MyDialog : public QDialog
{
public:
MyDialog(QWidget *parent = nullptr) : QDialog(parent)
{
// 创建下拉选择框
m_comboBox = new QComboBox(this);
m_comboBox->addItem("Option 1");
m_comboBox->addItem("Option 2");
m_comboBox->addItem("Option 3");
// 创建输入框
m_lineEdit = new QLineEdit(this);
// 创建确定和取消按钮
m_okButton = new QPushButton("OK", this);
m_cancelButton = new QPushButton("Cancel", this);
// 将按钮连接到槽函数
connect(m_okButton, &QPushButton::clicked, this, &MyDialog::accept);
connect(m_cancelButton, &QPushButton::clicked, this, &MyDialog::reject);
// 创建垂直布局,并将控件添加到布局中
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(m_comboBox);
layout->addWidget(m_lineEdit);
layout->addWidget(m_okButton);
layout->addWidget(m_cancelButton);
// 设置对话框布局
setLayout(layout);
}
QString selectedOption() const { return m_comboBox->currentText(); }
QString inputValue() const { return m_lineEdit->text(); }
private:
QComboBox *m_comboBox;
QLineEdit *m_lineEdit;
QPushButton *m_okButton;
QPushButton *m_cancelButton;
};
```
在其他类中使用该对话框:
```cpp
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QPushButton>
class MyWidget : public QWidget
{
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent)
{
// 创建按钮
m_button = new QPushButton("Show Dialog", this);
// 将按钮连接到槽函数
connect(m_button, &QPushButton::clicked, this, &MyWidget::showDialog);
// 创建水平布局,并将按钮添加到布局中
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(m_button);
// 设置主窗口布局
setLayout(layout);
}
private:
void showDialog()
{
// 创建对话框
MyDialog dialog(this);
// 显示对话框并获取返回值
if (dialog.exec() == QDialog::Accepted) {
QString option = dialog.selectedOption();
QString input = dialog.inputValue();
// 处理返回值
// ...
}
}
QPushButton *m_button;
};
```
这个例子中,我们创建了一个自定义的对话框类`MyDialog`,在其中添加了一个下拉选择框、一个输入框和确定/取消按钮。然后,在另一个类`MyWidget`中,我们创建了一个按钮来打开该对话框,并在对话框关闭时获取用户的选择和输入。
阅读全文