- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)