working on QT change/get win property (stylesheet for cvTrackBar fixed !!!)
This commit is contained in:
parent
d264907fd6
commit
9eea2a5fe6
@ -59,6 +59,7 @@ set(highgui_srcs
|
|||||||
|
|
||||||
set(highgui_hdrs src/precomp.hpp src/utils.hpp)
|
set(highgui_hdrs src/precomp.hpp src/utils.hpp)
|
||||||
|
|
||||||
|
#YV
|
||||||
set(lib_hdr_names highgui_c.h highgui.hpp)
|
set(lib_hdr_names highgui_c.h highgui.hpp)
|
||||||
set(highgui_ext_hdrs)
|
set(highgui_ext_hdrs)
|
||||||
foreach(h ${lib_hdr_names})
|
foreach(h ${lib_hdr_names})
|
||||||
@ -73,7 +74,7 @@ if(WIN32)
|
|||||||
#SET(QT_USE_QTXML 1)
|
#SET(QT_USE_QTXML 1)
|
||||||
INCLUDE(${QT_USE_FILE})
|
INCLUDE(${QT_USE_FILE})
|
||||||
|
|
||||||
SET(_MOC_HEADERS src/window_QT.h)
|
SET(_MOC_HEADERS src/window_QT.h )
|
||||||
QT4_WRAP_CPP(_MOC_OUTFILES ${_MOC_HEADERS})
|
QT4_WRAP_CPP(_MOC_OUTFILES ${_MOC_HEADERS})
|
||||||
|
|
||||||
set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} ${QT_LIBRARIES})
|
set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} ${QT_LIBRARIES})
|
||||||
|
@ -56,6 +56,12 @@ namespace cv
|
|||||||
|
|
||||||
enum { WINDOW_AUTOSIZE=1 };
|
enum { WINDOW_AUTOSIZE=1 };
|
||||||
|
|
||||||
|
//YV
|
||||||
|
//-----------New for QT
|
||||||
|
//CV_EXPORTS void information(const string& name, const string& text, int delayms);
|
||||||
|
//------------
|
||||||
|
|
||||||
|
|
||||||
CV_EXPORTS void namedWindow( const string& winname, int flags CV_DEFAULT(WINDOW_AUTOSIZE) );
|
CV_EXPORTS void namedWindow( const string& winname, int flags CV_DEFAULT(WINDOW_AUTOSIZE) );
|
||||||
CV_EXPORTS void destroyWindow( const string& winname );
|
CV_EXPORTS void destroyWindow( const string& winname );
|
||||||
CV_EXPORTS int startWindowThread();
|
CV_EXPORTS int startWindowThread();
|
||||||
|
@ -56,6 +56,11 @@ extern "C" {
|
|||||||
/****************************************************************************************\
|
/****************************************************************************************\
|
||||||
* Basic GUI functions *
|
* Basic GUI functions *
|
||||||
\****************************************************************************************/
|
\****************************************************************************************/
|
||||||
|
//YV
|
||||||
|
//-----------New for QT
|
||||||
|
//CVAPI(void) cvInformation(const char* name, const char* text, int delayms);
|
||||||
|
//----------------------
|
||||||
|
|
||||||
|
|
||||||
/* this function is used to set some external parameters in case of X Window */
|
/* this function is used to set some external parameters in case of X Window */
|
||||||
CVAPI(int) cvInitSystem( int argc, char** argv );
|
CVAPI(int) cvInitSystem( int argc, char** argv );
|
||||||
@ -76,10 +81,13 @@ enum
|
|||||||
CV_WINDOW_FULLSCREEN = 1
|
CV_WINDOW_FULLSCREEN = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* Set and Get Property of the window */
|
/* Set and Get Property of the window */
|
||||||
CVAPI(void) cvSetWindowProperty(const char* name, int prop_id, double prop_value);
|
CVAPI(void) cvSetWindowProperty(const char* name, int prop_id, double prop_value);
|
||||||
CVAPI(double) cvGetWindowProperty(const char* name, int prop_id);
|
CVAPI(double) cvGetWindowProperty(const char* name, int prop_id);
|
||||||
|
|
||||||
|
CVAPI(void) cvInformation(const char* name, const char* text, int delayms);
|
||||||
|
|
||||||
/* display image within window (highgui windows remember their content) */
|
/* display image within window (highgui windows remember their content) */
|
||||||
CVAPI(void) cvShowImage( const char* name, const CvArr* image );
|
CVAPI(void) cvShowImage( const char* name, const CvArr* image );
|
||||||
|
|
||||||
@ -200,17 +208,8 @@ CVAPI(void) cvConvertImage( const CvArr* src, CvArr* dst, int flags CV_DEFAULT(0
|
|||||||
/* wait for key event infinitely (delay<=0) or for "delay" milliseconds */
|
/* wait for key event infinitely (delay<=0) or for "delay" milliseconds */
|
||||||
CVAPI(int) cvWaitKey(int delay CV_DEFAULT(0));
|
CVAPI(int) cvWaitKey(int delay CV_DEFAULT(0));
|
||||||
|
|
||||||
//YV
|
void cvInformation(const char* name, const char* text, int delay);
|
||||||
#if defined (HAVE_QT)
|
|
||||||
class CvWindow;
|
|
||||||
class ViewPort;
|
|
||||||
struct CvTrackbar;
|
|
||||||
|
|
||||||
CVAPI(int) cvStartLoop(int (*pt2Func)(int argc, char *argv[]), int argc, char *argv[]);
|
|
||||||
CVAPI(void) cvStopLoop();
|
|
||||||
CVAPI(void) cvInformation(const char* name, const char* text, int delay);
|
|
||||||
CvTrackbar* icvFindTrackbarByName( const char* name_trackbar, const char* name_window );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************************\
|
/****************************************************************************************\
|
||||||
* Working with Video Files and Cameras *
|
* Working with Video Files and Cameras *
|
||||||
|
@ -171,6 +171,18 @@ void cvChangeMode_GTK(const char* name, double prop_value);
|
|||||||
void cvChangeMode_CARBON(const char* name, double prop_value);
|
void cvChangeMode_CARBON(const char* name, double prop_value);
|
||||||
void cvChangeMode_QT(const char* name, double prop_value);
|
void cvChangeMode_QT(const char* name, double prop_value);
|
||||||
|
|
||||||
|
//#if defined (HAVE_QT)
|
||||||
|
//class CvWindow;
|
||||||
|
//class ViewPort;
|
||||||
|
//struct CvTrackbar;
|
||||||
|
|
||||||
|
////new functions available to the users
|
||||||
|
//#include "highgui_QT_extension.h"
|
||||||
|
////new functions hidden to the users
|
||||||
|
//CvTrackbar* icvFindTrackbarByName( const char* name_trackbar, const char* name_window );
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
|
||||||
/*namespace cv
|
/*namespace cv
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -131,6 +131,13 @@ double getWindowProperty(const string& winname, int prop_id)
|
|||||||
return cvGetWindowProperty(winname.c_str(),prop_id);
|
return cvGetWindowProperty(winname.c_str(),prop_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
void information(const string& name, const string& text, int delayms)
|
||||||
|
{
|
||||||
|
cvInformation(name.c_str(),text.c_str(), delayms);
|
||||||
|
}
|
||||||
|
* */
|
||||||
|
|
||||||
void imshow( const string& winname, const Mat& img )
|
void imshow( const string& winname, const Mat& img )
|
||||||
{
|
{
|
||||||
CvMat _img = img;
|
CvMat _img = img;
|
||||||
|
@ -53,29 +53,46 @@ QWaitCondition key_pressed;
|
|||||||
QMutex mutexKey;
|
QMutex mutexKey;
|
||||||
//end static and global
|
//end static and global
|
||||||
|
|
||||||
|
|
||||||
//end declaration
|
//end declaration
|
||||||
void cvChangeMode_QT(const char* name, double prop_value)
|
void cvChangeMode_QT(const char* name, double prop_value)
|
||||||
{
|
{
|
||||||
//CV_WINDOW_NORMAL or CV_WINDOW_FULLSCREEN
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
|
"toggleFullScreen",
|
||||||
|
Qt::AutoConnection,
|
||||||
|
Q_ARG(QString, QString(name)),
|
||||||
|
Q_ARG(double, prop_value));
|
||||||
}
|
}
|
||||||
|
|
||||||
double cvGetMode_QT(const char* name)
|
double cvGetMode_QT(const char* name)
|
||||||
{
|
{
|
||||||
|
double result;
|
||||||
return 0;
|
|
||||||
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
|
"isFullScreen",
|
||||||
|
Qt::AutoConnection,
|
||||||
|
Q_RETURN_ARG(double, result),
|
||||||
|
Q_ARG(QString, QString(name)));
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CV_IMPL void cvInformation(const char* name, const char* text, int delayms)
|
||||||
|
{
|
||||||
|
|
||||||
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
|
"displayInfo",
|
||||||
|
Qt::AutoConnection,
|
||||||
|
//Qt::DirectConnection,
|
||||||
|
Q_ARG(QString, QString(name)),
|
||||||
|
Q_ARG(QString, QString(text)),
|
||||||
|
Q_ARG(int, delayms));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
CV_IMPL int cvWaitKey( int arg )
|
CV_IMPL int cvWaitKey( int arg )
|
||||||
{
|
{
|
||||||
|
|
||||||
CV_FUNCNAME( "cvWaitKey" );
|
|
||||||
|
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
unsigned long delayms;//in milliseconds
|
unsigned long delayms;//in milliseconds
|
||||||
if (arg<=0)
|
if (arg<=0)
|
||||||
delayms = ULONG_MAX;
|
delayms = ULONG_MAX;
|
||||||
@ -124,21 +141,19 @@ CV_IMPL int cvWaitKey( int arg )
|
|||||||
}
|
}
|
||||||
guiMainThread._bTimeOut = false;
|
guiMainThread._bTimeOut = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
__END__;
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CV_IMPL int cvStartLoop(int (*pt2Func)(int argc, char *argv[]), int argc, char* argv[])
|
int cvStartLoop(int (*pt2Func)(int argc, char *argv[]), int argc, char* argv[])
|
||||||
{
|
{
|
||||||
multiThreads = true;
|
multiThreads = true;
|
||||||
QFuture<int> future = QtConcurrent::run(pt2Func,argc,argv);
|
QFuture<int> future = QtConcurrent::run(pt2Func,argc,argv);
|
||||||
return guiMainThread.start();
|
return guiMainThread.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL void cvStopLoop()
|
void cvStopLoop()
|
||||||
{
|
{
|
||||||
qApp->exit();
|
qApp->exit();
|
||||||
}
|
}
|
||||||
@ -146,12 +161,8 @@ CV_IMPL void cvStopLoop()
|
|||||||
|
|
||||||
CV_IMPL CvWindow* icvFindWindowByName( const char* arg )
|
CV_IMPL CvWindow* icvFindWindowByName( const char* arg )
|
||||||
{
|
{
|
||||||
|
|
||||||
CV_FUNCNAME( "icvFindWindowByName" );
|
|
||||||
|
|
||||||
QPointer<CvWindow> window = NULL;
|
QPointer<CvWindow> window = NULL;
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
if( !arg )
|
if( !arg )
|
||||||
CV_Error( CV_StsNullPtr, "NULL name string" );
|
CV_Error( CV_StsNullPtr, "NULL name string" );
|
||||||
@ -168,19 +179,14 @@ CV_IMPL CvWindow* icvFindWindowByName( const char* arg )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__END__;
|
|
||||||
return window;
|
return window;
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL CvTrackbar* icvFindTrackbarByName( const char* name_trackbar, const char* name_window )
|
CvTrackbar* icvFindTrackbarByName( const char* name_trackbar, const char* name_window )
|
||||||
{
|
{
|
||||||
|
|
||||||
CV_FUNCNAME( "icvFindTrackbarByName" );
|
|
||||||
|
|
||||||
QPointer<CvTrackbar> result = NULL;
|
QPointer<CvTrackbar> result = NULL;
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
QPointer<CvWindow> w = icvFindWindowByName( name_window );
|
QPointer<CvWindow> w = icvFindWindowByName( name_window );
|
||||||
|
|
||||||
if( !w )
|
if( !w )
|
||||||
@ -200,16 +206,12 @@ CV_IMPL CvTrackbar* icvFindTrackbarByName( const char* name_trackbar, const char
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
__END__;
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL int cvNamedWindow( const char* name, int flags )
|
CV_IMPL int cvNamedWindow( const char* name, int flags )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvNamedWindow" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
if (multiThreads)
|
if (multiThreads)
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
"createWindow",
|
"createWindow",
|
||||||
@ -221,31 +223,13 @@ CV_IMPL int cvNamedWindow( const char* name, int flags )
|
|||||||
Q_ARG(int, flags));
|
Q_ARG(int, flags));
|
||||||
else
|
else
|
||||||
guiMainThread.createWindow(QString(name),flags);
|
guiMainThread.createWindow(QString(name),flags);
|
||||||
|
|
||||||
__END__;
|
|
||||||
return 1;//Dummy value
|
return 1;//Dummy value
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL void cvInformation(const char* name, const char* text, int delayms)
|
|
||||||
{
|
|
||||||
CV_FUNCNAME( "cvInformation" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
|
||||||
"displayInfo",
|
|
||||||
Qt::AutoConnection,
|
|
||||||
Q_ARG(QString, QString(name)),
|
|
||||||
Q_ARG(QString, QString(text)),
|
|
||||||
Q_ARG(int, delayms));
|
|
||||||
|
|
||||||
__END__;
|
|
||||||
}
|
|
||||||
|
|
||||||
CV_IMPL int icvInitSystem( int argc, char** argv )
|
CV_IMPL int icvInitSystem( int argc, char** argv )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "icvInitSystem" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
static int wasInitialized = 0;
|
static int wasInitialized = 0;
|
||||||
|
|
||||||
@ -258,15 +242,11 @@ CV_IMPL int icvInitSystem( int argc, char** argv )
|
|||||||
qDebug()<<"init done"<<endl;
|
qDebug()<<"init done"<<endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
__END__;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL void cvDestroyWindow( const char* name )
|
CV_IMPL void cvDestroyWindow( const char* name )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvDestroyWindow" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
"destroyWindow",
|
"destroyWindow",
|
||||||
@ -274,57 +254,40 @@ CV_IMPL void cvDestroyWindow( const char* name )
|
|||||||
Qt::AutoConnection,
|
Qt::AutoConnection,
|
||||||
Q_ARG(QString, QString(name))
|
Q_ARG(QString, QString(name))
|
||||||
);
|
);
|
||||||
|
|
||||||
__END__;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CV_IMPL void cvDestroyAllWindows(void)
|
CV_IMPL void cvDestroyAllWindows(void)
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvDestroyAllWindows" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
"destroyAllWindow",
|
"destroyAllWindow",
|
||||||
//Qt::BlockingQueuedConnection,
|
//Qt::BlockingQueuedConnection,
|
||||||
Qt::AutoConnection
|
Qt::AutoConnection
|
||||||
);
|
);
|
||||||
|
|
||||||
__END__;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL void* cvGetWindowHandle( const char* name )
|
CV_IMPL void* cvGetWindowHandle( const char* name )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvGetWindowHandle" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
if( !name )
|
if( !name )
|
||||||
CV_Error( CV_StsNullPtr, "NULL name string" );
|
CV_Error( CV_StsNullPtr, "NULL name string" );
|
||||||
|
|
||||||
__END__;
|
|
||||||
return (void*) icvFindWindowByName( name );
|
return (void*) icvFindWindowByName( name );
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL const char* cvGetWindowName( void* window_handle )
|
CV_IMPL const char* cvGetWindowName( void* window_handle )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvGetWindowName" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
if( !window_handle )
|
if( !window_handle )
|
||||||
CV_Error( CV_StsNullPtr, "NULL window handler" );
|
CV_Error( CV_StsNullPtr, "NULL window handler" );
|
||||||
|
|
||||||
|
|
||||||
__END__;
|
|
||||||
return ((CvWindow*)window_handle)->windowTitle().toLatin1().data();
|
return ((CvWindow*)window_handle)->windowTitle().toLatin1().data();
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL void cvMoveWindow( const char* name, int x, int y )
|
CV_IMPL void cvMoveWindow( const char* name, int x, int y )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvMoveWindow" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
"moveWindow",
|
"moveWindow",
|
||||||
@ -334,17 +297,12 @@ CV_IMPL void cvMoveWindow( const char* name, int x, int y )
|
|||||||
Q_ARG(int, x),
|
Q_ARG(int, x),
|
||||||
Q_ARG(int, y)
|
Q_ARG(int, y)
|
||||||
);
|
);
|
||||||
|
|
||||||
__END__;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL void cvResizeWindow(const char* name, int width, int height )
|
CV_IMPL void cvResizeWindow(const char* name, int width, int height )
|
||||||
{
|
{
|
||||||
|
|
||||||
CV_FUNCNAME( "cvResizeWindow" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
"resizeWindow",
|
"resizeWindow",
|
||||||
//Qt::BlockingQueuedConnection,
|
//Qt::BlockingQueuedConnection,
|
||||||
@ -353,14 +311,12 @@ CV_IMPL void cvResizeWindow(const char* name, int width, int height )
|
|||||||
Q_ARG(int, width),
|
Q_ARG(int, width),
|
||||||
Q_ARG(int, height)
|
Q_ARG(int, height)
|
||||||
);
|
);
|
||||||
|
|
||||||
__END__;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL int cvCreateTrackbar2( const char* trackbar_name, const char* window_name, int* val, int count, CvTrackbarCallback2 on_notify, void* userdata )
|
CV_IMPL int cvCreateTrackbar2( const char* trackbar_name, const char* window_name, int* val, int count, CvTrackbarCallback2 on_notify, void* userdata )
|
||||||
{
|
{
|
||||||
//TODO: implement the real one, not a wrapper
|
//TODO: implement the real one, not a wrapper
|
||||||
return cvCreateTrackbar( trackbar_name, window_name, val, count, (CvTrackbarCallback)on_notify );
|
return cvCreateTrackbar( trackbar_name, window_name, val, count, (CvTrackbarCallback)on_notify );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -371,9 +327,6 @@ CV_IMPL int cvStartWindowThread()
|
|||||||
|
|
||||||
CV_IMPL int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change)
|
CV_IMPL int cvCreateTrackbar( const char* trackbar_name, const char* window_name, int* value, int count, CvTrackbarCallback on_change)
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvCreateTrackbar" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
if (multiThreads)
|
if (multiThreads)
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
@ -388,75 +341,53 @@ CV_IMPL int cvCreateTrackbar( const char* trackbar_name, const char* window_name
|
|||||||
else
|
else
|
||||||
guiMainThread.addSlider(QString(trackbar_name),QString(window_name),(void*)value,count,(void*)on_change);
|
guiMainThread.addSlider(QString(trackbar_name),QString(window_name),(void*)value,count,(void*)on_change);
|
||||||
|
|
||||||
__END__;
|
return 1;//demmy value
|
||||||
return 1;//demmy value
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL int cvGetTrackbarPos( const char* trackbar_name, const char* window_name )
|
CV_IMPL int cvGetTrackbarPos( const char* trackbar_name, const char* window_name )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvGetTrackbarPos" );
|
|
||||||
|
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
QPointer<CvTrackbar> t = icvFindTrackbarByName( trackbar_name, window_name );
|
QPointer<CvTrackbar> t = icvFindTrackbarByName( trackbar_name, window_name );
|
||||||
|
|
||||||
if (t)
|
if (t)
|
||||||
result = t->slider->value();
|
result = t->slider->value();
|
||||||
|
|
||||||
__END__;
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL void cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos )
|
CV_IMPL void cvSetTrackbarPos( const char* trackbar_name, const char* window_name, int pos )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvSetTrackbarPos" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
QPointer<CvTrackbar> t = icvFindTrackbarByName( trackbar_name, window_name );
|
QPointer<CvTrackbar> t = icvFindTrackbarByName( trackbar_name, window_name );
|
||||||
|
|
||||||
if (t)
|
if (t)
|
||||||
t->slider->setValue(pos);
|
t->slider->setValue(pos);
|
||||||
|
|
||||||
__END__;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* assign callback for mouse events */
|
/* assign callback for mouse events */
|
||||||
CV_IMPL void cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse,void* param )
|
CV_IMPL void cvSetMouseCallback( const char* window_name, CvMouseCallback on_mouse,void* param )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvSetMouseCallback" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
|
||||||
|
|
||||||
QPointer<CvWindow> w = icvFindWindowByName( window_name );
|
QPointer<CvWindow> w = icvFindWindowByName( window_name );
|
||||||
|
|
||||||
if (!w)
|
if (!w)
|
||||||
CV_Error(CV_StsNullPtr, "NULL window handler" );
|
CV_Error(CV_StsNullPtr, "NULL window handler" );
|
||||||
|
|
||||||
w->setMouseCallBack(on_mouse, param);
|
w->setMouseCallBack(on_mouse, param);
|
||||||
|
|
||||||
__END__;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CV_IMPL void cvShowImage( const char* name, const CvArr* arr )
|
CV_IMPL void cvShowImage( const char* name, const CvArr* arr )
|
||||||
{
|
{
|
||||||
CV_FUNCNAME( "cvShowImage" );
|
|
||||||
|
|
||||||
__BEGIN__;
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
//objects were created in GUI thread, so not using invoke method here should be fine
|
"showImage",
|
||||||
guiMainThread.showImage(QString(name), (void*) arr);
|
//Qt::BlockingQueuedConnection,
|
||||||
|
Qt::DirectConnection,
|
||||||
// QMetaObject::invokeMethod(&guiMainThread,
|
Q_ARG(QString, QString(name)),
|
||||||
// "showImage",
|
Q_ARG(void*, (void*)arr)
|
||||||
// //Qt::BlockingQueuedConnection,
|
);
|
||||||
// Qt::AutoConnection,
|
|
||||||
// Q_ARG(QString, QString(name)),
|
|
||||||
// Q_ARG(void*, (void*)arr)
|
|
||||||
// );
|
|
||||||
|
|
||||||
__END__;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -465,6 +396,7 @@ CV_IMPL void cvShowImage( const char* name, const CvArr* arr )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//----------OBJECT----------------
|
//----------OBJECT----------------
|
||||||
|
|
||||||
GuiReceiver::GuiReceiver() : _bTimeOut(false)
|
GuiReceiver::GuiReceiver() : _bTimeOut(false)
|
||||||
@ -473,6 +405,35 @@ GuiReceiver::GuiReceiver() : _bTimeOut(false)
|
|||||||
qApp->setQuitOnLastWindowClosed ( false );//maybe the user would like to access this setting
|
qApp->setQuitOnLastWindowClosed ( false );//maybe the user would like to access this setting
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double GuiReceiver::isFullScreen(QString name)
|
||||||
|
{
|
||||||
|
QPointer<CvWindow> w = icvFindWindowByName( name.toLatin1().data() );
|
||||||
|
|
||||||
|
if (!w)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (w->isFullScreen())
|
||||||
|
return CV_WINDOW_FULLSCREEN;
|
||||||
|
else
|
||||||
|
return CV_WINDOW_NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
//accept CV_WINDOW_NORMAL or CV_WINDOW_FULLSCREEN
|
||||||
|
void GuiReceiver::toggleFullScreen(QString name, double flags )
|
||||||
|
{
|
||||||
|
QPointer<CvWindow> w = icvFindWindowByName( name.toLatin1().data() );
|
||||||
|
|
||||||
|
if (!w)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (w->isFullScreen() && flags == CV_WINDOW_NORMAL)
|
||||||
|
w->showNormal();
|
||||||
|
|
||||||
|
if (!w->isFullScreen() && flags == CV_WINDOW_FULLSCREEN)
|
||||||
|
w->showFullScreen();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void GuiReceiver::createWindow( QString name, int flags )
|
void GuiReceiver::createWindow( QString name, int flags )
|
||||||
{
|
{
|
||||||
if (!qApp)
|
if (!qApp)
|
||||||
|
@ -37,6 +37,9 @@
|
|||||||
//the use of this software, even if advised of the possibility of such damage.
|
//the use of this software, even if advised of the possibility of such damage.
|
||||||
|
|
||||||
//--------------------Google Code 2010 -- Yannick Verdie--------------------//
|
//--------------------Google Code 2010 -- Yannick Verdie--------------------//
|
||||||
|
#ifndef __OPENCV_HIGHGUI_QT_H__
|
||||||
|
#define __OPENCV_HIGHGUI_QT_H__
|
||||||
|
|
||||||
|
|
||||||
#include "precomp.hpp"
|
#include "precomp.hpp"
|
||||||
|
|
||||||
@ -63,15 +66,15 @@
|
|||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QIODevice>
|
#include <QIODevice>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Macro here
|
//Macro here
|
||||||
#define CV_MODE_NORMAL 0
|
#define CV_MODE_NORMAL 0
|
||||||
#define CV_MODE_OPENGL 1
|
#define CV_MODE_OPENGL 1
|
||||||
//end macro
|
//end macro
|
||||||
|
|
||||||
//Here declare everything
|
class CvWindow;
|
||||||
//need a .h to allow QT to use MOC (in order to use signal, slots, etc)
|
class ViewPort;
|
||||||
|
//class CvTrackbar;
|
||||||
|
|
||||||
|
|
||||||
class GuiReceiver : public QObject
|
class GuiReceiver : public QObject
|
||||||
{
|
{
|
||||||
@ -95,6 +98,8 @@ public slots:
|
|||||||
void displayInfo( QString name, QString text, int delayms );
|
void displayInfo( QString name, QString text, int delayms );
|
||||||
void refreshEvents();
|
void refreshEvents();
|
||||||
void timeOut();
|
void timeOut();
|
||||||
|
void toggleFullScreen(QString name, double flags );
|
||||||
|
double isFullScreen(QString name);
|
||||||
};
|
};
|
||||||
|
|
||||||
class CvTrackbar : public QHBoxLayout
|
class CvTrackbar : public QHBoxLayout
|
||||||
@ -263,3 +268,5 @@ static const QString str_Trackbar_css = QString("")
|
|||||||
+ "border: 1px solid #aaa;"
|
+ "border: 1px solid #aaa;"
|
||||||
+ "border-radius: 4px;"
|
+ "border-radius: 4px;"
|
||||||
+ "}";
|
+ "}";
|
||||||
|
|
||||||
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user