QT开发中文网

QT 对话框添加控件布局三行三列,有label,有lineedit,有combobox

在 Qt 中,可以使用 QGridLayout 来创建一个三行三列的对话框,并添加不同类型的控件,如 QLabelQLineEditQComboBox。以下是一个简单的示例,演示如何实现这个功能:

#include <QApplication>
#include <QDialog>
#include <QGridLayout>
#include <QLabel>
#include <QLineEdit>
#include <QComboBox>
#include <QPushButton>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    
    QDialog dialog;  // 创建对话框
    dialog.setWindowTitle("三行三列布局示例");

    // 创建网格布局
    QGridLayout *layout = new QGridLayout(&dialog);

    // 添加控件到布局中
    layout->addWidget(new QLabel("Label 1:"), 0, 0);
    layout->addWidget(new QLineEdit(), 0, 1);
    layout->addWidget(new QComboBox(), 0, 2);

    layout->addWidget(new QLabel("Label 2:"), 1, 0);
    layout->addWidget(new QLineEdit(), 1, 1);
    layout->addWidget(new QComboBox(), 1, 2);

    layout->addWidget(new QLabel("Label 3:"), 2, 0);
    layout->addWidget(new QLineEdit(), 2, 1);
    layout->addWidget(new QComboBox(), 2, 2);

    // 添加一个按钮以关闭对话框
    QPushButton *button = new QPushButton("关闭");
    layout->addWidget(button, 3, 0, 1, 3); // 占据整行

    // 设置按钮点击事件
    QObject::connect(button, &QPushButton::clicked, &dialog, &QDialog::accept);

    dialog.setLayout(layout); // 设置布局
    dialog.exec();            // 显示对话框
    
    return app.exec();
}

示例说明

  1. 创建 QDialog:我们创建了一个对话框实例。

  2. 创建 QGridLayout:使用 new QGridLayout(&dialog) 创建网格布局并将其与对话框关联。

  3. 添加控件到布局

    • 使用 layout->addWidget() 方法,将 QLabelQLineEditQComboBox 按照行列添加到网格中。
    • 每个控件的位置由两个参数指定,分别表示它所在的行和列。
  4. 添加关闭按钮:在最后一行添加了一个“关闭”按钮,并设置它占据整个最后一行(第3行)。

  5. 连接信号与槽:通过连接按钮的点击事件,使得点击按钮时可以关闭对话框。

  6. 执行对话框:使用 dialog.exec() 方法显示对话框,让用户进行交互。

效果

当你运行这个代码时,会弹出一个带有三行三列布局的对话框,每一行都有对应的标签、输入框和下拉选择框。点击“关闭”按钮后,对话框将会关闭。


内容由零声教学AI助手提供,问题来源于学员提问

目录导航
  • 示例说明
  • 效果
  • 本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
    转载请注明出处:https://qt.0voice.com/?id=12703

    分享:
    扫描分享到社交APP
    上一篇
    下一篇
    发表列表
    游客 游客
    此处应有掌声~
    评论列表

    还没有评论,快来说点什么吧~

    联系我们

    在线咨询: 点击这里给我发消息

    微信号:3007537140

    上班时间: 10:30-22:30

    关注我们
    x

    注册

    已经有帐号?