大侠们,还有几个问题,
1、双击出来的Dialog,不知道怎么点击数字键盘,把数值输入到Dialog的lineEdit去 (09是自己写上去的)?
代码如下:
void limit_parameter::openDialog(int flag)
{
QDialog dialog(this);
dialog.resize(400, 260); //确定对话框的窗口大小
dialog.move(270,120); //确定对话框的位置
QGroupBox *echoGroup = new QGroupBox(tr(""));
dialog.setStyleSheet("font: 14pt;");
switch(flag)
{
case 1:
// echoGroup->setTitle(tr("电力系统频率偏差限值:0.1HZ~5.0HZ"));
echoGroup->setTitle(tr("0.1HZ~5.0HZ"));
break;
case 2:
echoGroup->setTitle(tr("电力系统频率偏差限值:-0.1HZ~-5.0HZ"));
dialog.move(380,120);
break;
}
QLineEdit *dataEdit = new QLineEdit;
QPushButton *btn0 = new QPushButton(tr("0"));
QPushButton *btn1 = new QPushButton(tr("1"));
QPushButton *btn2 = new QPushButton(tr("2"));
QPushButton *btn3 = new QPushButton(tr("3"));
QPushButton *btn4 = new QPushButton(tr("4"));
QPushButton *btn5 = new QPushButton(tr("5"));
QPushButton *btn6 = new QPushButton(tr("6"));
QPushButton *btn7 = new QPushButton(tr("7"));
QPushButton *btn8 = new QPushButton(tr("8"));
QPushButton *btn9 = new QPushButton(tr("9"));
QPushButton *btnDot = new QPushButton(tr("."));
QPushButton *btn_ = new QPushButton(tr("-"));
QPushButton *btnClean = new QPushButton(tr("Clean"));
QPushButton *btnDel = new QPushButton(tr("Del"));
QPushButton *btnEnter = new QPushButton(tr("Enter"));
QPushButton *btnback = new QPushButton(tr("返回"));
connect(btn0, SIGNAL(clicked()),this, SLOT(btn0_data())); //问题: this是指向 limit_parameter 窗口的, 不知道怎么点击“0“键时, // connect(btn1, SIGNAL(clicked()),this, SLOT(btn1_data())); //让本Dialog的创口的dataEdit(lineEdit控件)的值发生变化? // connect(btn2, SIGNAL(clicked()),this, SLOT(btn2_data())); //有什么连接槽的方式可以实现 dataEdit->setText(tr("09"));
//按钮排版
QGridLayout *num1 = new QGridLayout;
num1->addWidget(btn1,0,0);
num1->addWidget(btn2,0,1);
num1->addWidget(btn3,0,2);
num1->addWidget(btn4,0,3);
num1->addWidget(btn5,0,4);
num1->addWidget(btnDot,0,5);
num1->addWidget(btn6,1,0);
num1->addWidget(btn7,1,1);
num1->addWidget(btn8,1,2);
num1->addWidget(btn9,1,3);
num1->addWidget(btn0,1,4);
num1->addWidget(btn_,1,5);
QHBoxLayout *num2 = new QHBoxLayout; //排好按钮的位置
num2->addWidget(btnClean);
num2->addWidget(btnDel);
num2->addWidget(btnEnter);
QHBoxLayout *num3 = new QHBoxLayout;
num3->addWidget(btnback);
num3->addStretch();
QGridLayout *main1 =new QGridLayout;
main1->addWidget(dataEdit,0,0);
main1->addLayout(num1,1,0);
main1->addLayout(num2,2,0);
echoGroup->setLayout(main1);
QGridLayout *layout = new QGridLayout;
layout->addWidget(echoGroup,0,0);
layout->addLayout(num3,1,0);
dialog.setLayout(layout);
dialog.exec(); // 打开对话框
}
void limit_parameter::btn0_data() //Dialog外面的函数
{
int aa;
aa=flag;
switch(aa)
{
case 1:
//ui->JustDeviation->insert(tr("0"));
dialog->dataEdit->insert(tr("0")); //问题:编译的时候就发现不了 这个dialog 了 break;
}
}
2、当点击 Dialog中的"Enter键"时,怎么把Dialog的dataEdit的数据 传到 Line Edites 的 lineEdit 中