&QWidget::close;和QWidget::close();的区别
时间: 2024-04-18 18:28:25 浏览: 19
`&QWidget::close`和`QWidget::close()`的区别在于函数调用与函数指针的使用。
- `&QWidget::close`是获取`QWidget::close`函数的函数指针,并不会调用该函数。你可以将这个函数指针存储起来,然后在需要的时候通过指针调用该函数。
- `QWidget::close()`是直接调用`QWidget::close`函数。这种方式会立即执行`QWidget::close`函数中的代码。
所以,如果你想要获取函数指针而不是立即调用函数,你应该使用`&QWidget::close`。如果你想要立即调用函数并执行其中的代码,你应该使用`QWidget::close()`。
相关问题
bandzip::bandzip(QWidget *parent) : QMainWindow(parent) , ui(new Ui::zip1) { ui->setupUi(this); resize(910, 530); this->setWindowTitle("Bandzip1.0"); // ui->pushButton->setFlat(true); connect(ui->actionnew, &QAction::triggered, ui->pushButton, &QPushButton::clicked); connect(ui->actionclose, &QAction::triggered, this, &QWidget::close); connect(ui->actionsize, &QAction::triggered, [ = ]() { QMessageBox::information(this, "info", "压缩大小限制在10m以内"); } ); connect(ui->actionhow, &QAction::triggered, [ = ]() { QMessageBox::information(this, "info", "每次解压时把解压文件和.code在同一目录下"); } ); }请对以上代码写注释
我很清楚你的问题,你想问的是这段代码是干什么的。这是一个构造函数,用于初始化一个名为Bandzip1.0的压缩软件界面。其中包括了一个大小为910x530的窗口,一个菜单栏和一个工具栏。还有一个新建文件的选项和一个关联该选项的槽函数。同时设置了窗口的标题为Bandzip1.0。
#include "mainwindow.h" #include "ui_mainwindow.h" #include "start1.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); open1=new start1; connect(ui->ok1,&QPushButton::clicked,this,&QMainWindow::close); connect(ui->ok2,&QPushButton::clicked,this,&QMainWindow::close); connect(ui->ok1,&QPushButton::clicked,open1,&start1::show); } MainWindow::~MainWindow() { delete ui; }为什么另一个界面不出现(start类继承Qwidegt)
根据你提供的代码,另一个界面不出现的原因可能是因为你只是创建了 `open1` 对象,但是没有显示它。你需要调用 `open1->show()` 方法来显示它。
你可以在 `connect(ui->ok1, &QPushButton::clicked, open1, &start1::show);` 的连接语句后面添加 `open1->show();` 语句来显示另一个界面。另外,确保你在 `start1` 类的构造函数中设置了界面的布局和控件。