• 5233阅读
  • 2回复

几个菜鸟问题~关于窗体打开时运行一段代码~ [复制链接]

上一主题 下一主题
离线mcow
 

只看楼主 倒序阅读 楼主  发表于: 2010-08-06
使用QtCreator
1. 想在某窗体打开时运行某代码,是不是放到show里面?
2. 在尝试1期间,发现Go to Slot没有Show,那我就在cpp里面自己加winMain::show(),还有在头文件也加上了
public slots:
  void show();
编译提示:
ISO C++ forbids declaration of 'show' with no type
prototype for 'int winMain::show()' does not match any in class 'winMain'
candidate is: void winMain::show()
不知是什么问题?
3. 删掉之后,编译,提示:
debug/main.o: In function `Z5qMainiPPc':
G:\qt\pBox\pBox-build-desktop/../pBox/main.cpp:8: undefined reference to `winMain::show()'
debug/moc_winmain.o:G:\qt\pBox\pBox-build-desktop/debug/moc_winmain.cpp:72: undefined reference to `winMain::show()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\pBox.exe] Error 1
mingw32-make: *** [debug] Error 2
The process "D:/Qt/2010.04/mingw/bin/mingw32-make.exe" exited with code %2.
Error while building project pBox (target: Desktop)
When executing build step 'Make'

Tools>Option>Qt4里面设置正确~~

我刚刚学~~~问题比较菜~~hoho~~
离线XChinux

只看该作者 1楼 发表于: 2010-08-06
想在窗体打开时运行一段代码?是在窗体显示前?显示后?
一般来说,你可以将你的这段代码放到一个单独的SLOT函数中(比如叫taskFunc())。然后在主窗体的构造函数中加上下面一段话:

QTimer::singleShot(0, this, SLOT(taskFunc()));

这样窗体显示出来后就会执行这段个SLOT函数。

如果耗时比较长,最好将主窗体disable掉,执行完后再enable主窗体。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线mcow

只看该作者 2楼 发表于: 2010-08-07
o.... thx alot~
快速回复
限100 字节
 
上一个 下一个