当前位置 博文首页 > liuguangshibei的博客:QT学习——容器篇

    liuguangshibei的博客:QT学习——容器篇

    作者:[db:作者] 时间:2021-08-13 12:54

    QT学习——容器篇

    滚动条容器–scrollArea

        QLabel *pic=new QLabel;//创建标签对象
        QPixmap *prc=new QPixmap(":/res/plane1.png");//指定资源文件路径
        pic->setPixmap(*prc);
        ui->scrollArea->setWidget(pic);//传递标签对象
        pic->setFixedWidth(1000);//设置标签对象的固定宽度
        ui->scrollArea->setAlignment(Qt::AlignCenter);//居中显示,枚举值
        pic->setAlignment(Qt::AlignCenter);
    
    
     QVBoxLayout* vlayout = new QVBoxLayout;//定义布局对象
    for(int i=0; i<=3; ++i)//循环载入图片
            {
                QLabel* pic = new QLabel;
                QString name = QString(":/res/plane%1.png").arg(i+1);//将图片路径保存到字符串中。
                pic->setPixmap(QPixmap(name));
                pic->setAlignment(Qt::AlignHCenter);
                vlayout->addWidget(pic);//将每一个标签对象都放到垂直布局对象中。
            }
     ui->scrollArea->setLayout(vlayout);//将布局对象传给容器
    

    工具容器(抽屉)——toolBox

    图形化示例如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XqAMcyRy-1614310249261)(C:\Users\流光拾贝\AppData\Roaming\Typora\typora-user-images\image-20210226102457100.png)]

    void Widget::on_toolBox_currentChanged(int index)
    {
        qDebug()<<ui->toolBox->itemText(index);//输出标题文字
    }//信号参数为整型
    
    

    标签页——QTabWidget

    #include<QQueue>//QT中的队列头文件
    QQueue<QWidget*> m_widgets;
        QQueue<QString> m_names;//使用QT中的队列储存数据,第一个为每个标签页返回的对象,第二个为text文本
    

    .cpp中的实现

    void Widget::on_tabWidget_tabCloseRequested(int index)//添加关闭信号槽
    {
              QWidget* wg = ui->tabWidget->widget(index);//返回标签页对应的对象
              QString title = ui->tabWidget->tabText(index);//返回标题
              m_widgets.enqueue(wg);//队列存储对象
              m_names.enqueue(title);//队列存储标题
              // 移除tab页
              ui->tabWidget->removeTab(index);
              ui->addbtn->setEnabled(true);//添加按钮设为可用
    }
    

    添加按钮的实现:

    void Widget::on_addbtn_clicked()
    {
        ui->tabWidget->addTab(m_widgets.dequeue(), m_names.dequeue());//出队列并返回相应值
               if(m_widgets.empty())//判断是否为空
               {
                   ui->addbtn->setDisabled(true);//为空则按钮为不可用
               }
    }
    
    
           ui->addbtn->setDisabled(true);//为空则按钮为不可用
           }
    

    }

    暂时最后一篇关于C+±-QT的博文,下一篇预计更新计算机网络。

    cs
    下一篇:没有了