QT学习——容器篇

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的博文,下一篇预计更新计算机网络。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值