MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); QPushButton *selectButton = new QPushButton("选择文件", this); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(selectButton); QWidget *centralWidget = new QWidget(this); centralWidget->setLayout(layout); setCentralWidget(centralWidget); resize(500, 500); pushButton->resize(width, height); connect(selectButton, &QPushButton::clicked, this, &MainWindow::selectFile); }mainwindow.cpp:17:17: error: member reference type 'QAccessible::Role' is not a pointer
时间: 2024-04-16 07:28:15 浏览: 165
根据你提供的代码和错误信息,出现了一个错误:“成员引用类型 'QAccessible::Role' 不是一个指针”。
这个错误是因为你在使用 `resize()` 函数时,使用了 `pushButton` 变量来调用 `resize()` 函数,但是你没有先声明和初始化 `pushButton` 变量。
要解决这个问题,你需要在构造函数内部声明和初始化 `pushButton` 变量,并且使用 `selectButton` 变量来调用 `resize()` 函数。
以下是修正后的代码示例:
```cpp
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton *selectButton = new QPushButton("选择文件", this);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(selectButton);
QWidget *centralWidget = new QWidget(this);
centralWidget->setLayout(layout);
setCentralWidget(centralWidget);
resize(500, 500);
selectButton->resize(width, height); // 修改为 selectButton 调用 resize()
connect(selectButton, &QPushButton::clicked, this, &MainWindow::selectFile);
}
```
在修正后的代码中,我将 `pushButton->resize(width, height);` 修改为 `selectButton->resize(width, height);`,使用正确的方式调用 `resize()` 函数。
请根据你的实际需求进行适当修改,并确保在使用 `resize()` 函数时使用正确的对象。
阅读全文