Reputation: 39
I am quite new to QT and after reading the documentation I still can't get a button call method from the same class. Could anyone help or point out where I am wrong?
#include "GUI.h"
GUI::GUI() {
window = new QWidget();
QGridLayout * layout = new QGridLayout;
//Sukuriami procesų label'iai
QLabel * startStopLabel = new QLabel("Start_Stop");
QLabel * readUILabel = new QLabel("ReadUI");
QLabel * jclLabel = new QLabel("JCL");
QLabel * dataToOutputLabel = new QLabel("DataToOutput");
QLabel * inputToRamLabel = new QLabel("InputToRam");
QLabel * mainProcLabel = new QLabel("MainProc");
QLabel * jobGovernorLabel = new QLabel("JobGovernor");
QLabel * loaderLabel = new QLabel("Loader");
QLabel * virtualMachineLabel = new QLabel("VirtualMachine");
QLabel * interruptLabel = new QLabel("Interrupt");
QLabel * printErrorLabel = new QLabel("PrintError");
//Sukuriami procesų laukai duomenų išvedimui
startStop = new QTextBrowser();
readUI = new QTextBrowser();
jcl = new QTextBrowser();
dataToOutput = new QTextBrowser();
inputToRam = new QTextBrowser();
mainProc = new QTextBrowser();
jobGovernor = new QTextBrowser();
loader = new QTextBrowser();
virtualMachine = new QTextBrowser();
interrupt = new QTextBrowser();
printError = new QTextBrowser();
forward = new QPushButton();
addAction();
connect(forward, SIGNAL(clicked()), this , SLOT(addText()));
// QPushButton * newJob = new QPushButton();
// QPushButton * cancel = new QPushButton();
// QAction * action;
QMainWindow * window2 = new QMainWindow();
//layout tvarkymas
layout->addWidget(startStopLabel, 0, 0, Qt::AlignHCenter);
layout->addWidget(readUILabel, 0, 1, Qt::AlignHCenter);
layout->addWidget(jclLabel, 0, 2, Qt::AlignHCenter);
layout->addWidget(dataToOutputLabel, 0, 3, Qt::AlignHCenter);
layout->addWidget(startStop, 1, 0);
layout->addWidget(readUI, 1, 1);
layout->addWidget(jcl, 1, 2);
layout->addWidget(dataToOutput, 1, 3);
layout->addWidget(inputToRamLabel, 2, 0, Qt::AlignHCenter);
layout->addWidget(mainProcLabel, 2, 1, Qt::AlignHCenter);
layout->addWidget(jobGovernorLabel, 2, 2, Qt::AlignHCenter);
layout->addWidget(loaderLabel, 2, 3, Qt::AlignHCenter);
layout->addWidget(inputToRam, 3, 0);
layout->addWidget(mainProc, 3, 1);
layout->addWidget(jobGovernor, 3, 2);
layout->addWidget(loader, 3, 3);
layout->addWidget(virtualMachineLabel, 4, 0, Qt::AlignHCenter);
layout->addWidget(interruptLabel, 4, 1, Qt::AlignHCenter);
layout->addWidget(printErrorLabel, 4, 2, Qt::AlignHCenter);
layout->addWidget(virtualMachine, 5, 0);
layout->addWidget(interrupt, 5, 1);
layout->addWidget(printError, 5, 2);
layout->addWidget(forward, 5, 3);
window->setLayout(layout);
window->setWindowState(Qt::WindowMaximized);
window->setWindowTitle("AutoMagic");
window->setWindowIcon(QIcon("kiriya.jpg"));
window->show();
}
GUI::~GUI() {
}
void GUI::addText(){
startStop->append("works");
window->repaint();
}
and gui.h
class GUI: public QMainWindow {
Q_OBJECT
QWidget * window;
QTextBrowser * startStop;
QTextBrowser * readUI;
QTextBrowser * jcl;
QTextBrowser * dataToOutput;
QTextBrowser * inputToRam;
QTextBrowser * mainProc;
QTextBrowser * jobGovernor;
QTextBrowser * loader;
QTextBrowser * virtualMachine;
QTextBrowser * interrupt;
QTextBrowser * printError;
QPushButton * forward;
public:
GUI();
virtual ~GUI();
void addText();
void addAction();
private:
};
I would be grateful if anyone could help me understand this part.
Upvotes: 3
Views: 20643
Reputation: 701
You have to fully understand signals and slots (they are used for communication between objects). This mechanism is a central feature of Qt and probably the part that differs most from the features provided by other frameworks.
Read this article that explain their basics:
http://qt-project.org/doc/qt-4.8/signalsandslots.html
Upvotes: 3
Reputation: 2256
connect ( ui->pushButton, SIGNAL( clicked() ), this, SLOT( pushButtonClicked() ) );
pushButtonClicked() is function you defined.
Upvotes: 2
Reputation: 96119
You need to understand Qr's signal and slot mechanism. The easiest place to start is one of the example programs that come with Qt.
Like any event driven gui program it seems complex at first, but it is probably one of the simplest mechanisms to actually work with
Upvotes: 1