作为QT菜鸟,每天都在摸索啊,前天有点发现,赶紧记录下来:
前几天在用QGridLayout的时候,想对其内的部件进行访问,发现总是转型出错。
后来才发现转型错误的地方。
先说一下正确的做法。
QGridLayout*grid=new QGridLayout;
...........//加入部件
QLayoutItem*itm=grid->itemAtPosition(i,j);//对(i,j)位置的窗口部件进行访问
QPushButton*bt=dynamic_cast<QPushButton*>(itm->widget());//我这儿用加入的QPushButton
这样就可以 对内部的窗口部件进行访问了。
可能一般初学者都可以想到itemAtPosition(i,j)的方法,然后直接转型:
如:QPushButton*bt=dynamic_cast<QPushButton*>(itm)
这当然是错的。结果肯定是bt为空