#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { QPushButton *selectButton = new QPushButton("选择文件", this); connect(selectButton, &QPushButton::clicked, this, &MainWindow::selectFile); QVBoxLayout *layout = new QVBoxLayout; layout->addWidget(selectButton); QWidget *centralWidget = new QWidget(this); centralWidget->setLayout(layout); setCentralWidget(centralWidget); ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } int MainWindow::selectFile() { QString dir = QFileDialog::getOpenFileName(this, "选择文件", "", "DWG Files (*.dwg)"); if (dir.isEmpty()) { qDebug() << "erro:File import failure!"; return false; } else { return true; // 进行导入操作 // ... } } 执行没有pushbutton按钮
时间: 2024-04-16 19:27:57 浏览: 136
【Qt】MainWindow窗口状态栏.rar
根据你提供的代码,你创建了一个名为 `selectButton` 的 QPushButton 对象,但没有将其添加到布局中。这导致按钮无法显示在窗口中。
要解决这个问题,你需要将按钮 `selectButton` 添加到布局中,然后将布局设置为窗口的中央部件。
以下是修正后的代码:
```cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPushButton *selectButton = new QPushButton("选择文件", this);
connect(selectButton, &QPushButton::clicked, this, &MainWindow::selectFile);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(selectButton);
QWidget *centralWidget = new QWidget(this);
centralWidget->setLayout(layout);
setCentralWidget(centralWidget);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::selectFile()
{
QString dir = QFileDialog::getOpenFileName(this, "选择文件", "", "DWG Files (*.dwg)");
if (dir.isEmpty()) {
qDebug() << "error: File import failure!";
} else {
// 进行导入操作
// ...
}
}
```
在修正后的代码中,我将 `ui->setupUi(this);` 移到了构造函数的开头,以确保正确初始化用户界面。
此外,我将 `int MainWindow::selectFile()` 的返回类型更改为 `void`,因为它不需要返回任何值。在函数体内,我移除了对 `return` 语句的调用,并添加了对 `qDebug()` 的错误打印语句。
请注意,如果你在 `MainWindow` 类的构造函数中正确设置了布局和按钮,并且没有其他错误,那么在窗口中应该能够看到按钮。如果仍然无法显示按钮,请检查你的代码逻辑和布局设置是否正确。
阅读全文