SnapScreen::SnapScreen(QWidget *parent) : QWidget(parent) { setAttribute(Qt::WA_DeleteOnClose); //显示按下截图时瞬间的图像(即原图) screenImage=QPixmap::grabWindow ( QApplication::desktop()->winId(),0,0, QApplication::desktop()->width(), QApplication::desktop()->height() ).toImage(); screenWidget.setWindowState(Qt::WindowFullScreen); screenPalette.setBrush(backgroundRole(),QBrush(screenImage)); screenWidget.setPalette(screenPalette); screenWidget.setVisible(true); //进入截图模式 snapPalette.setColor(backgroundRole(),QColor(0,0,0)); setPalette(snapPalette);//设置有色滤镜 setWindowOpacity(0.5);//设置透明度以看见后面的画面 setWindowState(Qt::WindowFullScreen);//截图的可选择区域是整个屏幕 setMouseTracking(true);//这是为了让鼠标没按下时也能触发mouseMoveEvent,以便显示当前点的坐标值和颜色值 //这个是截图器 snapWidget.ptrScreenWidget=&screenWidget; snapWidget.ptrSnapScope=&snapScope; snapWidget.setVisible(true); //这个是一个小型放大镜,用于精确观察 snapScope.ptrImageSource=&screenWidget; snapScope.setVisible(true); currentPos=QCursor::pos(); //连接信号和槽 connect(&snapWidget,SIGNAL(signalClose()),this,SLOT(close()));//接收关闭信号 connect(this,SIGNAL(signalGetSnap()),&snapWidget,SLOT(slotGetSnap())); }
/*------- Reader ------------------------------------------------------------*/ Reader::Reader() { m_pWorker = new ReaderWorker(); m_pThread = new QThread(this); m_pWorker->moveToThread(m_pThread); connect(m_pThread, SIGNAL(finished()), m_pWorker, SLOT(deleteLater())); connect(m_pThread, SIGNAL(finished()), m_pThread, SLOT(deleteLater())); connect(this, SIGNAL(signalClose()), m_pWorker, SLOT(close())); connect(m_pWorker, SIGNAL(closed()), SIGNAL(closed())); connect(this, SIGNAL(signalOpen()), m_pWorker, SLOT(open())); connect(m_pWorker, SIGNAL(opened()), SIGNAL(opened())); connect(this, SIGNAL(signalReadBlock()), m_pWorker, SLOT(readBlock())); connect(m_pWorker, SIGNAL(bytesRead(qint64)), SIGNAL(bytesRead(qint64))); m_pThread->start(); }
void VnaDevice::closeSerialPort() { if (serial->isOpen()) { serial->close(); emit signalClose(); } }
void NotifyUI::closeAnimation() { animation->setDuration(250); animation->setStartValue(showsize.height()); animation->setEndValue(0); animation->start(); connect(animation, SIGNAL(finished()), this, SIGNAL(signalClose())); connect(animation, SIGNAL(finished()), this, SLOT(deleteLater())); valid = false; }
//这是槽函数 void SnapWidget::slotSnapFinish()//把最终看到的内容作为截图内容放入剪贴板 { QClipboard *clipboard=QApplication::clipboard(); if(pixmapStack.isEmpty()) { clipboard->setPixmap(snapPixmap); } else { clipboard->setPixmap(pixmapStack.top()); } emit signalClose(); }
SnapWidget::SnapWidget(QWidget *parent) : QWidget(parent) { //初始化当前状态 setWindowFlags(Qt::ToolTip); resize(0,0); setMouseTracking(true); //初始化编辑状态 editing=false; visibleTextBorder=false; visibleText=false; //连接信号与槽 connect(&toolBar,SIGNAL(signalCancel()),this,SIGNAL(signalClose()));//接收取消信号 connect(&toolBar,SIGNAL(signalFinish()),this,SLOT(slotSnapFinish()));//接收截图信号 }
void NotifyManager::nextNotify() { if (lst.isEmpty()) { return; } NotifyUI *showUI = lst.first(); if (showUI->valid) { return; } showUI->valid = true; showUI->showAnimation(); connect(showUI, SIGNAL(signalClose()), this, SLOT(nextNotify())); QTimer::singleShot(showUI->showTime(), this, SLOT(removeNotify())); }
SlidePlaybackWidget::SlidePlaybackWidget(QWidget* parent) : QWidget(parent) { setupUi(this); m_playButton->setCheckable(true); m_slideLabel->setPixmap(KIcon("view-presentation").pixmap(64, 64)); m_prevButton->setText(""); m_nextButton->setText(""); m_playButton->setText(""); m_stopButton->setText(""); m_prevButton->setIcon(KIcon("media-skip-backward")); m_nextButton->setIcon(KIcon("media-skip-forward")); m_playButton->setIcon(KIcon("media-playback-start")); m_stopButton->setIcon(KIcon("media-playback-stop")); m_canHide = true; connect(m_playButton, SIGNAL(toggled(bool)), this, SLOT(slotPlayButtonToggled())); connect(m_nextButton, SIGNAL(clicked()), this, SLOT(slotNexPrevClicked())); connect(m_prevButton, SIGNAL(clicked()), this, SLOT(slotNexPrevClicked())); connect(m_nextButton, SIGNAL(clicked()), this, SIGNAL(signalNext())); connect(m_prevButton, SIGNAL(clicked()), this, SIGNAL(signalPrev())); connect(m_stopButton, SIGNAL(clicked()), this, SIGNAL(signalClose())); slotPlayButtonToggled(); }
void BrowserView::closeEvent(QCloseEvent *evt) { emit(signalClose(this)); }
void Reader::close() { emit signalClose(); }
void DTScheduleWidget::slotClose() { emit signalClose(mDoctorID); }
void Plot2D::closeEvent(QCloseEvent *evt) { QString windowTitle = openstudio::toQString(m_windowTitle); emit(signalClose(windowTitle)); }
/*virtual*/ void LogFileRead::closeEvent(QCloseEvent *) { emit signalClose(); }