working on QT change/get win property (done)
Fullscreen done change autoresize dynamically done
This commit is contained in:
parent
e71c5e8754
commit
be292046d8
@ -165,11 +165,19 @@ CvVideoWriter* cvCreateVideoWriter_GStreamer( const char* filename, int fourcc,
|
|||||||
double cvGetModeWindow_W32(const char* name);
|
double cvGetModeWindow_W32(const char* name);
|
||||||
double cvGetModeWindow_GTK(const char* name);
|
double cvGetModeWindow_GTK(const char* name);
|
||||||
double cvGetModeWindow_CARBON(const char* name);
|
double cvGetModeWindow_CARBON(const char* name);
|
||||||
double cvGetModeWindow_QT(const char* name);
|
|
||||||
void cvSetModeWindow_W32(const char* name, double prop_value);
|
void cvSetModeWindow_W32(const char* name, double prop_value);
|
||||||
void cvSetModeWindow_GTK(const char* name, double prop_value);
|
void cvSetModeWindow_GTK(const char* name, double prop_value);
|
||||||
void cvSetModeWindow_CARBON(const char* name, double prop_value);
|
void cvSetModeWindow_CARBON(const char* name, double prop_value);
|
||||||
|
|
||||||
|
|
||||||
|
//for QT
|
||||||
|
#if defined (HAVE_QT)
|
||||||
|
double cvGetModeWindow_QT(const char* name);
|
||||||
void cvSetModeWindow_QT(const char* name, double prop_value);
|
void cvSetModeWindow_QT(const char* name, double prop_value);
|
||||||
|
double cvGetPropWindow_QT(const char* name);
|
||||||
|
void cvSetPropWindow_QT(const char* name,double prop_value);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*namespace cv
|
/*namespace cv
|
||||||
{
|
{
|
||||||
|
@ -66,7 +66,7 @@ CV_IMPL void cvSetWindowProperty(const char* name, int prop_id, double prop_valu
|
|||||||
|
|
||||||
case CV_WND_PROP_AUTOSIZE:
|
case CV_WND_PROP_AUTOSIZE:
|
||||||
#if defined (HAVE_QT)
|
#if defined (HAVE_QT)
|
||||||
//cvChangeSizeWindow_QT(name,prop_value);
|
cvSetPropWindow_QT(name,prop_value);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ CV_IMPL double cvGetWindowProperty(const char* name, int prop_id)
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#if defined (HAVE_QT)
|
#if defined (HAVE_QT)
|
||||||
//cvGetSizeWindow_QT(name,prop_value);
|
return cvGetPropWindow_QT(name);
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
|
@ -53,7 +53,28 @@ QWaitCondition key_pressed;
|
|||||||
QMutex mutexKey;
|
QMutex mutexKey;
|
||||||
//end static and global
|
//end static and global
|
||||||
|
|
||||||
//end declaration
|
|
||||||
|
double cvGetPropWindow_QT(const char* name)
|
||||||
|
{
|
||||||
|
double result = -1;
|
||||||
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
|
"getPropWindow",
|
||||||
|
//Qt::DirectConnection,
|
||||||
|
Qt::AutoConnection,
|
||||||
|
Q_RETURN_ARG(double, result),
|
||||||
|
Q_ARG(QString, QString(name)));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
void cvSetPropWindow_QT(const char* name,double prop_value)
|
||||||
|
{
|
||||||
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
|
"setPropWindow",
|
||||||
|
Qt::AutoConnection,
|
||||||
|
Q_ARG(QString, QString(name)),
|
||||||
|
Q_ARG(double, prop_value));
|
||||||
|
}
|
||||||
|
|
||||||
void cvSetModeWindow_QT(const char* name, double prop_value)
|
void cvSetModeWindow_QT(const char* name, double prop_value)
|
||||||
{
|
{
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
@ -65,7 +86,7 @@ void cvSetModeWindow_QT(const char* name, double prop_value)
|
|||||||
|
|
||||||
double cvGetModeWindow_QT(const char* name)
|
double cvGetModeWindow_QT(const char* name)
|
||||||
{
|
{
|
||||||
double result;
|
double result = -1;
|
||||||
|
|
||||||
QMetaObject::invokeMethod(&guiMainThread,
|
QMetaObject::invokeMethod(&guiMainThread,
|
||||||
"isFullScreen",
|
"isFullScreen",
|
||||||
@ -405,6 +426,44 @@ 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::getPropWindow(QString name)
|
||||||
|
{
|
||||||
|
QPointer<CvWindow> w = icvFindWindowByName( name.toLatin1().data() );
|
||||||
|
|
||||||
|
|
||||||
|
if (!w)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return (double)w->flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GuiReceiver::setPropWindow(QString name, double arg2 )
|
||||||
|
{
|
||||||
|
QPointer<CvWindow> w = icvFindWindowByName( name.toLatin1().data() );
|
||||||
|
|
||||||
|
if (!w)
|
||||||
|
return;
|
||||||
|
|
||||||
|
int flags = (int) arg2;
|
||||||
|
|
||||||
|
if (w->flags == flags)//nothing to do
|
||||||
|
return;
|
||||||
|
|
||||||
|
|
||||||
|
switch(flags)
|
||||||
|
{
|
||||||
|
case CV_WINDOW_NORMAL:
|
||||||
|
w->layout->setSizeConstraint(QLayout::SetMinAndMaxSize);
|
||||||
|
w->flags = flags;
|
||||||
|
break;
|
||||||
|
case CV_WINDOW_AUTOSIZE:
|
||||||
|
w->layout->setSizeConstraint(QLayout::SetFixedSize);
|
||||||
|
w->flags = flags;
|
||||||
|
break;
|
||||||
|
default:;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
double GuiReceiver::isFullScreen(QString name)
|
double GuiReceiver::isFullScreen(QString name)
|
||||||
{
|
{
|
||||||
QPointer<CvWindow> w = icvFindWindowByName( name.toLatin1().data() );
|
QPointer<CvWindow> w = icvFindWindowByName( name.toLatin1().data() );
|
||||||
@ -602,16 +661,9 @@ CvTrackbar::CvTrackbar(CvWindow* arg, QString name, int* value, int count, CvTra
|
|||||||
|
|
||||||
QObject::connect( slider, SIGNAL( valueChanged( int ) ),this, SLOT( update( int ) ) );
|
QObject::connect( slider, SIGNAL( valueChanged( int ) ),this, SLOT( update( int ) ) );
|
||||||
|
|
||||||
//if I connect those two signals in not-multiThreads mode,
|
|
||||||
//the code crashes when we move the trackbar and then click on the button, ... why ?
|
|
||||||
//so I disable the button
|
|
||||||
|
|
||||||
if (multiThreads)
|
|
||||||
QObject::connect( label, SIGNAL( clicked() ),this, SLOT( createDialog() ));
|
QObject::connect( label, SIGNAL( clicked() ),this, SLOT( createDialog() ));
|
||||||
else
|
|
||||||
label->setEnabled(false);
|
|
||||||
|
|
||||||
label->setStyleSheet("QPushButton:disabled {color: black}");
|
//label->setStyleSheet("QPushButton:disabled {color: black}");
|
||||||
|
|
||||||
addWidget(label);//name + value
|
addWidget(label);//name + value
|
||||||
addWidget(slider);//slider
|
addWidget(slider);//slider
|
||||||
|
@ -100,6 +100,8 @@ public slots:
|
|||||||
void timeOut();
|
void timeOut();
|
||||||
void toggleFullScreen(QString name, double flags );
|
void toggleFullScreen(QString name, double flags );
|
||||||
double isFullScreen(QString name);
|
double isFullScreen(QString name);
|
||||||
|
double getPropWindow(QString name);
|
||||||
|
void setPropWindow(QString name, double flags );
|
||||||
};
|
};
|
||||||
|
|
||||||
class CvTrackbar : public QHBoxLayout
|
class CvTrackbar : public QHBoxLayout
|
||||||
|
Loading…
x
Reference in New Issue
Block a user