Seite 1 von 1

Programm zeigt nichts an ?! QTableWidget & QLineEdit

Verfasst: 24. Juni 2014 14:46
von Jannilein
Hallo, ich bin noch neu im Programmieren mit QT und in c++ kenne ich die Basic's .
Nun habe ich das Problem das mein Programm irgendwie nichts anzeigt im Fenster. Es öffnet sich, aber zeigt nichts an obwohl ich shows drinne hab.
Aber da er es öffnet, zeigt er auch keinerlei Fehlermeldungen an. Seht ihr da den Fehler ?

zumal habe ich immernoch das die Frage aus meinem anderem Post, das ich beim Buttonclick die inhalte aus 2 LineEdit feldern ( die value wird sich natürlich bei jedem buttonklick ändern ) den Inhalt aus diesen Feldern untereinander ein eine
Tabelle packe, das die zuvorigen aber auch stehen bleiben. Aber zur Zeit kann ich nichtmal was Anzeigen was mich am meisten stört. Ich habe auch keine ahnung warum da es keine Fehlermeldung gibt.
Ich wäre euch sehr Dankbar wenn ihr mir bei meinen Problemen helfen würdet, dankeschöön :D .


Tabelle.h :

Code: Alles auswählen

// Tabelle.h
#include <QtWidgets/QWidget>
#include <QtWidgets/QTableWidget>
#ifndef _TABELLE_H_
#define _TABELLE_H_

class Tabelle : public QWidget
{
	Q_OBJECT	
public:
	Tabelle(void);
	void init();
	
	QTableWidget* table;
	

private: 
	int rowcount ;
	 int row;
	 

private slots:

    void pushButtonClicked();


};
#endif


Die Main

Code: Alles auswählen

#include <QtWidgets\QApplication>

//TabellenMain.cpp
#include <QtWidgets\QPushButton>


#include "Tabelle.h"





 int main (int argc, char* argv[])
{
	


	 QApplication myapp(argc,argv);

		Tabelle tabelle;
	
	 	tabelle.init();
		
		
	
	
return myapp.exec();

}
Die " Organe " :

Code: Alles auswählen


// Tabelle.cpp
#include <QtWidgets\QApplication>
#include <QtWidgets\QLabel>
#include <QtWidgets\QTextEdit>
#include <QtWidgets\QLineEdit>
#include <QtWidgets\QPushbutton>
#include <QtGui\QFont>
#include <QtCore\QString>
#include <QtWidgets\QPushButton>
#include <QtWidgets\QTableWidget>
#include <QtWidgets\QHeaderView>
#include <QtWidgets\QPushbutton>
#include <QTWidgets\QVBoxLayout>

#include "Tabelle.h"

Tabelle::Tabelle()
{
	//empty
}
  
 void Tabelle::init()
{
	 QWidget window;
	 QWidget* mywidget = new QWidget();
	 QTableWidget* table = new QTableWidget();
	 QLabel* lblname = new QLabel ("Name: ", mywidget );
	 QLineEdit *txtname = new QLineEdit();
	 QLabel* lblvalue = new QLabel("Value",mywidget);
	 QLineEdit *txtvalue = new QLineEdit();
	 QPushButton* btnaddtotable = new QPushButton( "Add to Table", mywidget);
	 QVBoxLayout *layout = new QVBoxLayout (&window);// instantiierung einesQQ-pllication objects, das ist immer nötig.
	 row = 1 ;
	
	//größe
	lblname->setGeometry (40 , 50 , 250 , 60);
	lblname->setFont(QFont("Times", 10, QFont::Bold));
	lblvalue->setGeometry (40 , 50 , 250 , 60);
	lblvalue->setFont(QFont("Times", 10, QFont::Bold));
	btnaddtotable->setGeometry(50,20,400,40);
	 mywidget->setGeometry(800,400,800,650);

	
	
	QString strname ;
	strname = ( txtname ->text ());

	
	QString strvalue ;
	strvalue = ( txtvalue ->text ());

	 table->setRowCount( 10 );
	 table->setColumnCount( 2 );


	 table->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
	// Labels setzen
   QStringList hLabels, vLabels;
   hLabels << "Name" << "Value" ;
   table->verticalHeader()->setVisible( false );
   table->setHorizontalHeaderLabels( hLabels );

	
	layout->addWidget(lblname);
	layout->addWidget(txtname);
	layout->addWidget(lblvalue);
	layout->addWidget(txtvalue);
	layout->addWidget(btnaddtotable);
	layout->addWidget(table);

	
	QObject::connect ( btnaddtotable, SIGNAL ( clicked() ), this , SLOT(pushButtonClicked())) ;

	txtname->show();
	txtvalue->show();

	table->show();
	 window.show();
	 mywidget->show();
	
}

void Tabelle::pushButtonClicked( )
{	
	rowcount = table->rowCount();

	if (  row < rowcount )
	{
		table->insertRow( table->rowCount() );
		row++;
	}

	QTableWidgetItem * item = new QTableWidgetItem(0);
	item->setText("BLA");

	table->setItem( row , row , item);
	
}

Re: Programm zeigt nichts an ?! QTableWidget & QLineEdit

Verfasst: 24. Juni 2014 15:31
von Christian81
C++ Grundlagen: Wie lange lebt "QWidget window;" aus der init() - Funktion?
Abgesehen davon würde ich eine UI immer mit dem Qt-designer bauen außer es sprechen gute Gründe dagegen (z.B. dynamische Anzahl an Widgets) was aber bei Dir nicht der Fall ist.

Re: Programm zeigt nichts an ?! QTableWidget & QLineEdit

Verfasst: 25. Juni 2014 07:49
von Jannilein
Christian81 hat geschrieben:C++ Grundlagen: Wie lange lebt "QWidget window;" aus der init() - Funktion?
Abgesehen davon würde ich eine UI immer mit dem Qt-designer bauen außer es sprechen gute Gründe dagegen (z.B. dynamische Anzahl an Widgets) was aber bei Dir nicht der Fall ist.
Warum nicht damit ? Weil ich in der Ausbildung bin und mein Chef nicht möchte das ich das benutze.
Naja window lebt solange die Funktion ausgeführt wird, weil es lokal ist oder ?