Пользовательский слот из qt4 design, сгенерированный h file

Привет, я пытаюсь сделать пользовательский слот с файлом h, который сгенерировал дизайнер qt4
Я вижу, как сделан стандартный слот, но я хотел бы, чтобы «после изучения этого шага» запустил команды терминала и вывел его в текстовое поле, поэтому я пытаюсь заменить слот past () на те, в которых я могу править команды
Вот файл h-файла, который отлично работает, но …. проблема, описанная выше, » пытается понять поток .. 2-й день, поэтому любые указатели являются удивительными. так что здесь я прокомментирую, где я думаю, что я должен работать .. но не добился успеха весь день LOL.

#ifndef SWEETGUIFORMQ19488_H
#define SWEETGUIFORMQ19488_H

#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QDialogButtonBox>
#include <QtGui/QHeaderView>
#include <QtGui/QTextEdit>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>

QT_BEGIN_NAMESPACE

class Ui_SweetGuiForm
{
public:
QVBoxLayout *verticalLayout_2;
QVBoxLayout *verticalLayout;
QTextEdit *textEdit;
QDialogButtonBox *buttonBox;

void setupUi(QWidget *SweetGuiForm)
{
if (SweetGuiForm->objectName().isEmpty())
SweetGuiForm->setObjectName(QString::fromUtf8("SweetGuiForm"));
SweetGuiForm->resize(511, 275);
verticalLayout_2 = new QVBoxLayout(SweetGuiForm);
verticalLayout_2->setObjectName(QString::fromUtf8("verticalLayout_2"));
verticalLayout = new QVBoxLayout();
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
textEdit = new QTextEdit(SweetGuiForm);
textEdit->setObjectName(QString::fromUtf8("textEdit"));

verticalLayout->addWidget(textEdit);

buttonBox = new QDialogButtonBox(SweetGuiForm);
buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);

verticalLayout->addWidget(buttonBox);verticalLayout_2->addLayout(verticalLayout);

QWidget::setTabOrder(textEdit, buttonBox);

retranslateUi(SweetGuiForm);
QObject::connect(buttonBox, SIGNAL(rejected()), SweetGuiForm, SLOT(close()));

Хорошо, я думаю, я мог бы заменить paste () на on_buttonBox_accepted (), пожалуйста, поправьте меня, я действительно все еще не готов к этому моменту, но где я могу исправить функцию? сделать в файле с именем sweetguiform.cpp? это где я потерял .. помогите ..
QObject :: connect (buttonBox, SIGNAL (принято ()), textEdit, SLOT (вставить ()));

        QMetaObject::connectSlotsByName(SweetGuiForm);
} // setupUi

void retranslateUi(QWidget *SweetGuiForm)
{
SweetGuiForm->setWindowTitle(QApplication::translate("SweetGuiForm", "Form", 0, QApplication::UnicodeUTF8));
} // retranslateUi

};
namespace Ui {
class SweetGuiForm: public Ui_SweetGuiForm {};
} // namespace Ui

QT_END_NAMESPACE

#endif // SWEETGUIFORMQ19488_H

Это способ делать что-то новое?

0

Решение

Я думаю, вам не следует редактировать заголовочный файл, который генерирует для вас Qt. Вместо этого вы должны написать свой собственный файл заголовка / реализации, который включает этот автоматически сгенерированный заголовок и устанавливает там соединения с сигнальными слотами. Например:

#include "ui_SweetGuiForm.h"
class SweetGuiForm : public QWidget
{
public:
SweetGuiForm( ): ui( new Ui::SweetGuiForm )
{
ui->setupUi( this );
}

public slots:
void on_buttonBox_accepted( )
{
// your code here
}

protected:
Ui::SweetGuiForm* ui;
};

Qt найдет on_buttonBox_accepted метод и настройте соединение сигнального слота для вас, чтобы вам не нужно было звонить QObject::connect,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]