[Qt-interest] 答复: capture screen
Malyushytsky, Alex
alex at wai.com
Tue Jun 15 00:02:31 CEST 2010
I don't think hide does anything beside scheduling an event, which may be not even processed
When you are trying to capture.
I would either try to call
QCoreApplication::processEvents ( QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents )
after hide() or made capture_screen() a slot if it is not, moved show() there and used
QTimer::singleShot(0, this, SLOT(_ ()));
to invoke capture. In this case you will have to move show() at the end of capture_screen()
Hope this helps,
Alex
-----Original Message-----
From: qt-interest-bounces at trolltech.com [mailto:qt-interest-bounces at trolltech.com] On Behalf Of pengliang(??)
Sent: Sunday, June 13, 2010 6:51 PM
To: qt-interest at trolltech.com
Subject: [Qt-interest] 答复: capture screen
Hi Luis:
Thank you.
Hi Carsten:
Thanks for your advice.
I have modified them, but the problem still does exist.
-----------------------------------
if(setHideWnd == true) {
hide();
capture_screen();
show();
} else {
Capture_screen();
}
----------------------------------
void MainWindow::capture_screen()
{
QString picture_file= QString("%1/%2").arg(save_dir).arg("picture ");
QPixmap fullscreenmap;
fullscreenmap =QPixmap::grabWindow(QApplication::desktop()->winId());
fullscreenmap.save(picture_file,"JPG",-1);
}
-------------------------------------------
Whether I still made some mistakes?
-----邮件原件-----
发件人: qt-interest-bounces at trolltech.com [mailto:qt-interest-bounces at trolltech.com] 代表 Luis Lezcano Airaldi
发送时间: 2010年6月13日 0:16
收件人: qt-interest at trolltech.com
主题: Re: [Qt-interest] capture screen
El 12/06/10 07:31, Carsten Breuer escribió:
> Hi pengliang,
> hi all,
>
>
>> Please see the snippet bellow. (I want to minimizied the windows
>> and capture the screen, but application capture screen before the window
>> was fully minimized.) why? Can anybody tell me why? Or give me some ideas.
>>
> The code needs a lot of cleanup because if is unnecessary complicated.
> The function windowHideShow is almost useless.
>
> You have created some really funny things here:
>
> this-hide(); LOL
>
> You take the address of the widget and subtract the result of
> hide of it and throw the result away. Funny.
>
> I think you meant this->hide();
> You do the same here: while(this-isHidden())
>
> NEVER EVER use this inside a class without the need of
> doing so! The only reason to use this is to give another
> class a pointer to your instance.
> The use of this is a disease that occur since python programmers
> try to use C++ (in python you have to do it that way with self).
>
> Here some other points:
>
> 1. Why do you want to toggle isHideWnd. No need for that.
> You have two variables doing the same thing
> 2. You try to call functions twice! One time with this, the
> other time correct.
>
> Clean up the code first and REMOVE all the useless "this".
>
>
> Best Regards,
>
That's the problem when they use html in a mailing list. Your client
removed the ">" of this->hide() so you're not seeing it.
Back to the problem, what happens if you uncomment the line
qApp->proccessEvents()? I'm not sure, but that should minimize the
window and then you take the screenshot...
Regards.
_______________________________________________
Qt-interest mailing list
Qt-interest at trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-interest
_______________________________________________
Qt-interest mailing list
Qt-interest at trolltech.com
http://lists.trolltech.com/mailman/listinfo/qt-interest
---------------------------------------------------------------------------------------------------
Weidlinger Associates, Inc. made the following annotations.
“This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify us by reply e-mail and immediately and permanently delete this message and any attachments. Thank you.”
“Please consider our environment before printing this email.”
More information about the Qt-interest-old
mailing list