#include "dialog.h" #include "ui_dialog.h" Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); //创建一个MyDialog对象 连接到此Dialog对象 md = new MyDialog(this); //连接按钮 当点击时 自定义槽函数运作 connect(ui->pushButton,SIGNAL(clicked()), this,SLOT(Slots())); Ui::MyDialog *myui = md->getui(); connect(ui->dial,SIGNAL(valueChanged(int)), md->getui(),SLOT()); } Dialog::~Dialog() { delete ui; } void Dialog::Slots() { //展示MyDialog的ui设计 md->show(); } 怎么修改 实现 按钮创建一个子窗口后 父窗口dial与子窗口dial滑动同步
时间: 2024-04-16 18:26:31 浏览: 132
07_代码化 UI 设计1
要实现按钮点击后父窗口的滑块和子窗口的滑块同步,您可以使用信号与槽机制。以下是修改后的代码示例:
```cpp
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
// 创建一个MyDialog对象并连接到此Dialog对象
md = new MyDialog(this);
// 连接按钮的点击信号与自定义槽函数
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(Slots()));
// 连接父窗口的滑块值改变信号与子窗口的滑块值设置槽函数
connect(ui->dial, SIGNAL(valueChanged(int)), md->getui()->dial, SLOT(setValue(int)));
// 连接子窗口的滑块值改变信号与父窗口的滑块值设置槽函数
connect(md->getui()->dial, SIGNAL(valueChanged(int)), ui->dial, SLOT(setValue(int)));
}
Dialog::~Dialog()
{
delete ui;
}
void Dialog::Slots()
{
// 展示MyDialog的ui设计
md->show();
}
```
在修改后的代码中,通过连接父窗口的滑块值改变信号与子窗口的滑块值设置槽函数,以及连接子窗口的滑块值改变信号与父窗口的滑块值设置槽函数,实现了两个滑块的同步。当父窗口的滑块值改变时,子窗口的滑块值也会相应改变;反之亦然。
希望这可以帮助到您!如果您有任何其他问题,请随时提问。
阅读全文