我对QT很新,在阅读完文档之后,我仍然无法从同一个类中获得一个按钮调用方法。任何人都可以帮助或指出我错在哪里?
#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();
}
和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:
};
如果有人能帮我理解这一部分,我将不胜感激。
答案 0 :(得分:2)
您必须完全理解信号和插槽(它们用于对象之间的通信)。这种机制是Qt的核心特征,可能是与其他框架提供的功能大不相同的部分。
阅读这篇解释其基础知识的文章:
答案 1 :(得分:1)
您需要了解Qr的信号和插槽机制。 最简单的起点是Qt附带的示例程序之一。
像任何事件驱动的gui程序一样,它起初似乎很复杂,但它可能是实际使用的最简单的机制之一答案 2 :(得分:1)
connect ( ui->pushButton, SIGNAL( clicked() ), this, SLOT( pushButtonClicked() ) );
pushButtonClicked()是您定义的函数。