floga = 0
void Widget::pushbutton_clicked()
{
if(floga == 0){
floga = 1
ui->Widget_little->show
}
}
退出时在还原floga的值就好激郑 我也是败棚刚学QT,不过公司有模板。。。
在windows下互斥体有个唯一的key,通过key去创建互斥体,如果这巧腔薯个互斥体已经存在了,那么通过GetLastError能获取到这个信息,表示程序已经在运行了。互斥体还有个优点圆裤就是在程序关闭时孝者,会自动释放掉!
#include "mainwindow.h"
#include <QApplication>
#include <windows.h>
int main(int argc, char *argv[]){
QApplication a(argc, argv)
QString strKey = "mykey"
LPCWSTR wstrKey = strKey.toStdWString().c_str()
HANDLE hMetex = CreateMutex(NULL,FALSE,wstrKey)
if(GetLastError() == ERROR_ALREADY_EXISTS){
//如果互斥体存在,说明程序已经有实例在运行了,释放资源然后关闭本实例
if(hMetex){
CloseHandle(hMetex)
hMetex = NULL
}
return -1
}
MainWindow w
w.show()
return a.exec()
}
这样一般情圆尺蚂况下就是很卡的原因。等一下就行、。如果不行那就是QT被卡死了。你应该结束那个没有反应的在重困嫌新开。如果自己觉得很正常但是又不能打开那就关掉杀毒软件。一般在橘埋你打开多开之前就应该先关掉杀毒软件了。记住哦。是彻底退出。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)