Пример #1
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    g = new sub3dtoolgui;

    connect(g, SIGNAL(closeProgram()), this, SLOT(close()));
    connect(g, SIGNAL(newStatus(QString)), ui->statusBar, SLOT(showMessage(QString)));

    g->init();

    this->setCentralWidget(g);
    this->layout()->setSizeConstraint(QLayout::SetFixedSize);
}
int main(void)
{
	system("mode con lines=25 cols=80");	//콘솔 창 크기 초기화

	UserInfo *userInfo = NULL;
	FILE *readFile = NULL;
	FILE *writeFile = NULL;
	int input = 1, menu = 1, choice;
	int *ptr = &menu;
	char *menu_num[MENU_NUM];

	puts("\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t        =  시작하는 중  = \n\n\n\n\n\n\n\n\n\n\n");

	userInfo = setUserInfo(userInfo, readFile);	//구조체 배열에 파일 데이터 저장
	if (userInfo == (UserInfo*)-1) return 0;	//오류 났을 경우 바로 종료

	startSound();	//로딩 완료 효과음

	printMainSub(menu, menu_num);	//메인 메뉴 구성

	while(1) {
		printMain(menu, menu_num);	//메인 화면 출력
		
		input = getch();	//입력
		
		if (input == ARROW_BUFFER)	//방향키는 입력 시 아스키확장 값이 먼저 들어온 후 값이 들어옴
			input = getch();	//그래서 이 경우 버퍼를 한번 비우도록 하였음

		switch (input)
		{
		case UP_ARROW_KEY:	//상 방향키
			if (menu > 1) menu--;
			moveSound();
			break;
		case DOWN_ARROW_KEY:	//하 방향키
			if (menu < 6) menu++;
			moveSound();
			break;
		case ENTER_KEY:		//enter키
			inSound();
			switch (menu)
			{
			case 1:	//출력
				printList(userInfo);
				break;
			case 2:	//등록
				addUser(userInfo);
				break;
			case 3:	//삭제
				searchMain(userInfo, _DELETE, "삭제", "Delete");
				break;
			case 4:	//수정
				searchMain(userInfo, MODIFY, "수정", "Modify");
				break;
			case 5:	//검색
				searchMain(userInfo, SEARCH, "검색", "Search");
				break;
			case 6:	//저장
				saveInfo(userInfo, writeFile);
				break;

			} //switch(menu) out
			break;
		case ESC_KEY:		//esc키
			inSound();
			choice = closeProgram();

			if (choice == SAVE)
				choice = saveInfo(userInfo, writeFile);

			if (choice == SAVE || choice == EXIT){
				printClose();

				free(userInfo);

				closeSound();
				printClose_sub();
				return 0;
			}
			else break;
		default:
			warningMessage(input - '0', 6, ptr);
			break;
		} //switch(input) out
	}

	free(userInfo);
	return 0;
}
Пример #3
0
void RMainWnd::closeEvent(QCloseEvent* event)
{
    event->ignore();
    emit closeProgram();
}