回复: 最牛计算器(含全部源代码)
#21 [zhanglyl 12-29 08:53]
很好的素材!
#22 [transformer 12-29 10:06]
#23 [guoyuanqiang 12-29 15:26]
#24 [atomspace 12-30 22:20]
初学QT,看了你的程序,学到了很多东西, 非常感谢
有一个问题想请教:calculator类中有大量的slot函数,与计算器按钮一一对应,查看了代码,这些对应关系不是在代码中通过connect手动实现的,而是calculator.ui本身描述了这种对应关系。请问,calculator.ui中的这些对应关系是手动加进去的吗?还是通过某种方式自动生成的?请多多指教!
另:程序中每次打开子窗口,如大整数工具、线性代数工具、多项式求根工具等,代码中时先new一个新窗口,再通过show显示出来,请问这些窗口关闭后是否销毁?多次打开是不是会占用较多的内存?
#25 [zswx0226 12-31 09:40]
问题一:是通过QT中带有的Qt designer来设计界面的时候添加的信息和槽,这些添加完之后,利用Qt creator 来编译的时候就会自动生成一个ui_*****.h的头文件,在这头文件中会把这些信息和槽添加进去的。然后你就利用这个头文件可以实现自己的功能了。其实Qt的信息和槽有在界面设计的时候有三种实现形式,一是自己写,而是上面的那一种,还有一种半自动,用0n_QButton_clicked()这种形式。具体你可以百度。
问题二:这些窗口关闭后没有被销毁,因为在Qt中当子窗口被关闭后(即调用close()),只会把窗口隐藏起来,只有当父窗口被销毁时,才会把这些子窗口销毁掉。要是想子窗口在关闭时被销毁掉,减少资源占用,你可以在代码的closeEvent()这个槽函数中的event->accept();这行代码下添加一句
delete this;就可以把本窗口给销毁掉。(但是我试了一下不能够全部释放资源,大概可以释放80%左右的资源,不知道是为什么)
感谢你提出第二个问题,之前我都没注意到过这个问题。