2

私は 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:

    }; 

誰かがこの部分を理解するのを手伝ってくれたら幸いです。

4

3 に答える 3

3

シグナルとスロットを完全に理解する必要があります (オブジェクト間の通信に使用されます)。このメカニズムは Qt の中心的な機能であり、おそらく他のフレームワークが提供する機能と最も異なる部分です。

それらの基本を説明するこの記事を読んでください。

http://qt-project.org/doc/qt-4.8/signalsandslots.html

于 2013-05-25T18:10:11.623 に答える
1

Qr の信号とスロットのメカニズムを理解する必要があります。Qt に付属しているサンプル プログラムの 1 つから始めるのが最も簡単です。

イベント駆動型 GUI プログラムと同様に、最初は複雑に見えますが、実際に操作するのはおそらく最も単純なメカニズムの 1 つです。

于 2013-05-25T18:06:09.593 に答える