• 36289阅读
  • 40回复

自己写的一个秒表和世界时间表(QT4 开发模式的入门例子) [复制链接]

上一主题 下一主题
离线htyoung
 

只看楼主 倒序阅读 楼主  发表于: 2007-03-18
— 本帖被 XChinux 执行加亮操作(2007-03-18) —
自己用Qt4.1写的一个秒表和世界时间表,
PS:我编译 运行是在win VC++express.
          linux下我没有编译,但是因为是纯QT打造,linux下编译应该没问题,运行就不能保证。

给个screen shot
[ 此贴被htyoung在2008-10-22 22:40重新编辑 ]
描述:源代码
附件: worldtime.v01.0029.tar.gz (20 K) 下载次数:1546
描述:使用说明
附件: worldTime_Stopwatch_specification.tar.gz (91 K) 下载次数:1346
***
QT5
***
离线htyoung

只看该作者 1楼 发表于: 2007-03-18
一直用Qt3,
为了学习和移植老代码到qt4 就写了这个 现在拿出来和大家分享。
用惯了qt3 ,一开始认为qt4的ui文件不能生成c++和。h文件很不方便,但是现在发现,
这正是它的好处,达到了界面和功能的分开。
***
QT5
***
离线dfman1978

只看该作者 2楼 发表于: 2007-03-23
写的很好,我也正在学QT,有机会一起交流,QQ14829976
离线htyoung

只看该作者 3楼 发表于: 2007-03-28
引用第2楼dfman1978于2007-03-23 15:22发表的  :
写的很好,我也正在学QT,有机会一起交流,QQ14829976

大家一起学习。
***
QT5
***
离线raymond1220
只看该作者 4楼 发表于: 2007-04-04
运行不了呢?
离线htyoung

只看该作者 5楼 发表于: 2007-04-10
引用第4楼raymond1220于2007-04-04 16:22发表的  :
运行不了呢?


你是在那里运行 不了?
***
QT5
***
离线wadext

只看该作者 6楼 发表于: 2007-04-11
我也刚入手QT4,写过几个小界面的东西,都拿不出手,多谢楼主的这个,正好做个参考,以后我们多交流啊! msn : augustine-dragon@hotmail.com
离线htyoung

只看该作者 7楼 发表于: 2007-04-12
引用第6楼wadext于2007-04-11 18:28发表的  :
我也刚入手QT4,写过几个小界面的东西,都拿不出手,多谢楼主的这个,正好做个参考,以后我们多交流啊! msn : augustine-dragon@hotmail.com


有用就好,希望大家一起提高。
我觉得我这个example是很好的QT4 入门案例。里边用到了很多QT4基础的东西。
***
QT5
***
离线wadext

只看该作者 8楼 发表于: 2007-04-12
我老是感觉designer和具体实现分开是一个很不习惯的东东,好比在vb,vc下设计窗体,双击就可以进入代码阶段,而designer不能自定义信号和槽(不知道能不能定义,目前我不会,呵呵),这个老感觉是个很不习惯的地方,你们是怎么做到的?
离线htyoung

只看该作者 9楼 发表于: 2007-04-12
引用第8楼wadext于2007-04-12 16:56发表的  :
我老是感觉designer和具体实现分开是一个很不习惯的东东,。。。。。。


界面我用designer,代码我是完全手工写的,可能我一直在linux下编程的缘故,用惯了就好了。
相比较Qt3 ,qt4界面和具体实现分割的更好。写完这个例子后,我就彻底转到了qt4上了。
***
QT5
***
离线guyansrg

只看该作者 10楼 发表于: 2007-04-13
支持,我一直在用Qt3,对Qt4只是抱观望态度。通过这个例子,我觉得应该转到Qt4上去。
离线limian
只看该作者 11楼 发表于: 2007-04-16
make时出现了问题
该怎么解决呢

mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `E:/qt/示例/trunk'
g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL
-DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.2.2/
include/QtCore" -I"C:/Qt/4.2.2/include/QtCore" -I"C:/Qt/4.2.2/include/QtGui" -I"
C:/Qt/4.2.2/include/QtGui" -I"C:/Qt/4.2.2/include" -I"." -I"C:/Qt/4.2.2/include/
ActiveQt" -I"debug" -I"." -I"c:\Qt\4.2.2\mkspecs\win32-g++" -o debug\worldtimer.
o worldtimer.cpp
worldtimer.cpp: In member function `void YWorldTimer::slotSlideWorldTimer(int)':

worldtimer.cpp:160: warning: unused variable 'j'
worldtimer.cpp: In member function `void YWorldTimer::slotStartOneStopWatch()':
worldtimer.cpp:307: error: 'class YStopWatch' has no member named 'setTextStream
'
worldtimer.cpp:318: error: 'class YStopWatch' has no member named 'setTextStream
'
worldtimer.cpp:328: error: 'class YStopWatch' has no member named 'setTextStream
'
mingw32-make[1]: *** [debug\worldtimer.o] Error 1
mingw32-make[1]: Leaving directory `E:/qt/示例/trunk'
mingw32-make: *** [debug] Error 2
离线htyoung

只看该作者 12楼 发表于: 2007-04-20
引用第11楼limian于2007-04-16 13:35发表的  :
make时出现了问题
该怎么解决呢

mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `E:/qt/示例/trunk'
...............................................................................

在你的pro文件里有没有这一行:
DEFINES    +=WIN_CONFIGURATION EURO_TIME LOG_STOPWATCH

如没有就加入这一行
尤其是 LOG_STOPWATCH 这个开关。因为这个开关是激活 setTextStream()的
如下:
#ifdef LOG_STOPWATCH
    void setTextStream(QTextStream * stream);
    void writeTimeToTheStream();
#endif

PS:另外 如果你是在windows下开发的话,我强烈建议 你使用 VC 2005 express +QT opensource(它们都是免费的),
因为在windows下VC++ IDE的调试能力要远强于其他的工具。
***
QT5
***
离线hwt23

只看该作者 13楼 发表于: 2007-04-24
问一下,怎样把ui文件编译为exe 文件?
离线hwt23

只看该作者 14楼 发表于: 2007-04-24
用 uic -i form1.h -o form1.cpp form1.ui形式的命令将设计的ui文件生成cpp文件,再将cpp编译成exe文件但是编译出错,没有exe文件生成,是怎么回事?命令行显示如下:
C:\Qt\4.2.3\hwt>make
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Qt/4.2.3/hwt'
c:\Qt\4.2.3\bin\uic.exe hwt2.ui -o ui_hwt2.h
g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DWIN_CO
NFIGURATION -DEURO_TIME -DLOG_STOPWATCH -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT
_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.2.3/include/QtCore" -I"C:/Qt/4.2.3/i
nclude/QtCore" -I"C:/Qt/4.2.3/include/QtGui" -I"C:/Qt/4.2.3/include/QtGui" -I"C:
/Qt/4.2.3/include" -I"." -I"C:/Qt/4.2.3/include/ActiveQt" -I"tmp\moc\debug_share
d" -I"." -I"..\mkspecs\win32-g++" -o tmp\obj\debug_shared\hwt2.o hwt2.cpp
g++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runt
ime-pseudo-reloc -Wl,-subsystem,windows -o "debug\hwt.exe" tmp\obj\debug_shared\
hwt2.o  -L"c:\Qt\4.2.3\lib" -L"c:\Qt\4.2.3\lib" -lmingw32 -lqtmaind -lQtGuid4 -l
QtCored4
c:\Qt\4.2.3\lib/libqtmaind.a(qtmain_win.o)(.text+0x30b): In function `WinMain':
C:/Qt/4.2.3/src/winmain/qtmain_win.cpp:105: undefined reference to `qMain(int, c
har**)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\hwt.exe] Error 1
mingw32-make[1]: Leaving directory `C:/Qt/4.2.3/hwt'
mingw32-make: *** [debug-all] Error 2

C:\Qt\4.2.3\hwt>
离线htyoung

只看该作者 15楼 发表于: 2007-04-25
引用第14楼hwt23于2007-04-24 23:55发表的  :
用 uic -i form1.h -o form1.cpp form1.ui形式的命令将设计的ui文件生成cpp文件,再将cpp编译成exe文件但是编译出错,没有exe文件生成,是怎么回事?命令行显示如下:
C:Qt4.2.3hwt>make
mingw32-make -f Makefile.Debug all
mingw32-make[1]: Entering directory `C:/Qt/4.2.3/hwt'
c:Qt4.2.3binuic.exe hwt2.ui -o ui_hwt2.h
.......


请注意,在qt4 里尽量不要再用uic  将ui去生成 .cpp 和.h 文件,

如果你想编译这个项目,请直接用使用 stopwatch.pro
如 VC++ express + Qt4:
qmake -tp vc -o stopwatch stopwatch.pro

编译成功后,请仔细看一下code,你会明白 ,为什么不要用uic。因为这样可以保证功能模块和界面模块的很好分离。
***
QT5
***
离线frednuaa

只看该作者 16楼 发表于: 2007-09-24
向前辈们学习,加油努力
离线xiaobingyu
只看该作者 17楼 发表于: 2008-05-04
能不能把原来代码给我学习一下
                            初学者
离线kevin_chen
只看该作者 18楼 发表于: 2008-10-19
很好的入門
离线shanshi
只看该作者 19楼 发表于: 2008-11-12
写的很好,我也正在学QT
离线wanstar
只看该作者 20楼 发表于: 2008-11-12
xiexie  xuexi
离线bgl8888
只看该作者 21楼 发表于: 2008-11-28
好东东,寻他千百度,原来在此处
离线shell2010

只看该作者 22楼 发表于: 2009-02-02
好的,谢谢,先下下来看看
学习学习一下
离线飞肥
只看该作者 23楼 发表于: 2009-05-27
大家一起学习。
离线dianfengxiao
只看该作者 24楼 发表于: 2009-07-17
学习中
离线rain430
只看该作者 25楼 发表于: 2009-10-10
谢谢分享~~~~~~顶~~~~
离线judefox
只看该作者 26楼 发表于: 2009-10-10
谢谢,我刚学,下下来好好研究研究!!
离线dengzemin
只看该作者 27楼 发表于: 2009-11-17
我这make也有错
worldtimer.cpp: In member function ‘void YWorldTimer::slotSlideWorldTimer(int)’:
worldtimer.cpp:160: warning: unused variable ‘j’
worldtimer.cpp: In member function ‘void YWorldTimer::slotStartOneStopWatch()’:
worldtimer.cpp:307: error: ‘class YStopWatch’ has no member named ‘setTextStream’
worldtimer.cpp:318: error: ‘class YStopWatch’ has no member named ‘setTextStream’
worldtimer.cpp:328: error: ‘class YStopWatch’ has no member named ‘setTextStream’
make: *** [worldtimer.o] Error 1
gsgdf
离线htyoung

只看该作者 28楼 发表于: 2009-12-28
不知27楼的问题解决了吗 ? 你看一下 是不是 某个宏 没开。请仔细看一下 pro文件 。
***
QT5
***
离线rockyru
只看该作者 29楼 发表于: 2010-01-12
好东西,一定要搞懂QT
离线henrya2
只看该作者 30楼 发表于: 2010-01-16
ui 文件在预编译阶段会生成对应的.cpp和.h文件,都是自动完成的,生成后可以看到源代码。
离线babybluema

只看该作者 31楼 发表于: 2010-01-31
不错,很好。学习了
离线embeddedgood

只看该作者 32楼 发表于: 2010-03-23
顶一下!
离线geassary
只看该作者 33楼 发表于: 2010-05-25
为什么编译完成了却说:
The process could not be started!
急求解决啊!
爱上qt
离线huilong1314
只看该作者 34楼 发表于: 2010-06-26
怎么下载不了呢,楼主还有没有原版的,能不能发给我一份,我刚学qt,多多指教
离线htyoung

只看该作者 35楼 发表于: 2011-01-14
晚了点 ,但是能下的呀!
***
QT5
***
离线htyoung

只看该作者 36楼 发表于: 2011-01-14
准备贡献一个更好的入门案列
***
QT5
***
离线昨夜星空
只看该作者 37楼 发表于: 2012-01-05
恩qt4给了这个表的列子
离线zhappy82
只看该作者 38楼 发表于: 2012-03-19
没有源代码吗?
离线neil-wen

只看该作者 39楼 发表于: 2013-08-19
好东西
快速回复
限100 字节
 
上一个 下一个