【发布时间】:2019-07-04 06:43:59
【问题描述】:
我使用 QT Creator 4.9.1 并与设计师一起制作了 gui。我有一个带有stackedWidget 和大约60 页的MainWindow,在我的主窗口内我有一个按钮,带有onButton_clicked 信号我打开一个对话框(显示图片)以插入一个数字来设置用户想要在里面看到的页面主窗口。
我的问题是 SIGNAL 来自名为 on_pushButton_Enter_clicked 的对话框,而我的 SLOT 位于我的主窗口中,名称为 setCurrentIndex()。我已经阅读了帖子:“如何将信号从主窗口连接到对话框中的插槽”和“Qt 使用信号和插槽连接主窗口和对话框”。
但这对我没有帮助,因为我的对话框不知道我的主窗口,我不知道如何连接它们。
信号:
Dialognummer_eingeben.h
...
signals:
void enterButtonPressed();
...
void Dialognummer_eingeben::on_pushButton_Enter_clicked()
{
QString text = ui->lineEdit_Dialognummer->text();
ui->lineEdit_Dialognummer->setText("");
this->reject();
emit enterButtonPressed();
}
插槽:
Terminal::Terminal(QWidget *parent) : QMainWindow(parent), ui(new Ui::Terminal)
{
ui->setupUi(this);
QObject::connect(&dialog, SIGNAL(enterButtonPressed()), this, SLOT(setCurrentIndex()));
}
void Terminal::setCurrentIndex()
{
int num = dianr.getNum();
QString strNum = QString::number(num);
switch(num)
{
....
}
}
编辑:1.添加信号和槽代码 2. 对代码进行一些修改
【问题讨论】:
-
您可以从任何您想要的地方拨打
connect。因此,如果您的“对话框不知道您的主窗口”,那么只需调用 connect 某个您“知道”主窗口和对话框的地方。或者您可以将主窗口传递给对话框或将其作为父窗口。
标签: qt