Fönsterprogrammering
Fönsterprogrammering
Hej!
Jag och tre andra har tänkt att göra ett program i c++, relativt stort sådant. I programmet ska bl.a. ritas bilder m.m.
Tanken är att programmet i första hand ska köras i windows, men sedan ska det förmodligen portas till Linux, därför undra jag vad Ni tycker att Vi ska använda för att skapa fönstren, så att det ska bli enkelt att porta från windows till Linux.
Så vad rekomenderar Ni?
Jag och tre andra har tänkt att göra ett program i c++, relativt stort sådant. I programmet ska bl.a. ritas bilder m.m.
Tanken är att programmet i första hand ska köras i windows, men sedan ska det förmodligen portas till Linux, därför undra jag vad Ni tycker att Vi ska använda för att skapa fönstren, så att det ska bli enkelt att porta från windows till Linux.
Så vad rekomenderar Ni?
Varför göra som alla andra, när alla andra gör det????
qt låter bra
QT låter bra, vi fundera på att släppa programmet som OpenSource, under GPL!!!
Varför göra som alla andra, när alla andra gör det????
Nej, så enkelt var det inte. Sorry.
Cygwin-porten av KDE använder iofs unixversionen är jag rätt övertygad om. Kanske inte så intressant för de flesta ändå eftersom cygwin och X krävs.
Om man köper en viss bok så får man med en Non-Commersial version av 3.2, se t.ex. http://dot.kde.org/1076068778 får man en.
Se också trolltech's sida om att använda NC-versionen i GPL-applikationer.
http://www.trolltech.com/download/qt/noncomm.html http://www.trolltech.com/download/qt/do ... ncomm.html
Helt enkelt är det inte...
Cygwin-porten av KDE använder iofs unixversionen är jag rätt övertygad om. Kanske inte så intressant för de flesta ändå eftersom cygwin och X krävs.
Om man köper en viss bok så får man med en Non-Commersial version av 3.2, se t.ex. http://dot.kde.org/1076068778 får man en.
Se också trolltech's sida om att använda NC-versionen i GPL-applikationer.
http://www.trolltech.com/download/qt/noncomm.html http://www.trolltech.com/download/qt/do ... ncomm.html
Helt enkelt är det inte...
- Jan Pihlgren
- Posts: 1447
- Joined: 22 April 2002, 02:00
- Location: MÄRSTA
- Contact:
Här finns info om Qt.panzar wrote: Hm, rätta mig om jag har fel, men det finns väl ingen GPL-version av Qt för windows?
http://www.trolltech.com/download/index.html
http://www.trolltech.com/products/qt/index.html
http://www.trolltech.com/products/qt/windows.html
Jag är osäker på om hur man får Qt för MS Windows, om den måste köpas eller ej.
Jo. Kolla här: http://kde-cygwin.sourceforge.net/qt3-win32/ .panzar wrote:Hm, rätta mig om jag har fel, men det finns väl ingen GPL-version av Qt för windows?robinr wrote:WxWindows, Fltk eller QT. QT är nog bäst om man ser till produktivitet och vad det kan, men kräver att ni antingen GPL:ar koden eller köper en kommersiell licens.
Här finns fler Qt resurser: http://www.digitalfanatics.org/projects ... ter03.html .
jo, men...
Har tittat runt på sidan för QT win32
Alla skärmdumbar visar ju windows program, men det verkar som man måste installera cygwin, vilket absolut inte är att föredra, samtidigt som (även om installation ska gälla windows) de kommandon som man ska använda är alla Linux-kommandon!!!
Funkar det vekligen i windows utan en massa andra program?!?!?!??
Alla skärmdumbar visar ju windows program, men det verkar som man måste installera cygwin, vilket absolut inte är att föredra, samtidigt som (även om installation ska gälla windows) de kommandon som man ska använda är alla Linux-kommandon!!!
Funkar det vekligen i windows utan en massa andra program?!?!?!??
Varför göra som alla andra, när alla andra gör det????
QT för win32 resulterar i Windowsprogram... det är väl inte så konstigt?
Blanda inte ihop det med cygwin-versionen även om API:et är (i stort sett) samma i motsvarande versioner. Win32-versionen har stöd för ActiveX vilket Unixversionen inte har. Har inte koll på de exakta skillnaderna i övrigt.
QT-(wn32)-program under Windows installeras som vilket annat program somhelst, dvs exe och ett antal dll:er. Kommer inte ihåg om man kunde länka win32-versionen statiskt.
Opera är byggt på QT och finns för Windows.
Blanda inte ihop det med cygwin-versionen även om API:et är (i stort sett) samma i motsvarande versioner. Win32-versionen har stöd för ActiveX vilket Unixversionen inte har. Har inte koll på de exakta skillnaderna i övrigt.
QT-(wn32)-program under Windows installeras som vilket annat program somhelst, dvs exe och ett antal dll:er. Kommer inte ihåg om man kunde länka win32-versionen statiskt.
Opera är byggt på QT och finns för Windows.
Den nyligen släppta Qt boken innehåller en CD med en non-commercial version av Qt 3.x för win32. Troligen kommer den att släppas fritt inom en inte allt för avlägsen framtid. Allt som krävs då är en extra klausul i licensieringen (förutsatt att du använder GPL) om att du får länka koden med just QT-NC-win32.
Jag (och jovnas) sitter och knackar en del SDL, men det kanske inte funkar så bra för dina behov.
Själva gör vi mest bara småspel.
Mycket enkelt att porta mellan plattformar (tom xbox), och inga probs att rita ut bilder mm.
Kanske inte vad du ville ha, men det kan vara värt att kolla in.
www.libsdl.org
Själva gör vi mest bara småspel.
Mycket enkelt att porta mellan plattformar (tom xbox), och inga probs att rita ut bilder mm.
Kanske inte vad du ville ha, men det kan vara värt att kolla in.
www.libsdl.org
/// Powered by Gentoo
Själv så måste jag säga att wxWindows är det bästa valet, då det fungerar på många platformar och programmen får platformens look&feel.
Samt så är licensen väldigt fri, inga problem med opensource eller kommersiella program.
wxWindows är i sig ett C++ bibliotek men det finns bindings till många andra språk, t.ex. java, python och perl.
Fast nackdelen är väll att det verkar inte finnas någon stor community, har iof inte letat men till t.ex QT behöver man inte leta
Men det finns rätt bra exempel i samples katalogen som medföljer källkoden till wxWindows.
Jag har nyss börjat leka med wxWindows och jag måste säga att jag gillar det hittills iaf.
Samt så är licensen väldigt fri, inga problem med opensource eller kommersiella program.
wxWindows är i sig ett C++ bibliotek men det finns bindings till många andra språk, t.ex. java, python och perl.
Fast nackdelen är väll att det verkar inte finnas någon stor community, har iof inte letat men till t.ex QT behöver man inte leta

Men det finns rätt bra exempel i samples katalogen som medföljer källkoden till wxWindows.
Jag har nyss börjat leka med wxWindows och jag måste säga att jag gillar det hittills iaf.
Hur är wxWindows med signals och slots? Personligen tycker jag att Qt's system fungerar helt klart smidigast.Anonymous wrote:Jag har nyss börjat leka med wxWindows och jag måste säga att jag gillar det hittills iaf.
Förresten, du får gärna logga in dig, det är alltid kul att veta vem man skriver till.
Glömde logga in när jag skrev meddelandet 
wxWidgets använder sig av först ett macro i sin klass som talar om att den klassen (ett fönster eller vad man vill göra) använder sig av events. Sen så talar man om vad som ska hända (typ som connect(...)) i ett macro.
Ett mycket kort (ej testat exempel):
Kompilera det med t.ex:
Som du ser så använder man sig av en s.k "event table", i början känns det lite myko att använda det men sen tycker (iaf jag) man att den är skön.
Det finns möjlighet att använda slot/signal liknande funktioner också men det har jag inte gett mig in på (inte med wxWidgets), eftersom jag vart tillsagd att event tabellerna är effektivare samt att man kan om man vill ändra i tabellerna under runtime vilket man inte kan med slot/signal funktionerna.
Hoppas att jag inte var alltför otydlig

wxWindows (eller som det tydligen heter nu, wxWidgets) är något annorlunda mot QTs signals och slots system.Hur är wxWindows med signals och slots? Personligen tycker jag att Qt's system fungerar helt klart smidigast.
wxWidgets använder sig av först ett macro i sin klass som talar om att den klassen (ett fönster eller vad man vill göra) använder sig av events. Sen så talar man om vad som ska hända (typ som connect(...)) i ett macro.
Ett mycket kort (ej testat exempel):
Code: Select all
// fil.h
#include <wx/wx.h>
// Detta är istället för int main(...), wxWidgets skapar main funktionen åt oss
class MyApp: public wxApp
{
virtual bool OnInit();
};
class MyFrame : public wxFrame
{
private:
DECLARE_EVENT_TABLE() // macro som talar om att vi använder events
public:
MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size);
~MyFrame();
void OnBtnPress(wxCommandEvent& event);
protected:
wxButton* btnTest;
};
// fil.cpp
enum { ID_testBtn }; // skapa ID för knappen
IMPLEMENT_APP(MyApp) // Talar om vilken class som är "main"
BEGIN_EVENT_TABLE(MyFrame, wxFrame) // deklarera event tabellen
EVT_BUTTON(ID_testBtn, MyFrame::OnBtnPress) // lägg till event för knappen
END_EVENT_TABLE() // avsluta event tabellen
// Programmets main funktion
bool MyApp::OnInit()
{
MyFrame *frame = new MyFrame("Hej hej", wxPoint(50,50), wxSize(450,340));
frame->Show(TRUE);
SetTopWindow(frame);
return TRUE;
}
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame*)NULL, -1, title, pos, size)
{
// skapa knappen med rätt ID med texten Hit me
btnTest = new wxButton(this, ID_testBtn, "Hit me");
}
MyFrame::~MyFrame()
{
// rensa upp
delete btnTest;
}
void MyFrame::OnBtnPress(wxCommandEvent& WXUNUSED(event))
{
Close(); // vi stänger fönstret på denna knapp
}
Code: Select all
g++ source.cpp -o test `wx-config --cxxflags --libs`
Det finns möjlighet att använda slot/signal liknande funktioner också men det har jag inte gett mig in på (inte med wxWidgets), eftersom jag vart tillsagd att event tabellerna är effektivare samt att man kan om man vill ändra i tabellerna under runtime vilket man inte kan med slot/signal funktionerna.
Hoppas att jag inte var alltför otydlig

"Trying is the first step towards failure" -- Homer Simpson
Jag tycker att gtkmm känns lite som en skolövning. Massor av templates och tjaffs. Qt's system känns mer pragmatiskt, enl. mig.Pacman wrote:Ett annat alternativ är ju Gtk. Det är väl LGPL så vitt jag vet och det fungerar med alla platformar. Jag har nyligen börjat med det och använder gtkmm för att få det OO. Det är riktigt underbart faktiskt, enligt mig.
Jag började med QT för två veckor sedan (köpte QT-boken då) och jag kan redan säga att jag ser min framtid innehållandes QT 

#312470 @ http://counter.li.org/
<Snorlander> eller va fan kan ju lika gärna köra...
<Snorlander> =) sätter igång nu... kanske ringer om det strular
Matte om att köra Linux
<Snorlander> eller va fan kan ju lika gärna köra...
<Snorlander> =) sätter igång nu... kanske ringer om det strular
Matte om att köra Linux

Jag antar att du redan kollat på http://www.digitalfanatics.org/projects ... index.html , sedan finns ju även http://www.qtforum.org .Raniz wrote:Jag började med QT för två veckor sedan (köpte QT-boken då) och jag kan redan säga att jag ser min framtid innehållandes QT :)
Faktiskt inte, ska ta mig en ordentlig titt på den där!e8johan wrote:Jag antar att du redan kollat på http://www.digitalfanatics.org/projects ... index.htmlRaniz wrote:Jag började med QT för två veckor sedan (köpte QT-boken då) och jag kan redan säga att jag ser min framtid innehållandes QT
e8johan wrote: , sedan finns ju även http://www.qtforum.org .
#312470 @ http://counter.li.org/
<Snorlander> eller va fan kan ju lika gärna köra...
<Snorlander> =) sätter igång nu... kanske ringer om det strular
Matte om att köra Linux
<Snorlander> eller va fan kan ju lika gärna köra...
<Snorlander> =) sätter igång nu... kanske ringer om det strular
Matte om att köra Linux
