Jetzt nicht böse gemeint aber du machst gravierende Anfänger Fehler. Das sieht man daran das du nicht weist wie man eine Klasse anspricht. So etwas jetzt hier im Forum breitschlagen wäre einfach zu viel - Tip - Buch Kaufen und erst mal Lesen Das zweite was mir auffällt ist das deine Projekte anscheinend nicht richtig erstellt werden. Du hast Linker Fehler. Ich habe hier ein Faulenzer Script das ich immer bei kleineren QT Testanwendungen nehme. Erstelle damit erst einmal ein Paar kleiner Anwendungen und sehe dir den Code an.
Code:
#!/bin/bash
#
############################################################################
# License: GPL 2
# Version: 0.1.0
# Requires: gnu(gcc), make, qmake, progen, uic, sed, grep
# SriptName: qtgen.sh
# Author: undefined <undefined@flashbattle.de>
# Kurz-Beschreibung: Erstellt aus einer UI-Komponente eine
# Projektdatei und Makefile. Generiert eine
# QT-Standard main.cpp zum Testen der Anwendung
#
# Beschreibung: Dieses Script ist nur dafuer gedacht dem Programmierer beim
# Testen kleinerer Anwendungen zu Helfen die nur aus einer
# einzelnen UI-Komponente bestehen.
############################################################################
# @author undefined
# @since 18.08.2004
# @short Suche nach Klassenname in *.ui und Pruefe ob ein Projektname
# angegeben wurde.
if [ -n "$2" ];then
if [ -r "$2.ui" ];then
cat $2.ui| grep '<class>[0-9a-zA-Z]*</class>' |
sed -e 's;.*<class>\([0-9a-zA-Z]*\).*;\1;' > .tmp
fi
CLASSNAME="`cat .tmp | grep '[0-9a-zA-Z]*'`"
PROJEKT=$2
else
echo " Bitte setze den Projektnamen als zweiten Parameter!"
echo " Beispiel: $0 help ProjektName"
exit 1;
fi
# @author undefined
# @since 18.08.2004
# @short Ausfuehrliche Ausgabe der Hilfe
hilfe()
{
echo "Ausfuehrliche Beschreibung der Parameter.."
echo " gen ( Erstelle main.cpp $PROJEKT.pro Projekt Datei und Makefile. )"
echo " autogen ( Wie \"gen\" zusaetzlich mit \"make\" und Programm ausfuehren. )"
echo " make_start ( Neu Compilieren und Programm ausfuehren. )"
echo " clean ( Projekt Normal aufraeumen *.pro und Makefile bleiben erhalten. )"
echo " clean_full ( Alles entfernen Inklusive (*.pro *.cpp *.h und Makefile) entfernen )"
echo " convert ( Generiere aus der *.ui Datei eine *.h und *.cpp Datei )"
echo " start ( Programm Ausfuehren)"
echo "Beispiel:"
echo "$0 gen ProjektName"
}
# @author undefined
# @since 18.08.2004
# @short Suche nach QMake von QT3
# checkQMake=`qmake -v | grep 'Qmake'`
# if [ ! -n "$checkQMake" ]; then
# echo "Kann das Programm \"qmake\" nicht finden!"
# exit 1;
# fi
# @author undefined
# @since 18.08.2004
# @short Suche nach uic Anwendung von QT3
# checkUic=`uic -version`
# if [ ! -n "$checkUic" ]; then
# echo "Kann das Programm \"uic\" nicht finden!"
# exit 1;
# fi
# @author undefined
# @since 18.08.2004
# @short Wenn kein "progen" vorhanden dann Handmade
template()
{
echo "TEMPLATE = app
CONFIG = qt warn_on release debug
HEADERS = `ls -f $1.ui.h`
SOURCES = main.cpp
INTERFACES = `ls -f $1.ui`
TARGET = $1
" > $1.pro
}
# @author undefined
# @since 18.08.2004
# @short Projekt erstellen mit progen
makepro()
{
checkProgen=`progen -n`
if [ -n "$checkProgen" ]; then
progen -d . -lower -n $PROJEKT -o $PROJEKT.pro
else
template $PROJEKT
fi
}
# @author undefined
# @since 18.08.2004
# @short
aufraeumen()
{
make clean
rm -f $PROJEKT.pro Makefile *.cpp $PROJEKT.h .tmp
if [ -x "$PROJEKT" ]; then
rm $PROJEKT
fi
}
# @author undefined
# @since 18.08.2004
# @short
convertui()
{
if [ -r "$PROJEKT.ui" ]; then
uic -o $PROJEKT.h $PROJEKT.ui
uic -o $PROJEKT.cpp -i $PROJEKT.h $PROJEKT.ui
else
echo "Keine $PROJEKT.ui vorhanden!"
exit 1;
fi
}
# @author undefined
# @since 18.08.2004
# @short
makemain()
{
echo "/*****************************************************************/
/* Generate with \"qtgen.sh\" */
/* License: GPL 2 Version: 0.1.0 */
/* Author: undefined <undefined@flashbattle.de> */
/*****************************************************************/
// Erstellt am `date +"%d %m %Y %H:%I:%M"`
#include <qapplication.h>
#include \"$1.h\"
int main( int argc, char **argv )
{
QApplication a( argc, argv );
$2 w;
a.setMainWidget( &w );
w.show();
return a.exec();
}
" > main.cpp
}
# @author undefined
# @since 18.08.2004
# @short Erstelle Makefile
makefile()
{
if [ -r "$PROJEKT.pro" ]; then
qmake -unix $PROJEKT.pro -o Makefile
fi
}
# @author undefined
# @since 18.08.2004
# @short Starte Anwendung
startpro()
{
if [ -x "$PROJEKT" ];then
echo "Starte $PROJEKT"
./$PROJEKT
fi
}
# @author undefined
# @since 18.08.2004
case "$1" in
'gen')
echo "Erstelle main.cpp fuer Klasse: $CLASSNAME ..."
makemain $PROJEKT $CLASSNAME
echo "Erstelle Projekt Datei.."
makepro
echo "Erstelle Makfile.."
makefile
;;
'autogen')
if [ -e "Makefile" ];then
aufraeumen
fi
echo "Starte autogen fuer Klasse: $CLASSNAME ..."
if [ -e "main.cpp" ];then
TestMain="`cat main.cpp | grep $PROJEKT.h`"
if [ ! -n "$TestMain" ];then
makemain $PROJEKT $CLASSNAME
fi
else
makemain $PROJEKT $CLASSNAME
fi
makepro && makefile && make && startpro
;;
'make_start')
make && startpro
;;
'clean')
make clean
;;
'clean_full')
aufraeumen
;;
'convert')
convertui
;;
'start')
startpro
;;
'help')
hilfe
;;
*)
echo "Falsche Parameter Angabe. Verwende:"
echo "$0 {gen|autogen|make_start|clean|clean_full|convert|start|help} ProjektName"
echo "Beispiel: $0 help ProjektName"
exit 1
;;
esac
exit;
PS:
PHP-Code:
int selectedRow = tabelle->currEditRow();
Lesezeichen