QListWidget 中的元素水平排列
QListWidget 中元素的排列方式设置:
m_listWidget = new QListWidget(); m_listWidget->insertItem(0,tr("TCP"));//添加元素 m_listWidget->insertItem(1,tr("UDP")); m_listWidget->setSpacing(2);//设置单元项的间距 m_listWidget->setFlow(QListView::LeftToRight);//从左到右横向的排列,图片和文字也是从左到右排列 m_listWidget->setViewMode(QListView::IconMode);//左到右横向的排列,上图下文模式 m_listWidget->setViewMode(QListView::ListMode);//子项就会从上到下排列,图片和文字是从左到右排列. m_listWidget->setFlow(QListView::TopToBottom);//子项就会从上到下排列,图片和文字是从左到右排列. this->videoListWidget->setMovement(QListView::Static);//把列表设置为固定的(不能移动) this->videoListWidget->setResizeMode(QListView::Adjust);//设置自动适应布局调整 this->videoListWidget->setIconSize(QSize(200,170));//设置图片的大小
拓展1:QListWidget和QStackWidget结合切换栈窗口时,只需要下面这一句即可
connect(m_listWidget,SIGNAL(currentRowChanged(int)),m_stackWidget,SLOT(setCurrentIndex(int)));
拓展2:选中子项时的槽函数连接方式:
connect(videoListWidget,SIGNAL(itemClicked(QListWidgetItem*)),this,SLOT(getInfo(QListWidgetItem*)));
QListWidget展示照片时的代码示例如下:
//存 this->imgItem = new QListWidgetItem; imgItem->setTextColor("black"); imgItem->setText(allVideoCover.at(i).vname); imgItem->setIcon(QIcon(allVideoCover.at(i).cover));//图片路径 imgItem->setData(Qt::UserRole,allVideoCover.at(i).vPath);//存储数据 imgItem->setData(Qt::UserRole+1,allVideoCover.at(i).vframe);//存储数据 imgItem->setSizeHint(QSize(200,170)); this->videoListWidget->addItem(imgItem); //取 this->path = item->data(Qt::UserRole).toString(); this->sumframe = item->data(Qt::UserRole+1).toInt();
重点:利用setData(),data()存储数据
拓展3:QStackWidget的分页是从0开始的,要使某个特定的子窗口部件可见,可以调用setCurrentIndex(int),使用indexOf()可以获取子窗口部件的页号。
或许你会感兴趣的内容!!!
QT 之多种布局展示