Structure du répertoire de mon projet est:bibliothèque partagée QT en utilisant Visual Studio 2013 Addin, comment mettre à jour le texte sur le bouton poussoir bossée avec enveloppe externe
QtProject:
Form Files -> mainInterface.ui // Directory structure
Generated Files -> ui_mainInterface.h // Directory structure
Header Files -> QTMainUI.h // Directory structure
-> qtmainui_global.h // Directory structure
Source Files -> QTMainUI.cpp // Directory structure
//Wrapper to execute or get callback from QT shared library
testWrapperMain:
Source Files -> testWtrapperMain.cpp
testWtrapperMain.cpp
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QMainWindow *widget = new QMainWindow;
ui.setupUi(widget);
widget->show();
app.exec();
return 0;
}
ui_mainInterface .h est créé par l'outil de conception QT dont toutes les modifications apportées dans ce fichier seront perdues lors de la recompilation du fichier de l'interface utilisateur.
ui_mainInterface.h
class Ui_MainWindow
{
public:
QWidget *centralwidget;
QPushButton *pushButton;
QPushButton *pushButton_2;
QTextBrowser *textBrowser;
QMenuBar *menubar;
QStatusBar *statusbar;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QStringLiteral("MainWindow"));
MainWindow->resize(640, 417);
centralwidget = new QWidget(MainWindow);
centralwidget->setObjectName(QStringLiteral("centralwidget"));
pushButton = new QPushButton(centralwidget);
pushButton->setObjectName(QStringLiteral("pushButton"));
pushButton->setGeometry(QRect(60, 60, 111, 31));
pushButton_2 = new QPushButton(centralwidget);
pushButton_2->setObjectName(QStringLiteral("pushButton_2"));
pushButton_2->setGeometry(QRect(230, 60, 111, 31));
textBrowser = new QTextBrowser(centralwidget);
textBrowser->setObjectName(QStringLiteral("textBrowser"));
textBrowser->setGeometry(QRect(40, 120, 551, 211));
MainWindow->setCentralWidget(centralwidget);
menubar = new QMenuBar(MainWindow);
menubar->setObjectName(QStringLiteral("menubar"));
menubar->setGeometry(QRect(0, 0, 640, 21));
MainWindow->setMenuBar(menubar);
statusbar = new QStatusBar(MainWindow);
statusbar->setObjectName(QStringLiteral("statusbar"));
MainWindow->setStatusBar(statusbar);
retranslateUi(MainWindow);
QObject::connect(pushButton, SIGNAL(clicked()), MainWindow, SLOT(play()));
QObject::connect(pushButton_2, SIGNAL(clicked()), MainWindow, SLOT(play()));
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0));
pushButton->setText(QApplication::translate("MainWindow", "CHECK STATUS", 0));
pushButton_2->setText(QApplication::translate("MainWindow", "REGISTRATION", 0));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
// Ce fichier est pour obtenir des fentes (callback) QTMainUi.h
Ui::MainWindow ui;
class QTMAINUI_EXPORT QTMainUI :public Ui_MainWindow, public QObject
{
Q_OBJECT
public:
QTMainUI();
public slots:
void play(){
cout << "\n CLicked";
}
};
Lorsque nous courons testWrapperMain.exe fichier qui donne une erreur sur consol ie
QObject::connect: No such slot QMainWindow::play() in e:\qtmanagementclient\qtma
inui\qtmainui\generatedfiles\ui_maininterface.h:62
QObject::connect: (sender name: 'pushButton')
QObject::connect: (receiver name: 'MainWindow')
QObject::connect: No such slot QMainWindow::play() in e:\qtmanagementclient\qtma
inui\qtmainui\generatedfiles\ui_maininterface.h:63
QObject::connect: (sender name: 'pushButton_2')
QObject::connect: (receiver name: 'MainWindow')
Le problème réel est comment obtenir le rappel ou l'emplacement dans l'encapsuleur de test?
Y a-t-il une autre approche en dehors des emplacements pour effectuer cette tâche?
Mon exigence est que je vais avoir des boutons poussoirs et un navigateur de texte. J'ai créé la bibliothèque partagée avec lui, Sur appuyant sur le bouton de l'application différente, je veux afficher du texte sur le navigateur de texte. Je ne peux pas changer mon application mais penser à créer le gui comme dll et sur l'appel de bouton-poussoir je montrerai le texte.
En passant cela, nous recevons error.nom de fonction surchargée correspond à la liste d'arguments. Le troisième paramètre est Ui_MainWindow *. –
Quelle variable est assignée à 'QtMainUI'? – WLGfx
salut WLGfx merci pour votre commentaire. Passer au lieu de –