20170912
来源:互联网 发布:男士私处清洁 知乎 编辑:程序博客网 时间:2024/06/15 12:17
1613-5 黄加勉 <2017.9.11> 连续第2天总结
A.今日任务
1.qt图标自动排列
B.具体内容
1.当窗口发生变化时,对图标的排列方式进行变更,以达到适应窗口大小的要求。 首先需要重写MainWindow类的resizeEvent函数,当窗口大小变化时,清空scrollarea,然后重新插入图标。 qt中的layout布局器可以看做是一种容器,类似于vector<Poniter>类型,qt并没用提供一种清空layout的函数,所以需要手动实现: scrollarea的main_widget中包含一个QVBoxLayout,QVBoxLayout中又包含多个QHBoxLayout,QHBoxLayout中又包含多个pixmap 首先,取到第一个hbox: QHBoxLayout* child = static_cast<QHBoxLayout*>(main_layout -> takeAt(0)); 然后取到第一个hbox的第一个pixmap并且delete: QWidget* pic = child -> takeAt(0).widget(); delete pic; 用两个循环就可以删除所以元素:
void MainWindow::clearScrollArea(){ QLayoutItem* child; QWidget* temp; while((child = layout->takeAt(0)) != 0) { QHBoxLayout* lyt = static_cast<QHBoxLayout*>(child); QLayoutItem* grandchild; while((grandchild = lyt->takeAt(0)) != 0) { temp = grandchild->widget(); delete temp; } temp = child->widget(); delete temp; } delete layout; layout = new QVBoxLayout(main_widget); delete new_layout; new_layout = nullptr;}
2.打开文件获得的QStringList只是本次的文件名序列,因为当resize时重绘所以图标,所以需要另一个QStringList保存所以的文件:
current_list = QFileDialog::getOpenFileNames(this,"Selecte Files","F:/temp/test");all_list += current_list;
然后调用封装后的显示图标函数:
showIcons(current_list);
当窗口重绘时:
showIcon(all_list);
完整的resizeEvent函数:
void MainWindow::resizeEvent(QResizeEvent *event){ if(current_list.isEmpty()) return; if(hcount == ui->scrollArea->width() / WIDTH) return; if(ui->scrollArea->width() / WIDTH == 0) return; clearScrollArea(); showIcons(all_list); hcount = ui->scrollArea->width() / WIDTH; //保存列宽}
C.明日任务
1.图标删除
2.qt与tcp
阅读全文
0 0
- 20170912
- 【20170912】校招走到一半,屡败屡战!
- Linux命令学习20170912
- The study of generator in Python(20170912)
- 20170912日记账流水(2017-09-12)
- 20170912_字符串长度strlen实现
- 20170912_字符串拷贝strcpy的实现
- The study of iterator in Python(20170912)
- 20170912jenkins构建前执行远程shell脚本
- 20170912_字符串比较函数strcmp的实现
- 20170912_将一个整数转换为字符串
- 20170912_归并两个已经排好序的单链表
- webService的soap风格的接口的安全问题
- 前言
- android面试题
- 如何在webservice中配置多数据源
- Say less, plan less,Do more!
- 20170912
- 牛客网-剑指offer-11-二进制中1的个数
- Spring-AOP @AspectJ进阶之绑定代理对象
- webService的rest风格的接口发布流程
- C#--抽象工厂设计模式--三层框架
- BZOJ 1010 [HNOI2008]玩具装箱TOY (dp+斜率优化)
- 如何解决电商网站超卖现象
- bzoj1969LANE 航线规划
- Matlab中函数如何定义