1,Qt中信号槽机制的缺陷:
假如我写了这么一个connect函数,
connect(scene, SIGNAL(itemInserted(DiagramItem*)),
this, SLOT(itemInserted(DiagramItem*)));
但是之后我修改了函数itemInserted的参数改为:VPItem*
编译甚至重新生成工程的时候,这个隐晦的错误并不会被编译器检查出来~ 只不过这个connect失败~
2,Qt的GUI布局类
QGridLayout,网格化布局,
成员函数:
-
void addLayout ( QLayout * layout, int row, int column, Qt::Alignment alignment = 0 )
-
void addLayout ( QLayout * layout, int row, int column, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )
-
void addWidget ( QWidget * widget, int row, int column, Qt::Alignment alignment = 0 )
-
void addWidget ( QWidget * widget, int fromRow, int fromColumn, int rowSpan, int columnSpan, Qt::Alignment alignment = 0 )
效果:
图中的每个cellWidget又是用过QGridLayout实现的,例如Conditional: -
代码就不给出了,见diagram Scene。
http://web.mit.edu/qt-dynamic/www/graphicsview-diagramscene.html