-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbasicwindow.cpp
More file actions
48 lines (39 loc) · 1.66 KB
/
basicwindow.cpp
File metadata and controls
48 lines (39 loc) · 1.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "basicwindow.h"
/*UI界面*/
BasicWindow::BasicWindow(QWidget *parent) : QMainWindow(parent) {
/**初始化UI**/
this->setWindowTitle("Basic Interpreter");
this->setFixedSize(BASIC_WINDOW_WIDTH, BASIC_WINDOW_HEIGHT);
console = new Console(this); //控制台
program = new Program(this); //处理
console->setGeometry(0, 0, 800, 600);
console->write("Minimal Basic Interpreter\n");
console->write("(Type HELP for help.)\n");
console->write(
"----------------------------------------------------------------------"
"-----------------");
console->write("\n");
/** connect **/
connect(console, &Console::newLineWritten, program,
&Program::parseCommand); // console接受str,送到parse
connect(program, &Program::printSignal, console, &Console::write); // print
connect(program, &Program::inputSignal, this,
&BasicWindow::callFromProgram); // input
connect(this, &BasicWindow::inputNumSignal, program,
&Program::reserveNumber);
connect(program, &Program::spaceSignal, console, &Console::write);
}
BasicWindow::~BasicWindow() {}
void BasicWindow::callFromProgram(QString msg) {
disconnect(console, &Console::newLineWritten, program,
&Program::parseCommand);
console->write("?");
connect(console, &Console::newLineWritten, this,
&BasicWindow::callFromConsole);
}
void BasicWindow::callFromConsole(QString msg) {
connect(console, &Console::newLineWritten, program, &Program::parseCommand);
disconnect(console, &Console::newLineWritten, this,
&BasicWindow::callFromConsole);
emit inputNumSignal(msg);
}