Qt for beginners Exercise 1 answer: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
No edit summary
Line 1: Line 1:
=Qt for beginners — Exercise 1 : basis (Answer)=
[toc align_right=&quot;yes&amp;quot; depth=&quot;3&amp;quot;]<br />[[Category:Qt_for_beginners]]<br />[[Category:Tutorial]]<br />[[Category:HowTo]]


[[Qt for beginners Exercise 1 basis|&lt;&lt;&lt; Exercise 1 : basis]] | [[Qt for beginners|Summary]] | Exercise 2 &gt;&gt;&gt;
= Qt for beginners Exercise 1 : basis (Answer) =


==Widgets==
[[Qt_for_beginners_Exercise_1_basis|&lt;&lt;&lt; Exercise 1 : basis]] | [[Qt_for_beginners|Summary]] | Exercise 2 &gt;&gt;&gt;
 
== Widgets ==


Since this application seems to be quite complicated, we have chosen to split into several files :
Since this application seems to be quite complicated, we have chosen to split into several files :


''main.cpp''<br />
''main.cpp''<br /><code><br />#include &lt;QApplication&amp;gt;<br />#include &quot;window.h&amp;quot;
 
int main(int argc, char **argv)<br />{<br /> QApplication app (argc, argv);
 
Window window;<br /> window.show();
 
return app.exec&amp;amp;#40;&amp;#41;;<br />}<br /></code>
 
''window.h''<br /><code><br />#ifndef WINDOW_H<br />#define WINDOW_H
 
#include &lt;QWidget&amp;gt;
 
class QPushButton;<br />class QRadioButton;<br />class Window : public QWidget<br />{<br />public:<br /> explicit Window(QWidget *parent = 0);<br />private:<br /> QRadioButton *m_chickenButton;<br /> QRadioButton *m_sandwichButton;<br /> QRadioButton *m_soupButton;
 
QPushButton *m_selectButton;<br />};
 
#endif // WINDOW_H<br /></code>
 
''window.cpp''<br /><code><br />#include &quot;window.h&amp;quot;
 
#include &lt;QRadioButton&amp;gt;<br />#include &lt;QPushButton&amp;gt;<br />#include &lt;QButtonGroup&amp;gt;
 
Window::Window(QWidget *parent) :<br /> QWidget(parent)<br />{<br /> // Set size of the window<br /> setFixedSize(200, 150);
 
// Create and position the button<br /> m_chickenButton = new QRadioButton(&quot;Roasted chicken&amp;quot;, this);<br /> m_chickenButton-&gt;setGeometry(10, 10, 180, 30);
 
m_sandwichButton = new QRadioButton(&quot;Sandwich&amp;quot;, this);<br /> m_sandwichButton-&gt;setGeometry(10, 40, 180, 30);
 
m_soupButton = new QRadioButton(&quot;Soup&amp;quot;, this);<br /> m_soupButton-&gt;setGeometry(10, 70, 180, 30);
 
m_selectButton = new QPushButton(&quot;Select this menu&amp;quot;, this);<br /> m_selectButton-&gt;setGeometry(10, 110, 180, 30);
 
QButtonGroup '''group = new QButtonGroup(this);<br /> group-&gt;addButton(m_chickenButton);<br /> group-&gt;addButton(m_sandwichButton);<br /> group-&gt;addButton(m_soupButton);<br />}<br /></code>
<br />You can also remove the buttons from the attributes list and put the inside the constructor.
 
<br />h2. Signals and slots
<br /><code><br />#include &lt;QApplication&amp;gt;<br />#include &lt;QPushButton&amp;gt;
<br />int main(int argc, char'''*argv)<br />{<br /> QApplication app (argc, argv);


''window.h''<br />
QWidget window;<br /> window.setFixedSize(100, 80);


''window.cpp''<br />
QPushButton *buttonInfo = new QPushButton(&quot;Info&amp;quot;, &amp;window);<br /> buttonInfo-&gt;setGeometry(10, 10, 80, 30);


You can also remove the buttons from the attributes list and put the inside the constructor.
QPushButton *buttonQuit = new QPushButton(&quot;Quit&amp;quot;, &amp;window);<br /> buttonQuit-&gt;setGeometry(10, 40, 80, 30);


==Signals and slots==
window.show();


[[Qt for beginners Exercise 1 basis|&lt;&lt;&lt; Exercise 1 : basis]] | [[Qt for beginners|Summary]] | Exercise 2 &gt;&gt;&gt;
// Connections<br /> // Connecting the button associated to info to the &quot;aboutQt&amp;quot; slot of QApplication<br /> QObject::connect(buttonInfo, SIGNAL (clicked()), &amp;app, SLOT (aboutQt()));


===Categories:===
// Connecting the button associated to close to the &quot;quit&amp;quot; slot of QApplication<br /> QObject::connect(buttonQuit, SIGNAL (clicked()), &amp;app, SLOT (quit()));


* [[:Category:HowTo|HowTo]]
return app.exec&amp;amp;#40;&amp;#41;;<br />}<br /></code>
* [[:Category:Qt for beginners|Qt_for_beginners]]
* [[:Category:Tutorial|Tutorial]]

Revision as of 09:56, 24 February 2015

[toc align_right="yes&quot; depth="3&quot;]


Qt for beginners — Exercise 1 : basis (Answer)

<<< Exercise 1 : basis | Summary | Exercise 2 >>>

Widgets

Since this application seems to be quite complicated, we have chosen to split into several files :

main.cpp

<br />#include &lt;QApplication&amp;gt;<br />#include &quot;window.h&amp;quot;

int main(int argc, char **argv)<br />{<br /> QApplication app (argc, argv);

Window window;<br /> window.show();

return app.exec&amp;amp;#40;&amp;#41;;<br />}<br />

window.h

<br />#ifndef WINDOW_H<br />#define WINDOW_H

#include &lt;QWidget&amp;gt;

class QPushButton;<br />class QRadioButton;<br />class Window : public QWidget<br />{<br />public:<br /> explicit Window(QWidget *parent = 0);<br />private:<br /> QRadioButton *m_chickenButton;<br /> QRadioButton *m_sandwichButton;<br /> QRadioButton *m_soupButton;

QPushButton *m_selectButton;<br />};

#endif // WINDOW_H<br />

window.cpp

<br />#include &quot;window.h&amp;quot;

#include &lt;QRadioButton&amp;gt;<br />#include &lt;QPushButton&amp;gt;<br />#include &lt;QButtonGroup&amp;gt;

Window::Window(QWidget *parent) :<br /> QWidget(parent)<br />{<br /> // Set size of the window<br /> setFixedSize(200, 150);

// Create and position the button<br /> m_chickenButton = new QRadioButton(&quot;Roasted chicken&amp;quot;, this);<br /> m_chickenButton-&gt;setGeometry(10, 10, 180, 30);

m_sandwichButton = new QRadioButton(&quot;Sandwich&amp;quot;, this);<br /> m_sandwichButton-&gt;setGeometry(10, 40, 180, 30);

m_soupButton = new QRadioButton(&quot;Soup&amp;quot;, this);<br /> m_soupButton-&gt;setGeometry(10, 70, 180, 30);

m_selectButton = new QPushButton(&quot;Select this menu&amp;quot;, this);<br /> m_selectButton-&gt;setGeometry(10, 110, 180, 30);

QButtonGroup '''group = new QButtonGroup(this);<br /> group-&gt;addButton(m_chickenButton);<br /> group-&gt;addButton(m_sandwichButton);<br /> group-&gt;addButton(m_soupButton);<br />}<br />


You can also remove the buttons from the attributes list and put the inside the constructor.


h2. Signals and slots


<br />#include &lt;QApplication&amp;gt;<br />#include &lt;QPushButton&amp;gt;
<br />int main(int argc, char'''*argv)<br />{<br /> QApplication app (argc, argv);

QWidget window;<br /> window.setFixedSize(100, 80);

QPushButton *buttonInfo = new QPushButton(&quot;Info&amp;quot;, &amp;window);<br /> buttonInfo-&gt;setGeometry(10, 10, 80, 30);

QPushButton *buttonQuit = new QPushButton(&quot;Quit&amp;quot;, &amp;window);<br /> buttonQuit-&gt;setGeometry(10, 40, 80, 30);

window.show();

// Connections<br /> // Connecting the button associated to info to the &quot;aboutQt&amp;quot; slot of QApplication<br /> QObject::connect(buttonInfo, SIGNAL (clicked()), &amp;app, SLOT (aboutQt()));

// Connecting the button associated to close to the &quot;quit&amp;quot; slot of QApplication<br /> QObject::connect(buttonQuit, SIGNAL (clicked()), &amp;app, SLOT (quit()));

return app.exec&amp;amp;#40;&amp;#41;;<br />}<br />