Selaa lähdekoodia

ENH: simple widgets to start hosted application and show status

Marco Nolden 14 vuotta sitten
vanhempi
commit
d811762a19

+ 4 - 2
Applications/ctkExampleHost/CMakeLists.txt

@@ -6,16 +6,18 @@ PROJECT(ctkExampleHost)
 
 SET(KIT_SRCS
   ctkExampleHostMain.cpp
+  ctkHostAppExampleWidget.cpp
 )
 
 # Headers that should run through moc
 SET(KIT_MOC_SRCS
-
+  ctkHostAppExampleWidget.h
 )
 
 # UI files
 SET(KIT_UI_FORMS
-  
+  ctkHostAppExampleWidget.ui
+  ctkExampleHostMainWindow.ui
 )
 
 # Resources

+ 19 - 2
Applications/ctkExampleHost/ctkExampleHostMain.cpp

@@ -24,8 +24,13 @@
 #include <ctkPluginException.h>
 
 #include <ctkDicomExampleHost.h>
+#include <ctkHostAppExampleWidget.h>
+#include <ui_ctkExampleHostMainWindow.h>
 
 #include <QApplication>
+#include <QMainWindow>
+#include <QVBoxLayout>
+
 #include <QString>
 #include <QStringList>
 #include <QDirIterator>
@@ -82,10 +87,22 @@ int main(int argv, char** argc)
 
   framework->start();
 
+
   ctkDicomExampleHost* host = new ctkDicomExampleHost();
 
-  QWidget placeholder;
-  placeholder.show();
+
+  QMainWindow mainWindow;
+  Ui::MainWindow ui;
+  ui.setupUi(&mainWindow);
+
+  mainWindow.addDockWidget(static_cast<Qt::DockWidgetArea>(4),new ctkHostAppExampleWidget());
+
+//  QVBoxLayout* layout = new QVBoxLayout(&mainWindow);
+
+//  ctkHostAppExampleWidget* placeholder = new ctkHostAppExampleWidget(&mainWindow);
+
+//  layout->addWidget(placeholder);
+  mainWindow.show();
 
   return app.exec();
 

+ 59 - 0
Applications/ctkExampleHost/ctkExampleHostMainWindow.ui

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MainWindow</class>
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>800</width>
+    <height>600</height>
+   </rect>
+  </property>
+  <property name="windowTitle">
+   <string>MainWindow</string>
+  </property>
+  <widget class="QWidget" name="centralwidget">
+   <layout class="QHBoxLayout" name="horizontalLayout">
+    <item>
+     <widget class="QFrame" name="placeHolderFrame">
+      <property name="frameShape">
+       <enum>QFrame::Box</enum>
+      </property>
+      <property name="frameShadow">
+       <enum>QFrame::Raised</enum>
+      </property>
+      <property name="lineWidth">
+       <number>3</number>
+      </property>
+      <property name="midLineWidth">
+       <number>0</number>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+  <widget class="QMenuBar" name="menubar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>800</width>
+     <height>19</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuCTK_Example_Hosting_Application">
+    <property name="enabled">
+     <bool>false</bool>
+    </property>
+    <property name="title">
+     <string>CTK Example Hosting Application</string>
+    </property>
+   </widget>
+   <addaction name="menuCTK_Example_Hosting_Application"/>
+  </widget>
+  <widget class="QStatusBar" name="statusbar"/>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>

+ 27 - 0
Applications/ctkExampleHost/ctkHostAppExampleWidget.cpp

@@ -0,0 +1,27 @@
+#include "ctkHostAppExampleWidget.h"
+#include "ui_ctkHostAppExampleWidget.h"
+
+#include <QDebug>
+
+ctkHostAppExampleWidget::ctkHostAppExampleWidget(QWidget *parent) :
+    QDockWidget(parent),
+    ui(new Ui::ctkHostAppExampleWidget)
+{
+    qDebug() << "setup ui";
+    ui->setupUi(this);
+}
+
+ctkHostAppExampleWidget::~ctkHostAppExampleWidget()
+{
+    delete ui;
+}
+
+void ctkHostAppExampleWidget::startButtonClicked()
+{
+    qDebug() << "start button clicked";
+}
+
+void ctkHostAppExampleWidget::stopButtonClicked()
+{
+    qDebug() << "stop button clicked";
+}

+ 25 - 0
Applications/ctkExampleHost/ctkHostAppExampleWidget.h

@@ -0,0 +1,25 @@
+#ifndef CTKHOSTAPPEXAMPLEWIDGET_H
+#define CTKHOSTAPPEXAMPLEWIDGET_H
+
+#include <QDockWidget>
+
+namespace Ui {
+    class ctkHostAppExampleWidget;
+}
+
+class ctkHostAppExampleWidget : public QDockWidget
+{
+    Q_OBJECT
+
+public:
+    explicit ctkHostAppExampleWidget(QWidget *parent = 0);
+    ~ctkHostAppExampleWidget();
+public slots:
+    void startButtonClicked();
+    void stopButtonClicked();
+
+private:
+    Ui::ctkHostAppExampleWidget *ui;
+};
+
+#endif // CTKHOSTWIDGET_H

+ 113 - 0
Applications/ctkExampleHost/ctkHostAppExampleWidget.ui

@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ctkHostAppExampleWidget</class>
+ <widget class="QDockWidget" name="ctkHostAppExampleWidget">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>386</width>
+    <height>70</height>
+   </rect>
+  </property>
+  <property name="features">
+   <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
+  </property>
+  <property name="allowedAreas">
+   <set>Qt::BottomDockWidgetArea|Qt::TopDockWidgetArea</set>
+  </property>
+  <property name="windowTitle">
+   <string>Host Application Example2</string>
+  </property>
+  <widget class="QWidget" name="dockWidgetContents">
+   <layout class="QHBoxLayout" name="horizontalLayout">
+    <item>
+     <widget class="QPushButton" name="startButton">
+      <property name="text">
+       <string>Start</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QPushButton" name="stopButton">
+      <property name="text">
+       <string>Stop</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <spacer name="horizontalSpacer">
+      <property name="orientation">
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0">
+       <size>
+        <width>107</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item>
+     <widget class="QLabel" name="label">
+      <property name="text">
+       <string>Status:</string>
+      </property>
+     </widget>
+    </item>
+    <item>
+     <widget class="QLabel" name="label_2">
+      <property name="font">
+       <font>
+        <weight>75</weight>
+        <bold>true</bold>
+       </font>
+      </property>
+      <property name="text">
+       <string>IDLE</string>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>startButton</sender>
+   <signal>clicked()</signal>
+   <receiver>ctkHostAppExampleWidget</receiver>
+   <slot>startButtonClicked()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>53</x>
+     <y>57</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>269</x>
+     <y>26</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>stopButton</sender>
+   <signal>clicked()</signal>
+   <receiver>ctkHostAppExampleWidget</receiver>
+   <slot>stopButtonClicked()</slot>
+   <hints>
+    <hint type="sourcelabel">
+     <x>146</x>
+     <y>48</y>
+    </hint>
+    <hint type="destinationlabel">
+     <x>238</x>
+     <y>52</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+ <slots>
+  <slot>startButtonClicked()</slot>
+  <slot>stopButtonClicked()</slot>
+ </slots>
+</ui>