[Failed] QT4 Modul

Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Neue Antwort erstellen

BtbN

Betreff: [Failed] QT4 Modul

BeitragMi, Feb 28, 2007 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab mich mal an das recht gigantische vorhaben gewagt, die größten und wichtigsten Teile der OpenSource-Version von QT4 nach BMax zu portieren.

Da QT eine recht gigantische bibliothek ist, wird das ganze recht viel Zeit in anspruch nehmen, und ist noch lange nicht fertig. Ich werde nach und nach immer mehr funktionen und klassen der Lib zur verfügung stellen. Jeden tag kommen einige funktionen hinzu.
Da ich zu faul bin, andauernd ein neues Archiv hochzuladen, wird es das ganze vorerst ausschließlich als SVN-Repository geben, welches unter folgender addresse zu erreichen ist:

svn://btbn.de/maxqt4

um es abzurufen, wechselt man ins *BmaxDir*/mod/btbn.mod Verzeichnis, und führt den folgenden befehl aus:

Code: [AUSKLAPPEN]
svn co svn://btbn.de/maxqt4 .


Der . am Ende ist wichtig, sonst packt er das ganze in ein weiteres unterverzeichnis. So ist es zumindest auf Linux und vermutlich auch MacOs. Wie das auf Windows funktioniert, weiß ich nicht. Einfach mal google befragen.

Um das Modul zu kompilieren, müssen eventuell die Include und Library-Pfade angepasst werden. Dazu editiert man auf Linux und mac die module.cmd.linux datei(Oben sind 2 Variablen für die Pfade), und führt sie danach aus. Auf Windows muss man aktuell das wrapper_imports.bmx file manuell importieren. Allerding werden auf Windows die Libs statisch eingelinkt(Danke dafür an YR).


Fals ich was vergessen haben sollte/etwas nicht funktioniert/unklar ist, bitte melden.
Feedback und Kritik ist ausdrücklich erwünscht!

Zum abschluss noch ein Beispiel:

Code: [AUSKLAPPEN]
SuperStrict

Framework BtbN.QT4


Global app:QApplication = New QApplication
Global mainTabber:QTabWidget = (New QTabWidget).Init()
mainTabber.SetTabChFunc(fnc3)

Global cont1:QWidget = (New QWidget).Init()
Global btn:QPushButton = (New QPushButton).Init("Ab ins Label!",cont1)
btn.SetOnClick(fnc)
Global txt:QTextEdit = (New QTextEdit).Init("Test-Text!",cont1)
Global lab:QLabel = (New QLabel).Init("Noch nichts da...",cont1)
Global layo:QBoxLayout = (New QBoxLayout).Init(QT_TOP_TO_BOTTOM,cont1)
layo.AddWidget(txt)
layo.AddWidget(btn)
layo.AddWidget(lab)
cont1.SetLayout(layo)

Global cont2:QWidget = (New QWidget).Init()
Global btn2:QPushButton = (New QPushButton).Init("Inc",cont2)
btn2.SetOnClick(fnc2)
Global bar:QProgressBar = (New QProgressBar).Init(cont2)
bar.SetRange(0,100)
Global layo2:QBoxLayout = (New QBoxLayout).Init(QT_LEFT_TO_RIGHT,cont2)
layo2.AddWidget(btn2)
layo2.AddWidget(bar,2)
cont2.SetLayout(layo2)

mainTabber.AddTab(cont1,"Labels, TextEdits and buttons")
mainTabber.AddTab(cont2,"ProgressBars")

mainTabber.Show()
app.exec()

End


Function fnc()
   lab.SetText(txt.toPlainText())
EndFunction

Function fnc2()
   Global pos:Int
   pos :+ 1
   bar.setValue(pos)
EndFunction

Function fnc3(index:Int)
   WriteStdOut("Tab changed to index: "+index+"~n")
EndFunction




///EDIT///
Hab das ding abgeblasen, BMax fehlen zu viele Features, auf denen Qt4 aufbaut(Generische Klassen, ein Precompiler, die fähigkeit C++-Klassen direkt zu erben,...).
Es ist zwar möglich, vereinzelt sachen einzubauen, aber es würde den aufwand nicht lohnen. Wenn sich jemand die Arbeit weitermachen will, bitte. Das ding steht unter der GPL.
  • Zuletzt bearbeitet von BtbN am Mi, März 21, 2007 16:06, insgesamt einmal bearbeitet

Ratchet

BeitragMi, März 21, 2007 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Seid der Beta wollte ich schon mit BM Qt Anwendungen entwickeln. Ich bin auf jeden Fall sehr interessiert, habe aber momentan leider keine Zeit mich damit zu beschäftigen. Wäre aber echt super wenn du das hinbekommst. Ich werde das Ganze aufmerksam verfolgen.
Viel Erfolg; bei der Menge Features die Qt bietet wirst du einige Zeit zu tun haben Wink

EDIT: Sehr schön finde ich wie du es gelöst hast die Events der Widgets mit BM zu verbinden. Ich hasse dieses EventID System wie es in MaxGUI gemacht ist.
[iMac 27"] [3,4GHz Intel Core i5 ] [8GB Ram] [NVIDIA GeForce GTX 775M 2GB] [MacOS X Yosemite] [BlitzMax + MaxGui] [Monkey X Pro]

BtbN

BeitragMi, März 21, 2007 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
siehe edit im 1. Post, das ding ist fehgeschlagen.

Artemis

BeitragMi, März 21, 2007 16:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich benutze TortoiseSVN (Windows) und bei mit meint er immer, ich müsste einen Benutzernamen und ein Passwort angeben.

EDIT:

Dann hat sich das wohl erledigt.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Codearchiv & Module

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group