Author:QQ174554431
//lockwindow.h
#ifndef LOCKWINDOW_H
#define LOCKWINDOW_H
#include <QtGui/QPushButton>
#include <QtGui/QDialog>
#include <QtGui/QHBoxLayout>
#include <QEvent>
#include <QResizeEvent>
class LockWindow : public QDialog
{
Q_OBJECT
public:
LockWindow(QWidget *parent = 0, Qt::WFlags flags = 0);
~LockWindow();
protected:
void moveEvent(QMoveEvent* pEvent );
void closeEvent ( QCloseEvent * event ) ;
public slots:
void OnButtonLockWindow();
private:
bool isLocked;
QPushButton *lockButton;
QHBoxLayout *hBoxLayout;
QRect m_LockedRect;
Qt::WindowFlags m_windowsFlags;
};
#endif // LOCKWINDOW_H
//lockwindow.cpp
#include "lockwindow.h"
LockWindow::LockWindow(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
isLocked = false;
lockButton = new QPushButton();
lockButton->setText(tr("Lock"));
lockButton->setFixedSize(100,30);
resize(600, 400);
hBoxLayout = new QHBoxLayout(this);
hBoxLayout->addWidget(lockButton);
setMinimumSize(300,200);
setMaximumSize(900,600);
m_windowsFlags = windowFlags();
setLayout(hBoxLayout);
connect(lockButton,SIGNAL(clicked()),this,SLOT(OnButtonLockWindow()));
}
LockWindow::~LockWindow()
{
}
void LockWindow::OnButtonLockWindow()
{
if(isLocked)
{
lockButton->setText("Lock");
setWindowFlags(m_windowsFlags|Qt::WindowStaysOnTopHint);
//or setWindowFlags(windowFlags()&(~Qt::MSWindowsFixedSizeDialogHint));
show();
}
else
{
lockButton->setText("UnLock");
setWindowFlags(m_windowsFlags|Qt::MSWindowsFixedSizeDialogHint |Qt::WindowStaysOnTopHint);
//or setWindowFlags(windowFlags()|Qt::MSWindowsFixedSizeDialogHint|Qt::WindowStaysOnTopHint);
show();
m_LockedRect = this->geometry();
}
isLocked = !isLocked;
}
void LockWindow::moveEvent( QMoveEvent* pEvent )
{
if(isLocked)
{
this->setGeometry(m_LockedRect);
}
QDialog::moveEvent(pEvent);
}
void LockWindow::closeEvent ( QCloseEvent * cEvent )
{
if(isLocked)
{
cEvent->ignore();
}
else
{
QDialog::closeEvent(cEvent);
}
}
//main.cpp
#include "lockwindow.h"
#include <QtGui/QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
LockWindow w;
w.show();
return a.exec();
}
分享到:
相关推荐
QT-悬浮对话框 PPT教程+代码
QT--标准对话框代码
NULL 博文链接:https://vowtree.iteye.com/blog/1450313
Qt QFileDialog 文件选择对话框 多选
C++GuiQt4编程-创建对话框实例: #include "finddialog.h" #include int main(int argc, char *argv[]) { QApplication a(argc, argv); FindDialog w; w.show(); return a.exec(); }
Qt 03_Qt对话框(三) 标准对话框 源代码
从Qt官网上下载的Qt的解决方案资料库(Qt Solutions Archive) http://qt.nokia.com/products/qt-addons/solutions-archive/ 有JPEG2000的,有Windows中Services的,有浏览器插件的,有单应用程序的,有SOAP的,有...
Qt-Advanced-Docking-System-master
Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的(很多嵌入式板子还是用Qt4.8),其实该版本是和Qt5.5差不多时间发布的。参考链接 https://www.qt.io/blog/2015/05/26/qt-4-8-7-released ...
PyQt5基础-创建对话框,简述了PyQt5使用过程,使用QtWidgets、QPushButton类说明 目录 PyQt5基础-创建对话框 1 软件安装 2 Python安装 2 PyQt5的安装 2 设置环境变量 2 PyQt5创建按键 3 PyQt5创建widget 4 PyQt5的...
Qt qt-opensource-windows-x86-5.11.0安装包,适用于开发openCV、QtAndroid
qt 的对话框设计与创建,使用信号与槽的技术,建立gui工程文档
qt Qt-Advanced-Docking-System 使用教程 示例代码
树莓派使用的qt版本源码,qt-everywhere-src-5.11.3版本的交叉编译源码
所以今天收集了qt-opensource-linux-x64-5.10.0.run 、 qt-opensource-linux-x64-5.12.1.run 、qt-opensource-linux-x64-5.12.6.run、qt-opensource-linux-x64-5.12.9.run 、qt-opensource-linux-x64-5.12.12.run给...
windows 下载的QT开发包 qt-opensource-windows-x86-msvc2010-5.5.1 qt-vs-addin-1.2.5 非常的好用.VS2008 vs2010都可以用。
qt-opensource-windows-x86-5.14.2
考虑程序的友好性,当程序在执行一项耗时操作时,界面应告诉用户“程序还在运行中”,那么,QT中进度对话框(QProgressDialog)可以满足要求
qt-vs-addin-1.2.5.part3
qt-everywhere-opensource-src-5.9.8