Index: src/UIElements/QT4/QTDialog.cpp
===================================================================
--- src/UIElements/QT4/QTDialog.cpp	(revision 326a43bd17e3087bcceb5c16ee5ed98deff54ee1)
+++ src/UIElements/QT4/QTDialog.cpp	(revision cbf01e67188dd162136b08f9f75f53c90cde64b9)
@@ -21,5 +21,8 @@
 #include <Qt/qcombobox.h>
 
+#include "World.hpp"
+#include "periodentafel.hpp"
 #include "atom.hpp"
+#include "element.hpp"
 #include "molecule.hpp"
 
@@ -95,4 +98,8 @@
 }
 
+void QTDialog::queryElement(const char* title, element **target){
+  registerQuery(new ElementQTQuery(title,target,inputLayout,this));
+}
+
 /************************** Query Objects *******************************/
 
@@ -192,5 +199,5 @@
   for(iter  = molecules->ListOfMolecules.begin();
       iter != molecules->ListOfMolecules.end();
-      iter++) {
+      ++iter) {
     stringstream sstr;
     sstr << (*iter)->IndexNr << "\t" << (*iter)->getName();
@@ -255,4 +262,39 @@
 
 
+QTDialog::ElementQTQuery::ElementQTQuery(std::string _title, element **_target, QBoxLayout *_parent, QTDialog *_dialog) :
+    Dialog::ElementQuery(_title,_target),
+    parent(_parent)
+{
+  periodentafel *periode = World::get()->getPeriode();
+  thisLayout = new QHBoxLayout();
+  titleLabel = new QLabel(QString(getTitle().c_str()));
+  inputBox = new QComboBox();
+  element* Elemental = 0;
+  for(Elemental = periode->start->next;
+      Elemental!=periode->end;
+      Elemental = Elemental->next)
+  {
+    stringstream sstr;
+    sstr << Elemental->Z << "\t" << Elemental->name;
+    inputBox->addItem(QString(sstr.str().c_str()),QVariant(Elemental->Z));
+  }
+  parent->addLayout(thisLayout);
+  thisLayout->addWidget(titleLabel);
+  thisLayout->addWidget(inputBox);
+
+  pipe = new ElementQTQueryPipe(&tmp,_dialog,inputBox);
+  pipe->update(inputBox->currentIndex());
+  connect(inputBox,SIGNAL(currentIndexChanged(int)),pipe,SLOT(update(int)));
+}
+
+QTDialog::ElementQTQuery::~ElementQTQuery()
+{
+  delete pipe;
+}
+
+bool QTDialog::ElementQTQuery::handle(){
+  return true;
+}
+
 /*************************** Plumbing *******************************/
 
@@ -313,2 +355,18 @@
 }
 
+ElementQTQueryPipe::ElementQTQueryPipe(element **_content, QTDialog *_dialog, QComboBox *_theBox) :
+  content(_content),
+  dialog(_dialog),
+  theBox(_theBox)
+{}
+
+ElementQTQueryPipe::~ElementQTQueryPipe()
+{}
+
+void ElementQTQueryPipe::update(int newIndex) {
+  QVariant data = theBox->itemData(newIndex);
+  int idx = data.toInt();
+  (*content) = World::get()->getPeriode()->FindElement(idx);
+  dialog->update();
+}
+
Index: src/UIElements/QT4/QTDialog.hpp
===================================================================
--- src/UIElements/QT4/QTDialog.hpp	(revision 326a43bd17e3087bcceb5c16ee5ed98deff54ee1)
+++ src/UIElements/QT4/QTDialog.hpp	(revision cbf01e67188dd162136b08f9f75f53c90cde64b9)
@@ -26,4 +26,5 @@
 class DoubleQTQueryPipe;
 class MoleculeQTQueryPipe;
+class ElementQTQueryPipe;
 
 class QTDialog : public QDialog, public Dialog
@@ -39,4 +40,5 @@
   virtual void queryMolecule(const char*,molecule**,MoleculeListClass*);
   virtual void queryVector(const char*,Vector *,const double *const,bool);
+  virtual void queryElement(const char*,element **);
 
   virtual bool display();
@@ -48,5 +50,5 @@
     public:
       IntQTQuery(std::string _title, int *_target,QBoxLayout *_parent,QTDialog *_dialog);
-      ~IntQTQuery();
+      virtual ~IntQTQuery();
       virtual bool handle();
     private:
@@ -62,5 +64,5 @@
     public:
       DoubleQTQuery(std::string title, double *_target,QBoxLayout *_parent,QTDialog *_dialog);
-      ~DoubleQTQuery();
+      virtual ~DoubleQTQuery();
       virtual bool handle();
     private:
@@ -76,5 +78,5 @@
     public:
       StringQTQuery(std::string _title, std::string *_target, QBoxLayout *_parent,QTDialog *_dialog);
-      ~StringQTQuery();
+      virtual ~StringQTQuery();
       virtual bool handle();
     private:
@@ -90,5 +92,5 @@
     public:
       MoleculeQTQuery(std::string _title, molecule **_target, MoleculeListClass *_molecules, QBoxLayout *_parent,QTDialog *_dialog);
-      ~MoleculeQTQuery();
+      virtual ~MoleculeQTQuery();
       virtual bool handle();
     private:
@@ -104,5 +106,5 @@
     public:
       VectorQTQuery(std::string title,Vector *_target,const double *const _cellSize,bool _check,QBoxLayout *,QTDialog *);
-      ~VectorQTQuery();
+      virtual ~VectorQTQuery();
       virtual bool handle();
     private:
@@ -118,4 +120,18 @@
     };
 
+    class ElementQTQuery : public Dialog::ElementQuery {
+    public:
+      ElementQTQuery(std::string _title, element **_target, QBoxLayout *_parent, QTDialog *_dialog);
+      virtual ~ElementQTQuery();
+      virtual bool handle();
+    private:
+      QBoxLayout *parent;
+      QBoxLayout *thisLayout;
+      QLabel *titleLabel;
+      QComboBox *inputBox;
+
+      ElementQTQueryPipe *pipe;
+    };
+
 private:
   QBoxLayout *mainLayout;
@@ -133,5 +149,5 @@
 public:
   StringQTQueryPipe(std::string *_content, QTDialog *_dialog);
-  ~StringQTQueryPipe();
+  virtual ~StringQTQueryPipe();
 
 public slots:
@@ -148,5 +164,5 @@
 public:
   IntQTQueryPipe(int *_content, QTDialog *_dialog);
-  ~IntQTQueryPipe();
+  virtual ~IntQTQueryPipe();
 
 public slots:
@@ -163,5 +179,5 @@
 public:
   DoubleQTQueryPipe(double *_content, QTDialog *_dialog);
-  ~DoubleQTQueryPipe();
+  virtual ~DoubleQTQueryPipe();
 
 public slots:
@@ -178,5 +194,5 @@
 public:
   MoleculeQTQueryPipe(molecule **_content, QTDialog *_dialog, QComboBox *_theBox, MoleculeListClass *_molecules);
-  ~MoleculeQTQueryPipe();
+  virtual ~MoleculeQTQueryPipe();
 
 public slots:
@@ -190,3 +206,18 @@
 
 };
+
+class ElementQTQueryPipe : public QWidget {
+  Q_OBJECT
+public:
+  ElementQTQueryPipe(element **_content, QTDialog *_dialog, QComboBox *_theBox);
+  virtual ~ElementQTQueryPipe();
+
+public slots:
+  void update(int);
+
+private:
+  element **content;
+  QTDialog *dialog;
+  QComboBox *theBox;
+};
 #endif /* QTDIALOG_HPP_ */
