⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 跨平台,多数据库查看编辑和查询工具,平台支持windows,linux,数据库支持oracle,odbc,mysql,slite等
💻 CPP
字号:
#include <QtGui>
#include<stdlib.h>

#include "mainwindow.h"
#include "connDialog.h"

QString g_connectName="db_manager_connect_name";

void setupEnv()
{
	QString str;
	QStringList list;
	QFile file(QApplication::applicationDirPath()+"/env.txt");
	if(file.exists() && file.open(QIODevice::ReadOnly))
	{
			str=file.readAll();
			file.close();
	}
	
	list=str.split("\n");
	if(list.size()==0)
		return;
		
	foreach(QString line,list)
	{
		if(line.trimmed().left(1)=="#")
			continue;
		try{
			
		 QStringList listLine=line.split("=");
		 QString sleft=listLine.at(0);
		 QString sright=listLine.at(1);
		 QStringList listVar;
		 #ifdef Q_OS_WIN
		   listVar=sright.split(";");
		 #else
		   listVar=srignt.split(":");
		 #endif
		 sright.clear();
		 foreach(QString var,listVar)
		 {
		 	 QString varName;
		 	 var=var.trimmed();		 	 
		   #ifdef Q_OS_WIN
		    if(var.left(1)=="%" && var.right(1)=="%")
		   	 varName=var.mid(1,var.length()-2);
		   	 qDebug()<<var<<varName;
		   #else
		    if(var.left(1)=="$")
		   	 varName=var.mid(1,var.length()-1);
		   #endif
		   
		   if(varName.length()>0)
		   {
		   	QByteArray val=qgetenv(varName.toLatin1().data());
		   	sright=sright+val;
		   }
		   else
		   	sright=sright+var;
		   	
		   #ifdef Q_OS_WIN
		    sright=sright+";";
		   #else
		    sright=sright+":";
		   #endif
		 }
		 sright=sright.left(sright.length()-1);
		 
		 line=sleft+"="+sright;
		 qDebug()<<sleft<<sright<<line;
	   putenv(line.toLatin1().data());
	   
	   //QByteArray env=qgetenv(listLine.at(0).toLatin1().data());
	   //qDebug()<<"TESTENV is :"<<listLine.at(0)<<env;
	  }
	  catch(...){}
  }
  qDebug()<<"end set env";
}

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);    
	Q_INIT_RESOURCE(dbmanager);

  
  app.setApplicationName("sqldbmanagerApp");
  
	// 设置库搜索路径
  QStringList pathList=QCoreApplication::libraryPaths();
  //pathList.append(QDir::current().absolutePath()+"/plugins");			
  pathList.insert(0,QApplication::applicationDirPath());			
  pathList.insert(0,QApplication::applicationDirPath()+"/plugins");			
  //QCoreApplication::setLibraryPaths(pathList);

	QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
	QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
	QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));


	//	汉字的转换器
	QString translatorPath=QApplication::applicationDirPath()+"/translations/";
	QDir dir(translatorPath);
	QStringList filters;
	filters << "*.qm" ;
	dir.setNameFilters(filters); 
	foreach(QFileInfo fi,dir.entryInfoList())
	{
		QTranslator *translator = new QTranslator(&app);
		if (translator->load(fi.filePath()))
			app.installTranslator(translator);
	}


  app.setStyle(new QPlastiqueStyle);


	// 导入样式表
	 
	QFile file(QApplication::applicationDirPath()+"/style/Dbstyle.css");
	if(file.exists())
	{
		if(file.open(QIODevice::ReadOnly))
		{
			QString strStyle=file.readAll();
			file.close();
			app.setStyleSheet(strStyle);
		}
	}
	
	setupEnv();
	//system("cmd.exe");
	

	
  QPixmap pixmap(":/image/splash.jpg");
  QSplashScreen splashScreen(pixmap);


	ConnDialog dlg;
	dlg.splashScreen=&splashScreen;
	QFileInfo info(QApplication::applicationDirPath()+"/dm.db");	
	if(info.exists() && info.size()>0)
		dlg.myAccept();
	else
	{
		int ret = dlg.exec();
		if (!ret)
			return 2;
	}
  
  splashScreen.show();
  app.processEvents();
  
  QObject::connect(&app,SIGNAL(lastWindowClosed () ),&app,SLOT(quit()));		
	MainWindow mainWin;	
	mainWin.splashScreen=&splashScreen;
  mainWin.loadData();
  mainWin.show();
  splashScreen.finish(&mainWin);
  
  


  //QMessageBox::warning(0,"",QSqlDatabase::drivers().join(",") +"\n" +QCoreApplication::libraryPaths().join("\n"));
  int ret=app.exec();  
  return ret;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -