预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
21、Qt窗体布局操作布局中主要的操作有水平布局,垂直布局,打破布局。当只有一个控件时,不能进行布局操作。布局操作是多个控件,或者对话框的操纵。选择多个窗体控件,按住shift键,鼠标点击选取,右键进行布局操纵。当选中对话框主窗体时,可以进行窗体上控件的布局操作。该操纵将对窗体上的控件或者布局进行,水平布局或者垂直布局操纵22、Qt绘图模式Qt助手,放大缩小,很方便。绘图系统主要基于三个类,QPainter,QPaintDevice,QPaintEngine.QPainter用于执行绘图操作。QPaintDevice使用QPaint进行绘图所使用的二维空间。QPaintEngine提供了在不同设备上的绘图接口,被QPainter,QPaintDevice内部使用,对于程序员来说是隐藏的,只有在创建自己的设备类型时,才能用到。QPainter能用画笔作图,画文字或者图形。画填充创建设备读写图形文件样式QPaintDevice是用于画图的设备的基类。QPaintDevice的子类有QWidget,QImage,QPixmap,QGLWidget,QGLPixelBuffer,QPictureandQPrinter。23、CListWidget与CTableWidget编程注意事项在执行CListWidget与CTableWidget等类似的列表控件的Clear操作时,系统经常崩溃,原因分析。这个clear操作因为改变了列表的内容,会触发其它的信号。特别是下面的两个函数。CListWidget的函数voidcurrentItemChanged(QListWidgetItem*current,QListWidgetItem*previous)voidcurrentRowChanged(intcurrentRow)CTableWidget的函数。voidcurrentCellChanged(intcurrentRow,intcurrentColumn,intpreviousRow,intpreviousColumn)voidcurrentItemChanged(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并同时显示的方案。问题描述:在一个CMainWindowCMyWin1的继承类中,如果再使用一个CMainWindow类CMyWin2;在CMyWin1中使用以下代码、CMyWin2mw;mw.show()mw一闪就没有了。具体原因不明。定义窗体局部变量:CDataManager*m_pDataMager;调用过程如下,并建立信号连接,监控信号destryed,接收道该信号时,做一个槽处理。if(m_pDataMager){m_pDataMager->setVisible(true);m_pDataMager->showNormal();//m_pDataMager->}else{m_pDataMager=newCDataManager();connect(m_pDataMager,SIGNAL(destroyed(QObject*)),this,SLOT(after_DataManage_Destoryed(QObject*)));m_pDataMager->setVisible(true);}在函数after_DataManage_Destoryed中,进行窗体的delete,并设置变量为NULL。voidSeismicRecogn::after_DataManage_Destoryed(QObject*obj){//QMessageBox::information(this,”TestBox”,”DataManage_Destoryed!”);if(m_pDataMager){disconnect(m_pDataMager,SIGNAL(destroyed(QObject*)),this,SLOT(after_DataManage_Destoryed(QObject*)));obj->deleteLater();m_pDataMager=NULL;}}25