Development/Tutorials/Using KXmlGuiWindow (se): Difference between revisions

From KDE TechBase
m (Text replace - "<code ini>" to "<syntaxhighlight lang="ini">")
m (Text replace - "</code>" to "</syntaxhighlight>")
Line 42: Line 42:


#endif
#endif
</code>
</syntaxhighlight>
Först subklassar vi KXmlGuiWindowpå rad 7 med <tt>class MainWindow : public KXmlGuiWindow</tt>.
Först subklassar vi KXmlGuiWindowpå rad 7 med <tt>class MainWindow : public KXmlGuiWindow</tt>.


Line 60: Line 60:
   setupGUI();
   setupGUI();
}
}
</code>
</syntaxhighlight>
Först måste vi, på rad 1, inkludera header-filen som innehåller klassdeklarationen.
Först måste vi, på rad 1, inkludera header-filen som innehåller klassdeklarationen.


Line 93: Line 93:
   return app.exec();
   return app.exec();
}
}
</code>
</syntaxhighlight>
Dem enda nya raderna här (jämfört med första guiden) är rad 19 och 20. På rad 18, så skapar vi vårt MainWindow objekt och sen på rad 19, visar vi det.
Dem enda nya raderna här (jämfört med första guiden) är rad 19 och 20. På rad 18, så skapar vi vårt MainWindow objekt och sen på rad 19, visar vi det.


Line 112: Line 112:
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
kde4_add_executable(tutorial2 ${tutorial2_SRCS})
target_link_libraries( tutorial2 ${KDE4_KDEUI_LIBS})
target_link_libraries( tutorial2 ${KDE4_KDEUI_LIBS})
</code>
</syntaxhighlight>


===Kompilering===
===Kompilering===

Revision as of 20:56, 29 June 2011


Development/Tutorials/Using_KXmlGuiWindow

How To Use KXmlGuiWindow
Tutorial Series   Beginner Tutorial
Previous   Tutorial 1 - Hello World
What's Next   Tutorial 3 - KActions and XmlGui
Further Reading   KXmlGuiWindow

Abstract

Den här guiden bygger vidare på Första Guiden och kommer att introducera KXmlGuiWindow klassen.

I den föregående guiden så skapade vi en "popup" dialog, men nu så ska vi närma oss en riktig applikation.

Using KXmlGuiWindow

För att ha nytta av KXmlGuiWindow, så måste vi subklassa den. Så vi skapar två filer, mainwindow.cpp och mainwindow.h som kommer att innehålla vår kod. Vår klass ärver ifrån KXmlGuiWindow eftersom den använder sig av XML för att t.e.x. definiera applikationens menyer.

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <KXmlGuiWindow>
#include <KTextEdit>

class MainWindow : public KXmlGuiWindow
{
  public:
    MainWindow(QWidget *parent=0);
		
  private:
    KTextEdit* textArea;
};

#endif

Först subklassar vi KXmlGuiWindowpå rad 7 med class MainWindow : public KXmlGuiWindow.

Sen deklarerar vi konstruktorn med MainWindow(QWidget *parent=0);.

Och till slut deklarerar vi en pekare till det objektet som kommer att utgöra huvuddelen av vårt program. KTextEdit är en generisk richtexteditor med lite trevliga KDE features som t.e.x. cursor auto-hiding.

mainwindow.cpp

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) : KXmlGuiWindow(parent)
{
  textArea = new KTextEdit;
  setCentralWidget(textArea);
  setupGUI();
}

Först måste vi, på rad 1, inkludera header-filen som innehåller klassdeklarationen.

På rad 5, initierar vi vår texteditor med ett objekt. Sen på rad 6 så använder vi den inbyggda funktionen setCentralWidget() som talar om för KXmlGuiWindow vad som ska visas i mittensektionen på fönstret.

Till slut så anropar vi KXmlGuiWindow::setupGUI() som gör en massa "behind-the-scenes stuff" och skapar "default" menyerna (Settings, Help).

Tillbaka till main.cpp

För att faktiskt kunna köra det här fönstret så måste vi lägga till några rader i main.cpp:

main.cpp

#include <KApplication>
#include <KAboutData>
#include <KCmdLineArgs>

#include "mainwindow.h"

int main (int argc, char *argv[])
{
  KAboutData aboutData( "tutorial2", 0,
      ki18n("Tutorial 2"), "1.0",
      ki18n("A simple text area"),
      KAboutData::License_GPL,
      ki18n("Copyright (c) 2007 Developer") );
  KCmdLineArgs::init( argc, argv, &aboutData );
  
  KApplication app;
 
  MainWindow* window = new MainWindow();
  window->show();

  return app.exec();
}

Dem enda nya raderna här (jämfört med första guiden) är rad 19 och 20. På rad 18, så skapar vi vårt MainWindow objekt och sen på rad 19, visar vi det.

CMake

Det bästa sättet att bygga programmet på är att använda CMake.Det enda som har förändrats sen föregående guide är att mainwindow.cpp har lagts till i källkodslistan och alla instanser av tutorial1 har blivit tutorial2.

CMakeLists.txt

project (tutorial2)

find_package(KDE4 REQUIRED)
include_directories( ${KDE4_INCLUDES} )

set(tutorial2_SRCS 
	main.cpp
	mainwindow.cpp
)

kde4_add_executable(tutorial2 ${tutorial2_SRCS})
target_link_libraries( tutorial2 ${KDE4_KDEUI_LIBS})

Kompilering

För att kompilera, länka och köra, använd:

cmake . && make && ./tutorial2

Fortsättning

Nu kan du fortsätta med using KActions.