QT QGridLayout网格布局控件

        本文详细的介绍了QGridLayout控件的各种操作,例如:新建界面、控件布局获取行获取列某行伸缩系数某列伸缩系数某列最小宽度某行最小宽度总单元格数移除布局条目移动布局条目其它文章等操作。

        实际开发中,一个界面上可能包含十几个控件,手动调整它们的位置既费时又费力。布局管理器可以完成两件事:自动调整控件的位置,包括控件之间的间距、对齐等;当用户调整窗口大小时,位于布局管理器内的控件也会随之调整大小,从而保持整个界面的美观。
        本系列QT全面详解文章目前共有二十四篇,本系列文章较为详细的讲述了QT控件的基础操作和使用,也谢谢大家的关注、点赞、收藏。

 本文作者原创,转载请附上文章出处与本文链接。

QT QGridLayout网格布局控件目录

1 新建界面

2 控件布局

3 获取行

4 获取列

5 某行伸缩系数

6 某列伸缩系数

7 某列最小宽度

8 某行最小宽度

9 总单元格数

10 移除布局条目

11 移动布局条目

12 其它文章


1 新建界面

2 控件布局

    ui->gridLayout->addWidget(ui->pushButton, 0, 0);
    ui->gridLayout->addWidget(ui->pushButton_2, 0, 1);
    ui->gridLayout->addWidget(ui->pushButton_3, 0, 2);
    ui->gridLayout->addWidget(ui->pushButton_4, 0, 3);
    ui->gridLayout->addWidget(ui->pushButton_5, 0, 4);

    ui->gridLayout->addWidget(ui->pushButton_6, 1, 0, 1, 2);
    ui->gridLayout->addWidget(ui->pushButton_7, 1, 2, 1, 1);
    ui->gridLayout->addWidget(ui->pushButton_8, 1, 3, 1, 2);

    ui->gridLayout->addWidget(ui->pushButton_9, 2, 0);
    ui->gridLayout->addWidget(ui->pushButton_10, 2, 3);



    ui->pushButton->setText("获取行");
    ui->pushButton_2->setText("获取列");
    ui->pushButton_3->setText("某行伸缩系数");
    ui->pushButton_4->setText("某列伸缩系数");
    ui->pushButton_5->setText("某列最小宽度");
    ui->pushButton_6->setText("某行最小宽度");
    ui->pushButton_7->setText("总单元格数");
    ui->pushButton_8->setText("移除布局条目");
    ui->pushButton_9->setText("移动布局条目");

3 获取行

void MainWindow::on_pushButton_clicked()
{
    qDebug() << "获取行:" << ui->gridLayout->rowCount();
}

4 获取列

void MainWindow::on_pushButton_2_clicked()
{
    qDebug() << "获取列:" << ui->gridLayout->columnCount();
}

5 某行伸缩系数

void MainWindow::on_pushButton_3_clicked()
{
    ui->gridLayout->setColumnStretch(0, 1);
}

6 某列伸缩系数

void MainWindow::on_pushButton_4_clicked()
{
    ui->gridLayout->setRowStretch(0, 2);
}

7 某列最小宽度

void MainWindow::on_pushButton_5_clicked()
{
    ui->gridLayout->setColumnMinimumWidth(0,5);
}

8 某行最小宽度

void MainWindow::on_pushButton_6_clicked()
{
    ui->gridLayout->setRowMinimumHeight(0,5);
}

9 总单元格数

void MainWindow::on_pushButton_7_clicked()
{
    qDebug() << "总单元格数:" << ui->gridLayout->count();
}

10 移除布局条目

void MainWindow::on_pushButton_8_clicked()
{
    ui->gridLayout->takeAt(8);
    //TODO
    //设置隐藏控件
}

11 移动布局条目

void MainWindow::on_pushButton_9_clicked()
{
    ui->gridLayout->addWidget(ui->pushButton_9, 10, 0);
}

12 其它文章

QT TextEdit控件_双子座断点的博客-CSDN博客_qt textedit

QT QComboBox使用详解_双子座断点的博客-CSDN博客

QT QtableView操作详解_双子座断点的博客-CSDN博客_qtableview增删改查

Qt QStandardItemModel(1.超级详细用法)_双子座断点的博客-CSDN博客_qstandardmodel

Qt QStandardItemModel(2.超级详细函数)_双子座断点的博客-CSDN博客_qstandarditemmodel点击事件

QT QRadioButton使用详解_双子座断点的博客-CSDN博客_qt radiobutton

QT QLineEdit使用详解_双子座断点的博客-CSDN博客_qt qlineedit

Qt QMessageBox使用详解_双子座断点的博客-CSDN博客_qt message

QChart折线图、饼状图、条形图、曲线图_双子座断点的博客-CSDN博客_qchart样式

QChart属性详解_双子座断点的博客-CSDN博客_setanimationoptions

QCharts QValueAxis使用_双子座断点的博客-CSDN博客_qvalueaxis

Qt 5 等待提示框(开源 动态图)_双子座断点的博客-CSDN博客_qt 等待对话框

QtDataVisualization 数据3D可视化_双子座断点的博客-CSDN博客_qtdatavisualizatio

QT QSpinBox 整数计数器控件 使用详解_双子座断点的博客-CSDN博客


QT QDoubleSpinBox 浮点计数器控件(使用详解)_双子座断点的博客-CSDN博客_qdoublespinbox信号槽


QT QSlider、QHorizontalSlider、QVerticalSlider 控件 使用详解_双子座断点的博客-CSDN博客_qslider设置步长

QT QTabWidget 控件 使用详解_双子座断点的博客-CSDN博客

QT QCalendarWidget控件 使用详解_双子座断点的博客-CSDN博客

QT QStackedWidget 控件 使用详解_双子座断点的博客-CSDN博客

QT QVBoxLayout 垂直布局控件_双子座断点的博客-CSDN博客

QT QHBoxLayout 水平布局控件_双子座断点的博客-CSDN博客

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Qt网格布局(QGridLayout)是一种方便的方式来排列控件。它将控件放置在一个二维的网格中,类似于表格布局。 下面是一个简单的示例,展示如何使用网格布局来排版控件: ```cpp #include <QtWidgets> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建一个主窗口 QWidget window; window.setWindowTitle("Grid Layout Example"); // 创建一个网格布局 QGridLayout *layout = new QGridLayout(&window); // 创建一些控件 QLabel *label1 = new QLabel("Label 1"); QLabel *label2 = new QLabel("Label 2"); QPushButton *button1 = new QPushButton("Button 1"); QPushButton *button2 = new QPushButton("Button 2"); // 将控件添加到网格布局layout->addWidget(label1, 0, 0); // 在第一行、第一列 layout->addWidget(label2, 0, 1); // 在第一行、第二列 layout->addWidget(button1, 1, 0); // 在第二行、第一列 layout->addWidget(button2, 1, 1); // 在第二行、第二列 // 设置布局边距和控件间距 layout->setContentsMargins(10, 10, 10, 10); layout->setSpacing(10); // 显示主窗口 window.show(); return app.exec(); } ``` 在这个示例中,我们创建了一个主窗口,并在其中创建了一个网格布局。然后,我们创建了两个标签和两个按钮,并将它们添加到网格布局中的不同位置。最后,我们设置了布局的边距和控件间距,并显示了主窗口。 当运行这个示例时,你会看到标签和按钮按照网格布局的方式进行排列。 希望这个示例对你有所帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双子座断点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值