📄 mywindow.cpp
字号:
#include <mywindow.h>#include <qlabel.h>#include <stdio.h>MyWindow::MyWindow(QWidget *parent, const char *name) :QScrollView(parent,name){ setCaption("swj"); //标题//建菜单 QPopupMenu *settings = new QPopupMenu; settings->insertItem("parameter",this,SLOT(conf_parameter())); settings->insertItem("plan",this,SLOT(select_phase_num())); QPopupMenu *simulate = new QPopupMenu; simulate->insertItem("show",this,SLOT(simulate())); QMenuBar *menu = new QMenuBar(this); menu->insertItem("settings",settings); menu->insertItem("simulate",simulate);}void MyWindow::conf_parameter() //配置参数{ conf_parameter_frame = new QWidget(0); conf_parameter_frame->setGeometry(50,100,180,200); QLabel *label = new QLabel("global parameter",conf_parameter_frame); label->setGeometry(50,10,120,30); QLabel *f_label_g = new QLabel("green flash",conf_parameter_frame); f_label_g->setGeometry(10,50,70,20); box_green_flash = new QSpinBox(conf_parameter_frame); box_green_flash->setGeometry(100,50,50,20); QLabel *b_label_g = new QLabel(" s",conf_parameter_frame); b_label_g->setGeometry(150,50,30,20); QLabel *f_label_y = new QLabel(" yellow",conf_parameter_frame); f_label_y->setGeometry(10,80,70,20); box_yellow = new QSpinBox(conf_parameter_frame); box_yellow->setGeometry(100,80,50,20); QLabel *b_label_y = new QLabel(" s",conf_parameter_frame); b_label_y->setGeometry(150,80,30,20); QLabel *f_label_r = new QLabel(" all red",conf_parameter_frame); f_label_r->setGeometry(10,110,70,20); box_all_red = new QSpinBox(conf_parameter_frame); box_all_red->setGeometry(100,110,50,20); QLabel *b_label_r = new QLabel(" s",conf_parameter_frame); b_label_r->setGeometry(150,110,50,20); QPushButton *para_ok_button = new QPushButton("ok",conf_parameter_frame); para_ok_button->setGeometry(60,150,80,30); connect(para_ok_button,SIGNAL(clicked()),this,SLOT(save_parameter())); conf_parameter_frame->show();}void MyWindow::save_parameter(){ green_flash = box_green_flash->value(); yellow = box_yellow->value(); all_red = box_all_red->value();// printf("%d %d %d",green_flash,yellow,all_red); conf_parameter_frame->close();}void MyWindow::select_phase_num(){ select_phase_frame = new QWidget(0); select_phase_frame->setGeometry(50,100,180,80); QLabel *label = new QLabel("how many phases?",select_phase_frame); label->setGeometry(10,10,120,30); phase_num = new QSpinBox(select_phase_frame); phase_num->setGeometry(120,20,50,20); QPushButton *ok_button = new QPushButton("ok",select_phase_frame); ok_button->setGeometry(70,50,50,20); phase_num->setValue(4); connect(ok_button,SIGNAL(clicked()),this,SLOT(phase_num_ok_process())); select_phase_frame->show();}void MyWindow::conf_phase(){ QWidget *parameter = new QWidget(this); parameter->setGeometry(0,20,400,300); char string[10]; QLabel *f_label[phase_number]; QLabel *m_label[phase_number]; QLabel *b_label[phase_number]; QLabel *direc_label[4]; QSpinBox *box[phase_number]; int x=10; int y=30; int height = 30; int width = 60; direction_number = 4; for(int k=1; k<=4; k++) { sprintf(string,"direction%d",k); direc_label[k] = new QLabel(string,parameter); direc_label[k]->setGeometry(x+width*k,5,width,height); } QPopupMenu *selectmenu[phase_number][4]; QPushButton *pushbutton[phase_number][4]; for(i=0; i<phase_number; i++) { sprintf(string,"phase %d:",i+1); f_label[i] = new QLabel(string,parameter); f_label[i]->setGeometry(x,y+i*height,width,height); for(j=0; j<direction_number; j++) { pushbutton[i][j] = new QPushButton("select",parameter); pushbutton[i][j]->setGeometry(x+width*(j+1),y+i*height,width,height); selectmenu[i][j] = new QPopupMenu; selectmenu[i][j]->insertItem("left",this,SLOT(data_process())); selectmenu[i][j]->insertItem("straight",this,SLOT(data_process())); selectmenu[i][j]->insertItem("left & straight ",this,SLOT(data_process(pushbutton[i][j]->x()))); selectmenu[i][j]->insertItem("stop",this,SLOT(data_process())); pushbutton[i][j]->setPopup(selectmenu[i][j]); printf("i=%d,j=%d",i,j); } m_label[i] = new QLabel(" last",parameter); m_label[i]->setGeometry(x+5*width,y+i*height,width-30,height); box[i] = new QSpinBox(parameter); box[i]->setGeometry(x+6*width-30,y+i*height+5,width-20,height-10); box[i]->setMaxValue(200); b_label[i] = new QLabel("s",parameter); b_label[i]->setGeometry(x+7*width-50,y+i*height,width,height); } parameter->show();}void MyWindow::simulate(){ QPushButton *button = new QPushButton("asdfasdf",this); button->setGeometry(50,50,50,30); button->show();}void MyWindow::phase_num_ok_process(){ phase_number = phase_num->value(); select_phase_frame->close(); conf_phase();}void MyWindow::data_process(int ii){ for(int i=0;i<ii;i++) { QPushButton *b = new QPushButton("sdfsdf",this); b->setGeometry(50,50*i,60,40); b->show(); }// data[ii][jj]=5;// printf("data[%d][%d]=%d",ii,jj,data[ii][jj]);// data[phase_number][direction_number]=5;// printf("phase_number=%d,direction_number=%d,data[phase_number][direction_number]=%d",phase_number,direction_number,data[phase_number][direction_number]);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -