绘制图元的注意事项.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
绘制图元的注意事项

21、Qt窗体布局操作 ????布局中主要的操作有 ????水平布局,?垂直布局,?打破布局。 ????当只有一个控件时,不能进行布局操作。布局操作是多个控件,或者对话框的操纵。 ????选择多个窗体控件,按住shift键,鼠标点击选取,右键进行布局操纵。 ????当选中对话框主窗体时,可以进行窗体上控件的布局操作。 ????该操纵将对窗体上的控件或者布局进行,水平布局或者垂直布局操纵 22、Qt绘图模式 ????Qt助手,放大缩小,很方便。 ????绘图系统 ????主要基于三个类,QPainter, QPaintDevice, QPaintEngine. ????QPainter用于执行绘图操作。QPaintDevice使用QPaint进行绘图所使用的二维空间。QPaintEngine提供了在不同设备上的绘图接口,被QPainter, QPaintDevice内部使用,对于程序员来说是隐藏的,只有在创建自己的设备类型时,才能用到。 ????QPainter能用画笔作图,画文字或者图形。 ????画?填充?创建设备?读写图形文件?样式 ????QPaintDevice是用于画图的设备的基类。 ????QPaintDevice的子类有?QWidget, QImage, QPixmap, QGLWidget, QGLPixelBuffer, QPicture and QPrinter。 23、CListWidget与CTableWidget编程注意事项 ????在执行CListWidget与CTableWidget等类似的列表控件的Clear操作时,系统经常崩溃,原因分析。这个clear操作因为改变了列表的内容,会触发其它的信号。特别是下面的两个函数。 ????CListWidget的函数 ????void currentItemChanged ( QListWidgetItem * current, QListWidgetItem * previous ) ????void currentRowChanged ( int currentRow ) ????CTableWidget的函数。 ????void currentCellChanged ( int currentRow, int currentColumn, int previousRow, int previousColumn ) ????void currentItemChanged ( QTableWidgetItem * current, QTableWidgetItem * previous ) ????如果,在下面的函数中,没有加入信号参数检测,就很容易出错。主要检查currentRow?是否大于或者等于0。current,previous?是否有效。如果不检查,并根据该参数,调用了其它的方法。当currentRow =-1;时,就会发生错误。 ????ui.tableWidget-item(row, 0);??row=-1时,调用就会产生错误。 ????ui.listWidget-item(row);??row=-1时,调用就会产生错误。 ????错误解决方法:加入错误检查, ????if (row=0){//其它相关处理} 24、一个工程中出现多个QMainWindow并同时显示的方案。 ????问题描述: 在一个CMainWindow CMyWin1的继承类中,如果再使用一个CMainWindow类CMyWin2; 在CMyWin1中使用以下代码、 CMyWin2 mw; mw.show () mw?一闪就没有了。具体原因不明。 定义窗体局部变量:?CDataManager *m_pDataMager; 调用过程如下,并建立信号连接,监控信号?destryed,接收道该信号时,做一个槽处理。 if (m_pDataMager) { ???m_pDataMager-setVisible (true); ???m_pDataMager-showNormal (); ???//m_pDataMager- } else { ???m_pDataMager = new CDataManager(); ???connect(m_pDataMager, SIGNAL(destroyed(QObject*)), ?????this, SLOT(after_DataManage_Destoryed(QObject*))); ???m_pDataMager-setVisible (true); } 在函数after_DataManage_Destoryed中,进行窗体的delete,并设置变量为NULL。 void SeismicRecogn::after_DataMan

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档