Пример #1
0
void AddDialog::slotNextClicked()
{
    switch (ui->typeComboBox->currentData().toInt())
    {
    case MenuType:
        mNewItem = new Menu("");
        ui->typeLabel->setText("Menu");// Add type title
        break;
    case MenuItemType:
        mNewItem = new MenuItem("", 0.0);
        ui->typeLabel->setText("Menu Item"); // Add type title
        break;
    default:
        break;
    }

    if (mNewItem)
    {
        mParent = ui->parentComboBox->currentMenuItem();
        mNewItem->accept(ui->widget);
        showPage2();
    }
}
Пример #2
0
int main(int argc,char **argv) {
    int sockfd;
    struct sockaddr_in servaddr;
    char sendline[MAXSEND], recvline[MAXRECV];
    char city[20];
    char charOfDay[2];

    if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {		//创建socket
        perror("socket created error\n");
        exit(1);
    }

    memset(&servaddr, 0, sizeof(servaddr));			//设置服务器套接字地址
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = inet_addr(SERV_IP);
    servaddr.sin_port = htons(SERV_PORT);

    if( connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0 ) {	//连接服务器
        perror("connect error\n");
    }

    system("clear");
    showPage1();

    while(1) {
        scanf("%s",city);		//读取用户输入的城市
        if( city[0] == '#' && strlen(city) == 1 ) {		//exit
            close(sockfd);
            exit(0);
        }
        else if( city[0] == 'q' && strlen(city)==1 ) {		//cls
            system("clear");
            showPage1();
        }
        else {
            memset(sendline, 0, MAXSEND);
            strcpy(&sendline[2], city);
            printf("%s\n",sendline);
            send(sockfd, sendline, MAXSEND, 0);	//将城市信息send到服务器
            if(recv(sockfd, recvline, MAXRECV, 0) == 0) {	//receive服务器返回的数据
                perror("receive error\n");
                exit(1);
            }
            if(recvline[0] == 'B') {		//服务器不可以提供此城市的天气信息
                printf("Sorry, Server does not have weather information for city %s!\n",city);
                showPage1();
            }
            else if(recvline[0] == 'A') {		//服务器可以提供此城市的天气信息
                system("clear");
                showPage2();
                while(1) {

                    scanf("%s",charOfDay);		//读取用户选择的功能
                    if(charOfDay[0] == 'r' && strlen(charOfDay) == 1) {		//cls
                        system("clear");
                        showPage1();
                        break;
                    }
                    else if(charOfDay[0] == 'q' && strlen(charOfDay) == 1) {		//back
                        system("clear");
                        showPage2();
                    }
                    else if(charOfDay[0] == '#' && strlen(charOfDay) == 1) {		//exit
                        close(sockfd);
                        exit(0);
                    }
                    else if(charOfDay[0] == '1' && strlen(charOfDay) == 1) {		//today
                        memset(sendline, 0, MAXSEND);
                        sendline[0] = 0x01;
                        sendline[1] = 'A';
                        strcpy(&sendline[2], city);
                        sendline[32] = 0x01;
                        send(sockfd, sendline, MAXSEND, 0);
                        if(recv(sockfd, recvline, MAXRECV, 0) == 0) {
                            perror("receive error\n");
                            exit(1);
                        }
                        //读取到服务器返回的天气信息,并分析打印出来
                        printWeather(recvline);
                    }
                    else if(charOfDay[0] == '2' && strlen(charOfDay) == 1) {		//three days from today
                        memset(sendline, 0, MAXSEND);
                        sendline[0] = 0x01;
                        sendline[1] = 'B';
                        strcpy(&sendline[2], city);
                        sendline[32] = 0x03;
                        send(sockfd, sendline, MAXSEND, 0);
                        if(recv(sockfd, recvline, MAXRECV, 0) == 0) {
                            perror("receive error\n");
                            exit(1);
                        }
                        //读取到服务器返回的天气信息,并分析打印出来
                        printWeather(recvline);
                    }
                    else if(charOfDay[0] == '3' && strlen(charOfDay) == 1) {		//custom day by yourself
                        printf("Please enter the day number(below 10, e.g. 1 means today):");
                        scanf("%s",charOfDay);
                        if(charOfDay[0] == 'r' && strlen(charOfDay) == 1) {		//cls
                            system("clear");
                            showPage1();
                            break;
                        }
                        else if(charOfDay[0] == 'q' && strlen(charOfDay) == 1) {		//back
                            system("clear");
                            showPage2();
                            continue;
                        }
                        else if(charOfDay[0] == '#' && strlen(charOfDay) == 1) {		//exit
                            close(sockfd);
                            exit(0);
                        }
                        memset(sendline, 0, MAXSEND);
                        sendline[0] = 0x01;
                        sendline[1] = 'A';
                        strcpy(&sendline[2], city);
                        while(strlen(charOfDay) != 1 || charOfDay[0] == '0') {		//判断是否输入的值在1-10之间
                            printf("Please enter the day number(below 10, e.g. 1 means today):");
                            scanf("%s",charOfDay);
                        }
                        sendline[32] = charOfDay[0] - 48;
                        send(sockfd, sendline, MAXSEND, 0);
                        if(recv(sockfd, recvline, MAXRECV, 0) == 0) {
                            perror("receive error\n");
                            exit(1);
                        }
                        //读取到服务器返回的天气信息,并分析打印出来
                        printWeather(recvline);
                    }
                    else {
                        printf("input error!\n");
                    }
                }
            }
        }
    }

}