ich habe in meinem Projekt eine myUI.ui. Diese erzeugt ein MyUi.h. Das HBoxLayout und das Button habe ich im nachhinein manuell selbst hinzugefügt (das GridLayout hat schon die ersten 5 Plätze (0-4) belegt mit anderen Widgets):
Code: Alles auswählen
//
QT_BEGIN_NAMESPACE
class Ui_DockWidget
{
public:
QWidget *dockWidgetContents;
QGridLayout *gridLayout;
QHBoxLayout *btnLO;
QPushButton *myButton;
QTableView *myTV;
void setupUi(QDockWidget *DockWidget)
{
DockWidget->resize(400, 380);
dockWidgetContents = new QWidget();
dockWidgetContents->setObjectName(QString::fromUtf8("dockWidgetContents"));
gridLayout = new QGridLayout(dockWidgetContents);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
/// hier mal an 3. Stelle
myTV = new QTableView(dockWidgetContents);
gridLayout->addWidget(myTV, 2, 0, 1, 1);
myButton = new QPushButton(QString::fromUtf8("MyButton"));
//myButton->setObjectName(QString::fromUtf8("myButton"));
btnLO = new QHBoxLayout;
btnLO->addWidget(myButton);
gridLayout->addItem(btnLO, 5, 0, 1, 1);
DockWidget->setWidget(dockWidgetContents);
retranslateUi(DockWidget);
QMetaObject::connectSlotsByName(DockWidget);
} // setupUi
void retranslateUi(QDockWidget *DockWidget)
{
DockWidget->setWindowTitle(QApplication::translate("DockWidget", "MyInterface", 0, QApplication::UnicodeUTF8));
Q_UNUSED(DockWidget);
} // retranslateUi
};
namespace Ui {
class DockWidget: public Ui_DockWidget {};
} // namespace Ui
QT_END_NAMESPACE
#endif // MY_UI_H
Code: Alles auswählen
#ifndef THISCLASS_H
#define THISCLASS_H
#include <myUi.h>
class ThisClass
: public QDockWidget
, public Ui_DockWidget
{
Q_OBJECT
public:
//..
Code: Alles auswählen
#include "ThisClass.h"
#include "mydialog.h"
/// @relevance{Demo}
ThisClass::ThisClass( QWidget *myParent )
: QDockWidget( myParent )
, myUIDockWidget()
{
setupUi(this);
setParent(myParent);
//...code
connect( myButton, SIGNAL(clicked(bool)), this, SLOT(doThis()));
//..
}
Code: Alles auswählen
connect( myButton, SIGNAL(clicked(bool)), this, SLOT(doThis()));
Was mache ich falsch? Darf ich die *.ui nicht manuell manipilieren? Zb wurde die TableView myTB nicht von mir manipuliert, diese wird auch erkannt.3>Compiling...
3>ThisClass.cpp
3>M:\Eigene Dateien\project\ThisClass.cpp(77) : error C2065: 'mybutton' : undeclared identifier
Vielen Dank!
Gruß Huck