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
图形化示例如下:
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);//为空则按钮为不可用
}
}