QT 获取QGridLayout中的控件

先定位到栅格,再获取栅格中的控件,最后强制类型转换。
(QCheckBox *)ui->gridLayout->itemAtPosition(0,0)->widget();

栅格显示通常跟滚动界面一起使用。滚动界面的高度设置最好不要使用栅格空间的高度,不可靠。最好使用它的行数这个数据是可靠的。

ui->scrollAreaWidgetContents->setMinimumHeight(ui->gridLayout->rowCount()*45+200);

栅格删除控件,目前我也没好办法,哪位仁兄若有好的办法请告知。

QLayoutItem *child;
    while ((child = ui->gridLayout_3->takeAt(0)) != 0)
    {
        //setParent为NULL,防止删除之后界面不消失
        if(child->widget())
        {
            child->widget()->setParent(NULL);
            delete child->widget();//释放
        }
        delete child;
    }

目前就循环删除。 

Qt 的 Widget 是一种非常重要的用户界面组件,它是所有可视化的基础构件之一。Widget 可以理解为一个独立的“窗口部件”,例如按钮、标签、输入框等都是常见的 Widgets。下面详细介绍如何在 Qt 中使用 Widget。 --- ### **什么是 Widget?** Widget 是 Qt 提供的一种基本 GUI 元素,它既可以是一个顶级窗口(如主窗口),也可以作为一个嵌入式的子控件出现在其他容器内。每个 Widget 都有自己的绘制逻辑以及事件处理机制。 #### 基本特性: 1. **可视化**:可以显示文本、图形等内容。 2. **交互性**:能够响应用户的鼠标点击、键盘按键等各种事件。 3. **层次结构**:Widgets 彼此之间存在父子关系,比如按钮可能是某个对话框的一部分。 --- ### **如何创建和使用 Widget?** 以下是几个关键步骤来帮助你在项目中有效运用 Widget: #### 1. 创建一个新的 QWidget 对象 如果你直接继承自 `QWidget` 类型,则可以直接实例化这个新类并调用 show() 方法让它可见: ```cpp #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); // 创建 widget 实例 QWidget window; // 设置固定大小 window.resize(400, 300); // 设定标题栏文字 window.setWindowTitle("我的第一个 Widget"); // 让窗口呈现出来 window.show(); return app.exec(); } ``` 以上例子展示了最简单的使用场景——仅生成了一个空白的窗口。 #### 2. 添加更多控件到你的 Widget 上面去 通常情况下不会满足仅仅只是展示一片空区域那么简单的需求;我们还需要添加一些额外的UI元素进去,比如说 Labels 或者 Buttons 。这需要用到布局管理器(Layouts): ```cpp #include <QApplication> #include <QWidget> #include <QPushButton> #include <QVBoxLayout> class MyWindow : public QWidget{ protected: QPushButton button; public: MyWindow(){ QVBoxLayout layout; label.setText("你好世界!"); button.setText("按我试试看!"); QObject::connect(&button,SIGNAL(clicked()),this,SLOT(buttonClicked())); layout.addWidget(&label); layout.addWidget(&button); setLayout(&layout); } private slots: void buttonClicked(){ QMessageBox msgBox; msgBox.setText("你刚刚按下了那个按钮!"); msgBox.exec(); } }; ``` 在这里的例子里面,我们将两个不同的 widgets (即 QLabel 和 QPushButton)组合起来放入垂直排列的方式当中,并且还实现了当按下 Button 后弹出提示消息的功能。 --- ### §相关问题§: 1. 在 Qt Creator 中如何快速构建复杂的 Widget 用户界面? 2. 如何自定义样式表修改默认外观风格 ? 3. 是否有可能动态增加删除现有的 child widgets ?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值