Seite 1 von 1

Source Generator vom QT UI file... Fertig...

Verfasst: 19. April 2006 15:03
von patrik08
Mit dem UI file ist ein projekt noch lange nicht fertig.... aber ein XSLT file kann wenigstens viel ... arbeit abnehmen.. das Ui ist ja einfach ein XML und mit dem xslt file von http://ciz.ch/svnciz/xls2sql/ui_generator.xsl kann der header und der source sowie die main.cpp bereits fertig sein.....

Auf Mac / Linux:
im terminal:
# xsltproc ui_generator.xsl meinfile.ui > main.cpp
oder grafisch den source => http://ciz.ch/svnciz/dialog_qt/qt4_a/current/ compilieren ...

Auf Window:
im cmd geht es auch , oder fertige programm holen auf...
http://ppk.ciz.ch/win_build/vxsltproc_win32_0.2.tar.bz2
und das ui file als xml setzen und remote das file http://ciz.ch/svnciz/xls2sql/ui_generator.xsl als xsl

naturlich kann jeder seine vorlagen gestalten im file ui_generator.xsl und aendern... ob Qmainwindow oder qdialog entscheidet das ui file...

das resultat ist etwa so je nach ui file...:

Code: Alles auswählen

/* ################################################################## */
#ifndef GUI_QUERY_CHECK_H
#define GUI_QUERY_CHECK_H

#include "ui_gui_query_check.h"

/*  Save file as gui_query_check.h  */
/*  Gui_Query_Check  */


#include <QPointer>

class Gui_Query_Check : public QWidget, public Ui::Gui_Query_Check
{
 Q_OBJECT
	
public:
	static Gui_Query_Check* self( QWidget* = 0 );
	
protected:
	void closeEvent( QCloseEvent* );
	
private:
	Gui_Query_Check( QWidget* = 0 );
    
static QPointer<QWidget>_self;

/* public slots: */
};
#endif GUI_QUERY_CHECK_H

/* On your ui file found: 
class name :   Gui_Query_Check  type :   QWIDGET
class name :   groupBox  type :   QGROUPBOX
class name :   querytext  type :   QLINEEDIT
class name :   querygo  type :   QPUSHBUTTON
class name :   pushButton  type :   QPUSHBUTTON
class name :   queryresult  type :   QTEXTEDIT
*/

/* ################################################################## */

/* ################################################################## */
#include "gui_query_check.h"
/*  Save file as gui_query_check.cpp  */
/*  Gui_Query_Check  */

#include <QPointer>
#include <QCloseEvent>
QPointer<Gui_Query_Check>::_self = 0L;
Gui_Query_Check* Gui_Query_Check::self( QWidget* parent )
{
	if ( !_self )
		_self = new Gui_Query_Check( parent );
	return _self;
}

Gui_Query_Check::Gui_Query_Check( QWidget* parent )
	: QWidget( parent )
{
	setupUi( this );
}

void Gui_Query_Check::closeEvent( QCloseEvent* e )
{
    
e->accept();

}


/* On your ui file found: 
class name :   Gui_Query_Check  type :   QWIDGET
class name :   groupBox  type :   QGROUPBOX
class name :   querytext  type :   QLINEEDIT
class name :   querygo  type :   QPUSHBUTTON
class name :   pushButton  type :   QPUSHBUTTON
class name :   queryresult  type :   QTEXTEDIT
*/

/* ################################################################## */

/* ################################################################## */
/*  Save file as  main.cpp  */

#include <QApplication>
int main(int argc, char *argv[]) {

    QApplication a( argc, argv );
	
    Gui_Query_Check::self()->show();
    a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
    return a.exec();
};


/* ################################################################## */

Verfasst: 19. April 2006 15:11
von Nassian
Sorry, aber ich verstehe den Sinn von diesem Programm nicht.
Die Programmlogik an sich muss ich wohl immer noch selbst schreiben, also wo ist der Unterschied ob ich jetzt UI zusammenklicke + 10 Zeilen Grundgerüst für die Klasse oder dein Tool nutze?

Verfasst: 19. April 2006 15:15
von ChMaster
servus,
oder grafisch den source => http://ciz.ch/svnciz/dialog_qt/qt4_a/current/ compilieren ...
du musst auch dazu sagen das es svn ist:
svn co http://ciz.ch/svnciz/dialog_qt/qt4_a/current/ ui_generator

Verfasst: 19. April 2006 15:21
von patrik08
Ja gut....
den folder fooder sagt es ja und die url ...
wer nicht weiss wass subversion ist braucht so ein tool nicht...
Um die routine arbeiten abzunehen ist das sicher gut...
Was Gut und der Sinn... ist eine Personaliesirung von den header source & main Ob man sie von hand schreibt oder generiert ist sicher ein unterscheid!

Verfasst: 20. April 2006 12:24
von patrik08
Nun lauf es auch auf mac Panther 10.3.9
ein dmg packet ist Iher ... http://ppk.ciz.ch/mac_build/vxsltproc.dmg.bz2

Was die xslt libs alles koennen ist ein wunder die Ui file ist nur ein winziges teil ..... von xml fo ins pdf von excel ins xml und nach db sqlite ... xml zu pdf formulare ecc...

Darum habe ich in dieses programm auch sqlite integriert ... damit man ein xml dump machen kann um wiederum in andere formate zu convertieren....

Re: Source Generator vom QT UI file... Fertig...

Verfasst: 20. April 2006 13:35
von Shadow
patrik08 hat geschrieben:Mit dem UI file ist ein projekt noch lange nicht fertig.... aber ein XSLT file kann wenigstens viel ... arbeit abnehmen.. das Ui ist ja einfach ein XML und mit dem xslt file von http://ciz.ch/svnciz/xls2sql/ui_generator.xsl kann der header und der source sowie die main.cpp bereits fertig sein.....
Das ist ja schön, dass du uns immer auf den aktuellen Stand deiner Entwicklungen hältst. Wenn das aber jeder hier mit seinen Projekten machen würde, wäre dieses Forum hoffnungslos zugespamt. :)
Wenn es ein Problem für Dich gibt, mit dem du nicht weiter kommst, kannst du es dem Forum gerne präzise beschreiben und jeder der kann, wird dir dann auch helfen. Aber ich verstehe derzeit echt nicht den Sinn dieses Postings, oder ist dir einfach nur langweilig?

Verfasst: 20. April 2006 15:00
von patrik08
:lol: es geht immer noch um qt.... "zugespamt" ist was anderes!...

wenn du auch auf mac && linux entwicklest...
kannst du mir vielleicht ..... helfen .... die xslt libs brauchen auf mac linux einen besonderen config....

ich konnte das entnehmen vom einzige projekt dass xslt benutzt mit qt4....
obwohl diese libs viel mehr leisten koennen ... von alle file type a-z

Code: Alles auswählen

 /* source albumshaper2  on sf.net */
  params[0] = "outputPath";
  QString quotedPath = outputPath;

  //For some reason libxslt has trouble handling filenames with spaces on Unix platforms (OSX,
  //Linux, FreeBSD?). this problem can be averted by converting the filename to a URI. Converting it
  //to a URI on windows using the qt method mangles the drive name though, so only convert to
  //URI on OSX. We need to nail this weirdness at some point and be consistant IMHO but for now
  //this works...
#ifndef Q_OS_WIN
  quotedPath = QUriDrag::localFileToUri( quotedPath );  
#endif
  
  params[1] = quotedPath.prepend('\"').append('\"').ascii();


was bedeutet genau das in klahrtex? mit den url e file path?