Work on KDE/QT native port to MS Windows started.
Tue, 24 Dec 2002 06:22:07 -0800 (PST)
Oh man this is very cool! Quite a few people have wished for a GPL'd Qt for windows. We have
some windows programmers that are interested in providing Qt# on windows. A few have even
expressed interest in a project like yours. I'll make sure to pass the message along and see if
we can't help with the WndProc functions. You might want to ask the wine folks for this also and
it is important to note that if you could try building your project with wine it'd probably be
suitable for regular windows.
I am going to have a try with your stuff just as soon as possible and see if I can't compile Qt#
against it ;) Thank you so much man, this is incredibly good news. Now if we can get an
enterprising MAC developer to port Qt/X11 to Aqua then we might have a truly cross-platform GPL'd
Once again, _thanks_, this was a nice christmas present!
BTW, I think a GPL'd Qt that can be compiled with mingw32 will be the best end result. Cygwin can
be used to provide KDE.
--- Holger Schroeder <firstname.lastname@example.org> wrote:
> Hi all,
> the short form of this is: i started porting QT for X11 to Windows. I can
> already open a window on the screen and draw to it, but i will need a long
> time or some help to get the message passing stuff of windows integrated.
> discussion of this will be on email@example.com.
> And now the long one:
> QT on Windows native readme by holger...
> The Big Picture
> I think it is time to have KDE on windows now. i was using only linux for
> about a year now, and then i got an ibm thinkpad with windows xp preinstalled,
> and i had to work with it for university. when working on windows, i really
> missed a lot of the usability and consistency i was used to in kde.
> internet explorer can only log into ftp sites as anonymous, mozilla can only
> download files from ftp sites, i didn't find any sftp client, network
> neighborhood did not work at all, to transfer files to/from other people
> involved installing ftp clients and servers for all these people. i was told
> that windows xp was the most stable windows ever, half an hour later i made it
> reboot, but not by hitting start->reboot, but by unpacking an archive file from
> the cygwin installation. i crash this notebook several times a day...
> so i thought about having kde on windows. i wanted a usable set of programs on
> windows on the one hand, and on the other hand i think it would be easier to
> convince people that linux/kde is better than windows, when they could test the
> "linux gui"/kde on windows for some weeks and then decide, if they still need
> the windows os under the kde gui.
> so i started looking into "porting" kde to windows.
> What works today:
> today you can download and inatall a version of kde 2.2 for cygwin. this is kde
> on windows with the restriction, that all kde windows are in a big XFree window.
> this is mainly like a vmware window running windows, only the other way around.
> from the normal user point of view this is not that cool, it is a proof of
> concept, but for example you can not play Tron, because the delay in the system
> is to big for that "fast" game.
> but from the programmers point of view this proves, that kde on windows is
> possible. look at www.cygwin.com, cygwin provides a posix compatibility layer
> for windows. that means, you compile your normal mc for linux and it works in
> the cygwin environment. cygwin also comes with a x-server, to which the
> programs can draw. this is was kde on cygwin does. for screenshots look at
> so you can already compile windows binarys of kde today, thanks to the cygwin
> and kde-cygwin people. the only thing missing for kde on windows without this
> X11 layer inbetween is a QT for windows library.
> looking into qt:
> qt is a platform and operating system independent gui toolkit. you write
> programs based on qt, and then you can compile them for linux, other unixes
> which have X11 servers or for embedded devices running linux, like the sharp
> zaurus or you compile them for mac os or for ms windows. look at
> www.trolltech.com for more information on qt. the opera browser from
> www.opera.com is an example for a platform-independent application.
> kde uses almost only qt methods and almost no native X11 or operating system
> functions in the different qt programs for opening windows on the screen and
> displaying stuff in them.
> qt is licensed under different licenses. qt for x11 is licensed under the GPL.
> that means, i can change the sourcecode like i want, as long as i give out the
> changed sourcecode for free and do not build and sell any binary only changed
> version of qt.
> qt for windows, qt for mac os and qt for x11 are also licensed under a commercial
> license, which allows customers to build and sell programs based on qt without
> having to give out the source code of their programs.
> looking into the source code of qt for x11, only about fifteen files in the
> sources are x11-dependent. they can be found in the src/kernel directory of the
> qt sources. they are all named *_x11*. as the qt sources consist of several
> thousand files, the trolltech people did a very good job on creating this toolkit.
> in these files there are the implementations of the methods to open a window,
> paint stuff in them, like lines and rectangles and so on, to draw pixmaps on them,
> to draw text of a special font in a special size on them and to communicate with
> the underlying window system, for example to implement drag and drop and copy and
> paste with other windows or to get mouse or keyboard events from it.
> as the gpl allows me to port qt-x11-free to windows, i started doing it.
> i am able to open a window on windows, resize it, move it on the screen, draw
> points, lines and rectangles in it, fill them in different colors and with
> different brushes, draw in different colors. The fonts stuff is still not done,
> but i can write text with it already. The methods to get the size of characters or
> strings on screen are still missing, so the placement of strings is not as it
> should be, but i think i will get that done in the next time.
> there is a lot of stuff that can be left out for later, like sound and drag and
> drop or cut and paste stuff.
> i guess i finished about a quarter of what has to be done to be able to basically
> run qt on windows in beta quality. there is only one area, which i do not
> understand until now, and that is the windows message system, which seems to be
> needed to get mouse and keyboard events as well as repaint and window move and
> other stuff. also i still need to slightly modify the sourcecode of qt programs
> to be able to start them. i have to insert a WinMain and a WndProc function into
> the qt application sources, as i couldn't figure out how to do that stuff in the
> qt library sources.
> so i am searching for some interested people, which do know how to help with this stuff.
> to get a start at this, you need a ms windows system, i have windows xp professional.
> then install cygwin from www.cygwin.com. then look at kde-cygwin.sourceforge.net
> and follow the instructions to install KDE 2. you somewhere have to enter the
> url from where you want to download the packages. be sure that you do not enter
> any leading or trailing spaces in this field, as the setup program doesn't
> understand that :(.
> when you have kde running, install the stuff needed to compile qt 2, like gcc and
> so on, it is all mentioned on kde-cygwin. when i started playing around with this
> qt 3 was not yet working on cygwin for me, so i started with qt 2. once qt 2 is
> running, it should take about a day to apply the needed changes to qt 3 to get it
> then follow the instructions to compile qt 2 from the cvs sources at
> cvs.kde-cygwin.sf.net and test if some of the tutorial and example programs work
> for you to be sure that everything works until here.
> then you can download my qt-win sources from http://holgis.net/qt-win.
> unpack them and compile them
> cd into the tutorial/t1 directory and type make, that should build the changed
> ./t1.exe. start it and see what it does.
> now you can start fiddling around with the sources. for now ignore all directories
> except /tutorial/t1 as this is the test program and /src/kernel as here are the
> files, that need to be adopted. the original files for X11 are named *_x11*,
> the windows ones i made with the X11 ones as templates are named *_win*.
> i changed the makefiles to not compile the _x11 ones but the _win ones.
> the qpainter_win.cpp, qpixmap_win.cpp and qfont_win.cpp files are for drawing on
> the screen, you have to look here, if you want to make that better.
> when you want to get this message/event stuff working, you have to look into
> the qapplication_win.cpp and qwidget_win.cpp files.
> it was quite useful to me to look at the sources of the SDL library
> (www.libsdl.org), as they also open windows on the screen and draw to them, and
> the microsoft development network, search for it with
> gg:msdn gdi
> and you will find some relevant stuff, but for me mozilla was the better browser
> for those pages.
> Happy hacking !
> i plan to get a sf account and create a branch in the kde-cygwin qt-2 repository,
> if i am allowed to do so. i will spend the next two months hacking on this, let's
> see how far we will come until then.
> NOTE: This is not to fool the Trolltech people, they are really doing a great job.
> I think, that as well as many kde programmers use qt for commercial projects at
> their companies and generate income for trolltech this way, qt on windows will
> convince more people to use qt. Imagine you could use konqueror, kmail, koffice
> and kdevelop instead of internet explorer, outlook, ms office and visual studio
> at no cost and even develop gpl`ed programs with that for free.
> as kdevelop recently was mentioned as the best ide for linux beating kylix besides
> others according to a dot.kde.org article, i guess we could convince quite some
> people not to use .net and switch to qt for their next projects. but let's see
> how far we will come.
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.