hailler的个人主页

http://www.qtcn.org/bbs/u/183962  [收藏] [复制]

hailler

  • 0

    关注

  • 2

    粉丝

  • 26

    访客

  • 等级:新手上路
  • 总积分:25
  • 保密,2011-01-01

最后登录:2019-06-22

更多资料

日志

2017-10-29 11:30

flags 是枚举的数据类型,先判断是否含可编辑属性,没有就算了,有就去除。

Qt::ItemFlags flags = index.flags();

if(flags & Qt::ItemIsEditable )
flags ^= Qt::ItemIsEditable;

阅读全文»分类:默认分类|回复:0|浏览:501
2017-10-29 11:15

做了个表格,能动态添加,删除行列,并进行即时计算。用了 model view delegate模式。
在model 里设置了所有单元格都可编辑。用delegate 模式,设定了某些行只读属性。
要求能判断,选中的行为只读,不进行复制操作。先用了 flags的办法,由于只是在 delegate里设定(model 里设定太麻烦了),发现这些设定无效,一切以model为准。
又想到了用获取类名的办法来判断。
我自己的类名为    class ReadOnlyDelegate : public QItemDelegate  
QModelIndex index=tableview->currentIndex();
QAbstractItem ..

阅读全文»分类:默认分类|回复:0|浏览:543
2017-10-28 14:01

文本因为每个字体的宽度可能不一样,需要逐个读取,判断,存储到一个QList <QString > rowStringList 里面。
读取数据时,按照 List.at(i)来读取,并显示或者打印。
表格的多行打印,参考了很多办法,最终采用了,先判断每行最多的打印列数,分页,储存每页行的起始列号。
打印完第一页列所有的行(rows)后,在根据存储的第二页起始列,打印完第二页的所有行(rows),直到打完所有的表格。
参考了
http://m.blog.csdn.net/Dr_Abel/article/details/51327165
https://zhidao.baidu.com/question/2013742433066221628.html
http://blog ..

阅读全文»分类:默认分类|回复:1|浏览:723
2017-10-28 13:28

在做打印程序时,先开始用了 宽度 /字体宽度 = 每行个数 的办法,发现对于不同宽度的混合字体的字符串,输出效果一塌糊涂。
于是采用了一个笨办法。对每个字体进行宽度判定,存入到一个临时 linestr ,当linestr的宽度大于设置值时,换行。行个数计算器清零。


QString text = "abckadamlamsdfloi";
text += "MMs1 may optionally also include a foundry name, e.g. (The Qt 2.x syntax, i.e. , is also supported.)";
text += "If the family is available from more than one foundry and the foundry isn& ..

阅读全文»分类:默认分类|回复:0|浏览:812
2017-10-25 19:12

为了给儿子看看游戏是怎么实现的,决定学习下图形、视图、动画的实现。
何况还是想实现任意表格、文字、图片的打印。不用画图的方式,目前我还没找到完美的解决方案。

阅读全文»分类:默认分类|回复:0|浏览:444
2017-10-21 17:57

功能十分强大,可以自定义页边距,标题,页眉、页脚、支持表格打印,用了Qgraphicsscene 基类,用绘图加PRINT的方式实现了文本和表格的打印,根据里面的构架,可以自己添加代码,实现加上图片的打印。
可惜的是表格行多的时候,不能打印出来了。参考其他人的计算公式,自己应该也能实现。

阅读全文»分类:默认分类|回复:3|浏览:749
2017-10-19 20:16

尝试了插入,添加行列,对保存table的QList 数据进更新后,发现VIEW未更新,添加下列代码即可。beginResetModel(); endResetModel();

阅读全文»分类:默认分类|回复:0|浏览:310
2017-10-19 20:09

建立了一个model,可以用来对表格进行删除、添加行、列;保存、读取数据。
想要实现表格数据变更,立马进行计算的效果,尝试了 dataChanged(index,index) signal。发现这个signal一直无法使用。(后来发现是没定义Q_OBJECT ,但是定义了以后一直编译出错,干脆放弃。回家后查了网上,只要修改下PRO里面的 TARGET的名字就可以了,不知道是不是QT自身的问题)
查看了文档说明,发现 setData()函数会在数据变更后自动启动,干脆在这个函数里写了个函数,对表格数据进行计算,再保存。由于用了model-view-degelate 模式,保存后的数据直接在vi ..

阅读全文»分类:默认分类|回复:0|浏览:463
2017-10-19 19:56

新建三个DIALOG ,在MAINWINDOW 上用QCREATER 拖一个stackedwidget ,把里面的page全删除。默认有两个的。否则addwidget()会从第三个开始添加。
stackedWidget = new QStackedWidget(this);
stackedWidget = ui->stackedWidget;
stackedWidget->setFrameStyle(QFrame::Panel);
basicInfo = new BasicInformation;
subsidence = new Subsidence;
foundation = new Foundation;
stackedWidget->addWidget(basicInfo);
// subsidence 规范法
subsidence = new Subsidence(this);

stackedWidget->addWidget(su ..

阅读全文»分类:默认分类|回复:0|浏览:498
2017-10-19 19:29

定义了Q_OBJECT 后,编译出现collect2:ld returned 1 exit status
TARGET = haillertools 改个名字,居然编译通过了。

阅读全文»分类:默认分类|回复:0|浏览:279
12

Powered by phpwind v8.7 Certificate Copyright Time now is:04-27 17:54
©2005-2016 QTCN开发网 版权所有 Gzip disabled